home *** CD-ROM | disk | FTP | other *** search
AmigaBASIC Source Code | 1986-11-10 | 13.0 KB | 409 lines |
- CLS : WINDOW 2,,(0,0)-(631,186),0
- WINDOW OUTPUT 2
- PALETTE 0,0,0,0 : PALETTE 1,1,1,1
- PALETTE 2,1,0,0 :PALETTE 3,0,0,0
- COLOR 0,1 : COLOR 2,3
- PRINT CHR$(13)+CHR$(13)
- PRINT SPC(30)"S T O N E - A G E"
- PRINT CHR$(13)
- PRINT SPC(24)"Copyright 1986 by Klaus Kramer"
- PRINT CHR$(13)+CHR$(13): TTTE$= "STONE-AGE V1.1 was written by THE TWILIGHT & THE ENEMYS"
- PRINT SPC(11) TTTE$:PRINT
- PRINT SPC(25)"Use the ESC key for suicide"
- PRINT CHR$(13)+CHR$(13)+CHR$(13)+CHR$(13)
- PRINT SPC(23)"Press the SPACE key to continue"
- Key: a$=INKEY$ : IF a$=" " THEN Stoneage
- GOTO Key
- Stoneage:
- GOSUB init:GOSUB bild1
- LINE (0,160)-(19,169),0,bf
- wx=1:wy=17
- IF stone(wx,wy)=3 THEN ko=ko-1
- PUT (0,160),willi%:stone(wx,wy)=2
- neu: zeit=TIMER
- LINE(0,180)-(640,180),1:LINE(620,0)-(621,200),1,b
- Hauptprog:
- jy=STICK(3):jx=STICK(2) : esc$ = INKEY$
- IF esc$ =CHR$(27) THEN GOTO itsovernowbabyblue
- IF ABS(jy)=1 OR ABS(jx)=1 THEN
- IF wy+jy<19 AND wy+jy>0 AND wx+jx<32 AND wx+jx>0 THEN
- IF stone(wx+jx,wy+jy)=4 THEN GOTO Hauptprog
- IF ABS(jx)=1 AND ABS(jy)=1 AND stone(wx+jx,wy)<>0 AND stone(wx,wy+jy)<>0 THEN
- IF stone(wx+jx,wy)<>-2 AND stone(wx,wy+jy)<>-2 THEN GOTO Hauptprog
- END IF
- IF stone(wx+jx,wy+jy)<>1 THEN
- IF stone(wx+jx,wy+jy)=3 THEN ko=ko-1:IF ko=0 THEN GOTO weiter
- wy=wy+jy:wx=wx+jx:x=(wx-1)*20:y=(wy-1)*10:stone(wx,wy)=2
- LINE (x,y)-(x+19,y+9),0,bf:SOUND 200,0.2,255 :SOUND 200,0.2,255,1
- LINE (x-20*jx,y-10*jy)-(x-20*jx+19,y-10*jy+9),0,bf
- PUT (x,y),willi%:stone(wx-jx,wy-jy)=-2
-
- IF stone(wx-jx,wy-jy-1)=1 THEN sx=wx-jx:sy=wy-jy-1:GOSUB steinschlag
- ELSE
- IF ABS(jy)=0 AND stone(wx+2*jx,wy+2*jy)=-2 THEN GOTO schieben
- END IF
- END IF
- END IF
- GOTO Hauptprog
-
- steinschlag: a=1
- za:IF stone(sx,sy-a)=1 THEN a=a+1:GOTO za
- sz=sy:sw=sx
- FOR i=1 TO a:sy=sz-i+1:sx=sw:GOSUB s:NEXT i :RETURN
- s:
- IF stone(sx,sy+1)=-2 THEN
- x=(sx-1)*20:y=(sy-1)*10
- LINE(x,y)-(x+19,y+9),0,bf
- stone(sx,sy)=-2:sy=sy+1:stone(sx,sy)=1
- PUT (x,y+10),rock%:GOTO s
- ELSE
- IF stone(sx,sy+1)=0 OR stone(sx,sy+1)=3 OR stone(sx,sy+1)=4 THEN
- SOUND 100,0.8,255:SOUND 100,0.8,255,1:RETURN
- ELSE
- IF stone(sx,sy+1)=2 THEN
- st=0:GOTO itsovernowbabyblue
- ELSE
- IF ABS(stone(sx-1,sy+1))=2 AND ABS(stone(sx+1,sy+1))=2 AND stone(sx-1,sy)=-2 AND stone(sx+1,sy)=-2 THEN
- st=SGN(RND*10-5):GOTO u
- ELSE
- IF ABS(stone(sx-1,sy+1))=2 AND stone(sx-1,sy)=-2 THEN st=-1: GOTO u
- IF ABS(stone(sx+1,sy+1))=2 AND stone(sx+1,sy)=-2 THEN st=1 : GOTO u
- SOUND 100,0.8,255:SOUND 100,0.8,255,1:RETURN
- END IF
- END IF
- END IF
- END IF
-
-
-
- u: stone(sx,sy)=-2
- IF stone(sx+st,sy+1)=2 THEN GOTO itsovernowbabyblue
- x=(sx-1)*20:y=(sy-1)*10
- LINE(x,y)-(x+19,y+9),0,bf
- sy=sy+1:sx=sx+st:stone(sx,sy)=1
- PUT(x+20*SGN(st),y+10),rock%:SOUND 200,0.1,255:SOUND 200,0.1,255,1:GOTO s
-
- schieben:
- stone(wx,wy)=-2:stone(wx+jx,wy+jy)=2:wx=wx+jx:wy=wy+jy
- x=(wx-1)*20:y=(wy-1)*10:stone(wx+jx,wy+jy)=1
- LINE(x-jx*20,y-jy*20)-(x-jx*20+19,y-jy*10+9),0,bf
- LINE(x,y)-(x+19,y+9),0,bf:SOUND 700,0.2,255:SOUND 700,0.2,255,1
- PUT (x,y),willi%:PUT (x+jx*20,y+jy*10),rock%
- IF stone(wx+jx,wy+jy+1)=-2 THEN sx=wx+jx:sy=wy+jy:GOSUB steinschlag
- IF stone(wx-jx,wy-jy-1)=1 THEN sx=wx-jx:sy=wy-jy-1:GOSUB steinschlag
- GOTO Hauptprog
-
- bild1: ko=0
- FOR y=0 TO 170STEP 10
- FOR x=0TO 600STEP 20
- stone(x/20+1,y/10+1)=0
- IF RND<0.7THEN pul
- IF RND<0.5 THEN
- PUT (x,y),rock%
- stone(x/20+1,y/10+1)=1:GOTO pul2
- ELSE
- IF RND<0.2THEN
- PUT (x,y),kohl%:stone(x/20+1,y/10+1)=3:ko=ko+1
- ELSE
- IF RND<0.5THEN
- PUT (x,y),mauer%:stone(x/20+1,y/10+1)=4
- ELSE
- pul: PUT (x,y),erde%
- pul2: END IF
- END IF
- END IF
- NEXT x,y
- RETURN
-
- weiter:
- zeit2=TIMER:CLS:punkte=punkte+zeit2-zeit
- PRINT "Du benoetigtest ";zeit2-zeit;" Sekunden fuer Screen ";na$
- PRINT:PRINT "Insgesamt ";punkte;" Sekunden."
- FOR i=1TO 5000:NEXT i
- CLS:bild=bild+1:ko=0:IF bild=7 GOTO freak
- 'bitte bei eigenen Bildern oben "bild=7" anpassen!
-
- w: ko=0:f1=FNr:f2=FNr:f3=FNr
- PALETTE 13,f1,f2,f3:PALETTE 14,FNt(f1),FNt(f2),FNt(f3)
- PALETTE 15,FNt(FNt(f1)),FNt(FNt(f2)),FNt(FNt(f3))
- PALETTE 3,1,FNF,FNF:PALETTE 5,FNF,1,0.1
- PALETTE 10,FNr,FNF,0:PALETTE 12,1,FNr,0
- IF bild=1THEN RESTORE bilder
- IF bild=2 THEN RESTORE bild2
- IF bild=3 THEN RESTORE bild3
- IF bild=4 THEN RESTORE bild4
- IF bild=5 THEN RESTORE bild5
- IF bild=6 THEN RESTORE bild6
-
- ' Hier bei eigenen Screens "IF bild= ..." ergaenzen
-
- READ na$:b$=" Stone Screen"+STR$(bild+1)+" : "+na$:WINDOW 2,b$,,8,1
- FOR i=1TO 18:READ b$
- FOR j=1TO 31:stone(j,i)=VAL(MID$(b$,j,1))
- x=(j-1)*20:y=(i-1)*10
- ON stone(j,i) GOTO fa1,fa2,fa3,fa4,fa5
- PUT (x,y),erde%:GOTO fa
- fa1: PUT (x,y),rock%:GOTO fa
- fa2: PUT (x,y),willi%:wx=j:wy=i:GOTO fa
- fa3: PUT (x,y),kohl%:ko=ko+1:GOTO fa
- fa4: PUT (x,y),mauer%:GOTO fa
- fa5: stone(j,i)=-2:LINE(x,y)-(x+19,y+9),0,bf
- fa: NEXT j,i
- GOTO neu
-
- itsovernowbabyblue: FOR i = 0 TO 40 STEP 2:x=(wx-1)*20:y=(wy-1)*10
- PUT (x,y),rock%:PUT (x,y),willi%
- PUT (x-st*20,y-10),rock%:LINE(x-st*20,y-10)-(x-st*20+19,y-1),0,bf
- SOUND i*100,0.2,255:SOUND i*100,0.2,255,1:NEXT i
- FOR j=0 TO 9:FOR i=0+j TO 200 STEP 10:LINE(0,i)-(640,i),0:NEXT i,j
- COLOR 2
- PRINT " --------------------------------"
- PRINT " Bedaure. Das war wohl nichts... "
- PRINT " --------------------------------":PRINT:man=man+1:IF man = 10 THEN PRINT "GAME OVER":FOR i =1 TO 9000 : NEXT i : RUN
- PRINT :PRINT " Du hast noch ";10-man;" Leben."
- PRINT :PRINT " Weiter: Joystick hoch.":PRINT:PRINT " Ende: Joystick runter."
- FOR i = 0 TO 600 STEP 30 :PUT (i,25),willi%:NEXT i:PRINT :PRINT
- F:IF STICK(3)=-1 THEN
- IF bild=0 THEN
- ERASE stone,rock%,willi%,erde%,mauer%,kohl%
- GOTO Stoneage
- ELSE
- GOTO w
- END IF
- ELSE
- IF STICK(3)=1 THEN
- WINDOW CLOSE 2
- WINDOW OUTPUT 1
- SCREEN CLOSE 1
- END
- ELSE
- GOTO F
- END IF
- END IF
-
- freak: WINDOW 2," Geschafft",,8,1
- CLS:FOR i =1 TO 15 :COLOR i
- PRINT INT(punkte);"Sekunden. Sieg! Doch weitere Screens warten..."
- NEXT i
- FOR i= 1 TO 333: PUT (RND*620,RND*190),willi%
- PUT (RND*620,RND*190),rock%: NEXT i
- RUN
-
- init:
- DIM stone(32,19):sch=40
- SCREEN 1,640,200,4,2: RANDOMIZE(TIMER/100)
- WINDOW 2,"Stone Screen 1 : Zufall",,8,1
- WINDOW OUTPUT 2:WAVE 0,SIN:na$="Zufall"
- FOR i=1 TO LEN(TTTE$):ttte1=ttte1+ASC(LEFT$(TTTE$,i)):NEXT i:IF ttte1<>4565 THEN SYSTEM
- DEF FNF=RND*15/16: DEF FNr=(RND*7+8)/16:ttte1=0
- RESTORE farben:DEF FNt(x)=(x-0.3)*(SGN(x-0.3)/2+0.5)
- FOR i=0 TO 15: READ r,g,b
- PALETTE i,r/15,g/15,b/15
- NEXT i
- farben:
- DATA 0, 0, 0,15,15,15,12 , 0, 0,15, 6, 0
- DATA 0, 9, 0, 3,15, 1,0, 0,15, 2,12,13
- DATA 15,0,12,10, 0,15,9, 5, 0,15,12,10
- DATA 15,14, 0,12,12,12,8, 8, 8, 4, 4, 4
- DIM rock%(83)
- FOR i=0 TO 83: READ rock%(i)
- NEXT i
- DATA 20,10,4,1022,0,7993,-16384,32766
- DATA -8192,-6336,0,-9216,0,-32753,-8192,16495
- DATA 8192,892,0,1484,-32768&,3003,0,0
- DATA 0,198,0,1,0,6329,-20480,9215
- DATA -20480,32767,-4096,-20481,12288,31740,8192,16332
- DATA -16384,4091,0,1022,0,8191,-16384,32767
- DATA -8192,-7,-20480,-1,-20480,-1,-4096,-4097
- DATA 12288,31740,8192,16332,-16384,4091,0,1022
- DATA 0,8191,-16384,32767,-8192,-7,-20480,-1
- DATA -20480,-1,-4096,-4097,12288,31740,8192,16332
- DATA -16384,4091,0,0
- DIM erde%(83)
- FOR i=0 TO 83:READ erde%(i):NEXT i
- DATA 20,10,4,0,0,0,0,0,0,0,0,0,0,0,0,0
- DATA 0,0,0,0,0,0,0,-8423,-24576,-19721,-4096,-84
- DATA 8192,-26501,-4096,30670,28672,-26309,-16384,28655
- DATA 28672,-4008,-16384,8127,28672,-21023,-24576,0
- DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- DATA 0,0,0,-10983,8192,-27933,-4096,-116
- DATA 8192,-26503,20480,21966,16384,-26318,-16384,28335
- DATA 28672,-20392,-16384,4797,28672,-31263,8192,0
- DIM willi%(83)
- FOR i=0 TO 83:READ willi%(i):NEXT i
- DATA 20,10,4,8095,-32768,30817,-8192,14433
- DATA -16384,32767,-8192,-32768,4096,-29306,4096,-32768
- DATA 4096,-12874,12288,24576,-8192,8191,-32768,0,0,0,0,0
- DATA 0,0,0,32767,-8192,0,0,16384
- DATA 8192,12289,-16384,8191,0,0,0,0
- DATA 0,0,0,4097,0,520,16384,0
- DATA 4096,0,0,0,0,16384,4096,0
- DATA -16384,4095,-32768,0,0,0,0,0
- DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- DIM kohl%(83)
- FOR i=0TO 83:READ kohl%(i):NEXT i
- DATA 20,10,4,9418,16384,-2944,28672,168
- DATA -16384,-9271,8192,2509,-32768,-15763,-20480,26307
- DATA -16384,14269,-4096,-6913,-8192,15507,-32768,0
- DATA 0,1024,0,136,-32768,6272,0,2048
- DATA 0,0,0,0,0,0,0,0,0,0,0,10186
- DATA 16384,-1,-4096,16383,-8192,-1,-4096,32767
- DATA -16384,-1,-4096,32767,-8192,16383,-4096,-1
- DATA -8192,16275,-32768,768,0,2927,-32768,16215
- DATA 8192,1078,20480,28690,16384,14738,16384,6204
- DATA 0,0,0,0,0,0,0,0
- DIM mauer%(83)
- FOR i=0 TO 83:READ mauer%(i):NEXT i
- DATA 20,10,4,0,0,-1793,4096,0,0,0,0,8079
- DATA -4096,0,0,0,0,-15368,28672,-14343
- DATA -4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- DATA 0,0,0,-1025,28672,-1025,28672,0,0,32703,-4096,32703
- DATA -4096,0,0,-8197,-4096,-8197,-4096,-8197
- DATA -4096,0,0,0
-
- bilder:
- DATA "Logik-Horror"
- DATA 1301005500400500000010005500001
- DATA 1430431440441540044000440010101
- DATA 1555400410400454141404445010101
- DATA 0555410045400454143004555010103
- DATA 0010410445441041140400440010105
- DATA 0404445005000001100050000011115
- DATA 0404144444400004444400111011115
- DATA 5404140500401015555510111011105
- DATA 5434140440401041555140131011055
- DATA 5444140140401044500440111010551
- DATA 0111145045401004500410000015511
- DATA 1000145040401004343410000015111
- DATA 1111141340001004444400040045000
- DATA 4444144441000001155100040455000
- DATA 4000300001040404440440044555555
- DATA 4000000041040404545404044555555
- DATA 4000000041043404545414045455555
- DATA 4200000000004004443414145043433
-
- bild2:
- DATA "Jeder Schritt kann Falsch sein"
- DATA 3105430004001003000055500000000
- DATA 0140444414103000444444444444445
- DATA 0140100005100300145555555155550
- DATA 5140051055100003045444445444440
- DATA 0141500551100100045551345555540
- DATA 0141105511030001040103041555540
- DATA 0141055114000111044444441151140
- DATA 0140551144103011140055000131140
- DATA 3145511440000012140444444444440
- DATA 0145114431030000040400100110000
- DATA 0145144133010010140444444444440
- DATA 5145443313130003040004011400540
- DATA 5140433333130003044404000404540
- DATA 5140431313331033044404055454040
- DATA 5145413331333333041104045454040
- DATA 0140433133333133041000045454040
- DATA 0140433333133333141511045454040
- DATA 1000413333331313143511045554000
-
- bild3:
- DATA "Fallenstellers Nachtgebet"
- DATA 1101111000444144443044444444444
- DATA 0114013411555515555504111115534
- DATA 5140010041040414454004111105504
- DATA 1003010550104414440004111111114
- DATA 1404414404101414100404444414444
- DATA 1400111004101414101404300100004
- DATA 1401010104101414100404444144404
- DATA 1410010014101414100400000000004
- DATA 0100510001001414110444444044444
- DATA 4110010011401414100014000000000
- DATA 4001111100401414130404000000101
- DATA 4400444004401414100004110444444
- DATA 0001003000001414100404111414301
- DATA 3100010000101414101004444414400
- DATA 3331000101001414100004441113401
- DATA 1333300000001414100400500000401
- DATA 3313333001001414100004444444410
- DATA 3333333330000020004000005550000
- bild4:
- DATA "Unloesbar?"
- DATA 0000400000000011100000000000000
- DATA 1000400044444441444444400000000
- DATA 0000400000040001100400000000000
- DATA 0400400100040001100400000000000
- DATA 0433400000040001100400411114444
- DATA 0433400000040001100400400000003
- DATA 0444400010040001100400404444444
- DATA 0000000000000001000000004000000
- DATA 4000000000000001000000000000000
- DATA 0000011111111001000000001000000
- DATA 0000113333331101000000001110000
- DATA 0000011111111301444000000000000
- DATA 0000011111111301004000000000000
- DATA 0000011111111301004000000000000
- DATA 0000033333333301004000000000000
- DATA 0000000000000001004000044411000
- DATA 0000000000000001004000040000000
- DATA 2000000000000001554000043104003
-
- bild5:
- DATA "Willi's Brueder"
- DATA 1111111111111111111111144444444
- DATA 0055555555500000000000340000000
- DATA 0455555555442444444444440000000
- DATA 0455555555444400000000000000000
- DATA 5455555555555555555555555555555
- DATA 5455555555555555555555555555555
- DATA 5455555555555444544455555555555
- DATA 5455555555555545554555555555555
- DATA 5455555555555545554555555555555
- DATA 5455555555555545554555555555555
- DATA 5455555555555555555555555555555
- DATA 5455555555555555555555555555555
- DATA 5455555555555555555555555555555
- DATA 5455555555555555555555555555555
- DATA 5455555555555555555555555555555
- DATA 5455555555555555555555555555555
- DATA 5422222222222222222222220000000
- DATA 2400000000000000000000000000000
-
- bild6:
- DATA "Fred lebt! Lupo auch"
- DATA 3410000000000000000041100000000
- DATA 1010000000000000000043140000000
- DATA 1110000000000000000044140000000
- DATA 0110011111110111110000140000000
- DATA 4010001111101111111000140001111
- DATA 0010000313000000000000140001331
- DATA 0410000010001111000000140001111
- DATA 0000000010000034000000140001331
- DATA 0044000010001111111000140001111
- DATA 0000000010000111110000140004004
- DATA 0000000030000000000000140000033
- DATA 0000000000000000000000140000033
- DATA 0000000000000000000000140000033
- DATA 0000004444400000000000140000000
- DATA 0000000000000010010000140000000
- DATA 0000000000044444410000140444430
- DATA 0000000000040100510000100400000
- DATA 0000000000043005510020015430045
-
- RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-