home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 015.lha / StoneageV1.1 (.txt) < prev    next >
AmigaBASIC Source Code  |  1986-11-10  |  13KB  |  409 lines

  1. CLS : WINDOW 2,,(0,0)-(631,186),0  
  2.    WINDOW OUTPUT 2
  3.    PALETTE 0,0,0,0 : PALETTE 1,1,1,1
  4.    PALETTE 2,1,0,0 :PALETTE 3,0,0,0
  5.    COLOR 0,1 : COLOR 2,3
  6.    PRINT CHR$(13)+CHR$(13)
  7.    PRINT SPC(30)"S T O N E - A G E"
  8.    PRINT CHR$(13)
  9.    PRINT SPC(24)"Copyright 1986 by Klaus Kramer"
  10.    PRINT CHR$(13)+CHR$(13): TTTE$= "STONE-AGE V1.1 was written by THE TWILIGHT & THE ENEMYS"
  11.    PRINT SPC(11) TTTE$:PRINT
  12.    PRINT SPC(25)"Use the ESC key for suicide"
  13.    PRINT CHR$(13)+CHR$(13)+CHR$(13)+CHR$(13)
  14.    PRINT SPC(23)"Press the SPACE key to continue"
  15. Key: a$=INKEY$ : IF a$=" " THEN Stoneage 
  16. GOTO Key
  17. Stoneage: 
  18.   GOSUB init:GOSUB bild1
  19.   LINE (0,160)-(19,169),0,bf
  20.   wx=1:wy=17
  21.   IF stone(wx,wy)=3 THEN ko=ko-1
  22.   PUT (0,160),willi%:stone(wx,wy)=2
  23.   neu: zeit=TIMER
  24.   LINE(0,180)-(640,180),1:LINE(620,0)-(621,200),1,b
  25.  Hauptprog:
  26.   jy=STICK(3):jx=STICK(2) : esc$ = INKEY$
  27.    IF esc$ =CHR$(27) THEN GOTO itsovernowbabyblue
  28.   IF ABS(jy)=1 OR ABS(jx)=1 THEN
  29.    IF wy+jy<19 AND wy+jy>0 AND wx+jx<32 AND wx+jx>0 THEN
  30.     IF stone(wx+jx,wy+jy)=4 THEN GOTO Hauptprog
  31.     IF ABS(jx)=1 AND ABS(jy)=1 AND stone(wx+jx,wy)<>0 AND stone(wx,wy+jy)<>0 THEN
  32.     IF stone(wx+jx,wy)<>-2 AND stone(wx,wy+jy)<>-2 THEN GOTO Hauptprog
  33.        END IF
  34.    IF stone(wx+jx,wy+jy)<>1 THEN
  35.     IF stone(wx+jx,wy+jy)=3 THEN ko=ko-1:IF ko=0 THEN GOTO weiter
  36.     wy=wy+jy:wx=wx+jx:x=(wx-1)*20:y=(wy-1)*10:stone(wx,wy)=2
  37.     LINE (x,y)-(x+19,y+9),0,bf:SOUND 200,0.2,255 :SOUND 200,0.2,255,1
  38.     LINE (x-20*jx,y-10*jy)-(x-20*jx+19,y-10*jy+9),0,bf
  39.     PUT (x,y),willi%:stone(wx-jx,wy-jy)=-2
  40.     
  41.     IF stone(wx-jx,wy-jy-1)=1 THEN sx=wx-jx:sy=wy-jy-1:GOSUB steinschlag
  42.    ELSE
  43.      IF ABS(jy)=0 AND stone(wx+2*jx,wy+2*jy)=-2 THEN GOTO schieben
  44.    END IF
  45.   END IF
  46.  END IF
  47.  GOTO Hauptprog
  48.  
  49.  steinschlag: a=1
  50.  za:IF stone(sx,sy-a)=1 THEN a=a+1:GOTO za
  51.  sz=sy:sw=sx
  52.  FOR i=1 TO a:sy=sz-i+1:sx=sw:GOSUB s:NEXT i :RETURN
  53.  s:
  54.  IF stone(sx,sy+1)=-2 THEN
  55.   x=(sx-1)*20:y=(sy-1)*10
  56.   LINE(x,y)-(x+19,y+9),0,bf
  57.   stone(sx,sy)=-2:sy=sy+1:stone(sx,sy)=1
  58.   PUT (x,y+10),rock%:GOTO s
  59.  ELSE
  60.   IF stone(sx,sy+1)=0 OR stone(sx,sy+1)=3 OR stone(sx,sy+1)=4 THEN
  61.   SOUND 100,0.8,255:SOUND 100,0.8,255,1:RETURN
  62.  ELSE
  63.   IF stone(sx,sy+1)=2 THEN
  64.    st=0:GOTO itsovernowbabyblue
  65.   ELSE
  66.    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
  67.      st=SGN(RND*10-5):GOTO u
  68.     ELSE
  69.      IF ABS(stone(sx-1,sy+1))=2 AND stone(sx-1,sy)=-2 THEN st=-1: GOTO u
  70.      IF ABS(stone(sx+1,sy+1))=2 AND stone(sx+1,sy)=-2 THEN st=1 : GOTO u
  71.      SOUND 100,0.8,255:SOUND 100,0.8,255,1:RETURN
  72.     END IF
  73.    END IF
  74.   END IF
  75.  END IF
  76.  
  77.  
  78.      
  79.  u: stone(sx,sy)=-2
  80.  IF stone(sx+st,sy+1)=2 THEN GOTO itsovernowbabyblue
  81.  x=(sx-1)*20:y=(sy-1)*10
  82.  LINE(x,y)-(x+19,y+9),0,bf
  83.  sy=sy+1:sx=sx+st:stone(sx,sy)=1
  84.  PUT(x+20*SGN(st),y+10),rock%:SOUND 200,0.1,255:SOUND 200,0.1,255,1:GOTO s
  85.  
  86.  schieben:
  87.  stone(wx,wy)=-2:stone(wx+jx,wy+jy)=2:wx=wx+jx:wy=wy+jy
  88.  x=(wx-1)*20:y=(wy-1)*10:stone(wx+jx,wy+jy)=1
  89.  LINE(x-jx*20,y-jy*20)-(x-jx*20+19,y-jy*10+9),0,bf
  90.  LINE(x,y)-(x+19,y+9),0,bf:SOUND 700,0.2,255:SOUND 700,0.2,255,1
  91.  PUT (x,y),willi%:PUT (x+jx*20,y+jy*10),rock%
  92.  IF stone(wx+jx,wy+jy+1)=-2 THEN sx=wx+jx:sy=wy+jy:GOSUB steinschlag
  93.  IF stone(wx-jx,wy-jy-1)=1 THEN sx=wx-jx:sy=wy-jy-1:GOSUB steinschlag
  94.  GOTO Hauptprog
  95.  
  96.  bild1: ko=0
  97.  FOR y=0 TO 170STEP 10
  98.    FOR x=0TO 600STEP 20
  99.      stone(x/20+1,y/10+1)=0
  100.      IF RND<0.7THEN pul
  101.      IF RND<0.5 THEN 
  102.        PUT (x,y),rock%
  103.        stone(x/20+1,y/10+1)=1:GOTO pul2
  104.      ELSE
  105.        IF RND<0.2THEN
  106.         PUT (x,y),kohl%:stone(x/20+1,y/10+1)=3:ko=ko+1
  107.        ELSE
  108.         IF RND<0.5THEN
  109.          PUT (x,y),mauer%:stone(x/20+1,y/10+1)=4
  110.         ELSE
  111.  pul:     PUT (x,y),erde%
  112.  pul2:  END IF
  113.        END IF
  114.      END IF
  115.  NEXT x,y
  116.  RETURN
  117.  
  118.  weiter:
  119.  zeit2=TIMER:CLS:punkte=punkte+zeit2-zeit
  120.  PRINT "Du benoetigtest ";zeit2-zeit;" Sekunden fuer Screen ";na$
  121.  PRINT:PRINT "Insgesamt ";punkte;" Sekunden."
  122.  FOR i=1TO 5000:NEXT i
  123.  CLS:bild=bild+1:ko=0:IF bild=7 GOTO freak
  124.   'bitte bei eigenen Bildern oben "bild=7" anpassen!
  125.   
  126.  w: ko=0:f1=FNr:f2=FNr:f3=FNr
  127.  PALETTE 13,f1,f2,f3:PALETTE 14,FNt(f1),FNt(f2),FNt(f3)
  128.  PALETTE 15,FNt(FNt(f1)),FNt(FNt(f2)),FNt(FNt(f3))
  129.  PALETTE 3,1,FNF,FNF:PALETTE 5,FNF,1,0.1
  130.  PALETTE 10,FNr,FNF,0:PALETTE 12,1,FNr,0
  131.  IF bild=1THEN RESTORE bilder
  132.  IF bild=2 THEN RESTORE bild2
  133.  IF bild=3 THEN RESTORE bild3
  134.  IF bild=4 THEN RESTORE bild4
  135.  IF bild=5 THEN RESTORE bild5
  136.  IF bild=6 THEN RESTORE bild6
  137.  
  138.   ' Hier bei eigenen Screens "IF bild= ..." ergaenzen
  139.   
  140.   READ na$:b$=" Stone Screen"+STR$(bild+1)+" : "+na$:WINDOW 2,b$,,8,1
  141.   FOR i=1TO 18:READ b$
  142.    FOR j=1TO 31:stone(j,i)=VAL(MID$(b$,j,1))
  143.    x=(j-1)*20:y=(i-1)*10
  144.    ON stone(j,i) GOTO fa1,fa2,fa3,fa4,fa5
  145.          PUT (x,y),erde%:GOTO fa
  146.     fa1: PUT (x,y),rock%:GOTO fa
  147.     fa2: PUT (x,y),willi%:wx=j:wy=i:GOTO fa
  148.     fa3: PUT (x,y),kohl%:ko=ko+1:GOTO fa
  149.     fa4: PUT (x,y),mauer%:GOTO fa
  150.     fa5: stone(j,i)=-2:LINE(x,y)-(x+19,y+9),0,bf
  151.    fa: NEXT j,i
  152.   GOTO neu
  153.   
  154.   itsovernowbabyblue: FOR i = 0 TO 40 STEP 2:x=(wx-1)*20:y=(wy-1)*10
  155.   PUT (x,y),rock%:PUT (x,y),willi%
  156.   PUT (x-st*20,y-10),rock%:LINE(x-st*20,y-10)-(x-st*20+19,y-1),0,bf
  157.   SOUND i*100,0.2,255:SOUND i*100,0.2,255,1:NEXT i
  158.   FOR j=0 TO 9:FOR i=0+j TO 200 STEP 10:LINE(0,i)-(640,i),0:NEXT i,j
  159.   COLOR 2
  160.   PRINT " --------------------------------"
  161.   PRINT " Bedaure. Das war wohl nichts... "
  162.   PRINT " --------------------------------":PRINT:man=man+1:IF man = 10 THEN PRINT "GAME OVER":FOR i =1 TO 9000 : NEXT i : RUN
  163.   PRINT :PRINT " Du hast noch ";10-man;" Leben."
  164.   PRINT :PRINT " Weiter: Joystick hoch.":PRINT:PRINT " Ende: Joystick runter."
  165.   FOR i = 0 TO 600 STEP 30 :PUT (i,25),willi%:NEXT i:PRINT :PRINT 
  166.   F:IF STICK(3)=-1 THEN
  167.       IF bild=0 THEN
  168.        ERASE stone,rock%,willi%,erde%,mauer%,kohl%
  169.        GOTO Stoneage
  170.       ELSE
  171.         GOTO w
  172.        END IF
  173.      ELSE
  174.        IF STICK(3)=1 THEN
  175.         WINDOW CLOSE 2
  176.         WINDOW OUTPUT 1
  177.         SCREEN CLOSE 1
  178.         END
  179.        ELSE
  180.         GOTO F
  181.        END IF
  182.      END IF
  183.      
  184.    freak: WINDOW 2," Geschafft",,8,1
  185.    CLS:FOR i =1 TO 15 :COLOR i
  186.    PRINT  INT(punkte);"Sekunden.  Sieg!  Doch weitere Screens warten..."
  187.    NEXT i
  188.    FOR i= 1 TO 333: PUT (RND*620,RND*190),willi%
  189.    PUT (RND*620,RND*190),rock%: NEXT i
  190.    RUN 
  191.    
  192.    init:
  193.    DIM stone(32,19):sch=40
  194.    SCREEN 1,640,200,4,2: RANDOMIZE(TIMER/100)
  195.    WINDOW 2,"Stone Screen 1 : Zufall",,8,1
  196.    WINDOW OUTPUT 2:WAVE 0,SIN:na$="Zufall"
  197.    FOR i=1 TO LEN(TTTE$):ttte1=ttte1+ASC(LEFT$(TTTE$,i)):NEXT i:IF ttte1<>4565 THEN SYSTEM
  198.    DEF FNF=RND*15/16: DEF FNr=(RND*7+8)/16:ttte1=0
  199.    RESTORE farben:DEF FNt(x)=(x-0.3)*(SGN(x-0.3)/2+0.5)
  200.    FOR i=0 TO 15: READ r,g,b
  201.      PALETTE i,r/15,g/15,b/15
  202.    NEXT i
  203.    farben:
  204.    DATA  0, 0, 0,15,15,15,12 , 0, 0,15, 6, 0
  205.    DATA  0, 9, 0, 3,15, 1,0, 0,15, 2,12,13
  206.    DATA 15,0,12,10, 0,15,9, 5, 0,15,12,10
  207.    DATA 15,14, 0,12,12,12,8, 8, 8, 4, 4, 4
  208.    DIM rock%(83)
  209.    FOR i=0 TO 83: READ rock%(i)
  210.    NEXT i
  211.    DATA 20,10,4,1022,0,7993,-16384,32766
  212.    DATA -8192,-6336,0,-9216,0,-32753,-8192,16495
  213.    DATA 8192,892,0,1484,-32768&,3003,0,0
  214.    DATA 0,198,0,1,0,6329,-20480,9215
  215.    DATA -20480,32767,-4096,-20481,12288,31740,8192,16332
  216.    DATA -16384,4091,0,1022,0,8191,-16384,32767
  217.    DATA -8192,-7,-20480,-1,-20480,-1,-4096,-4097
  218.    DATA 12288,31740,8192,16332,-16384,4091,0,1022
  219.    DATA 0,8191,-16384,32767,-8192,-7,-20480,-1
  220.    DATA -20480,-1,-4096,-4097,12288,31740,8192,16332
  221.    DATA -16384,4091,0,0
  222.    DIM erde%(83)
  223.    FOR i=0 TO 83:READ erde%(i):NEXT i
  224.    DATA 20,10,4,0,0,0,0,0,0,0,0,0,0,0,0,0
  225.    DATA 0,0,0,0,0,0,0,-8423,-24576,-19721,-4096,-84
  226.    DATA 8192,-26501,-4096,30670,28672,-26309,-16384,28655
  227.    DATA 28672,-4008,-16384,8127,28672,-21023,-24576,0
  228.    DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  229.    DATA 0,0,0,-10983,8192,-27933,-4096,-116
  230.    DATA 8192,-26503,20480,21966,16384,-26318,-16384,28335
  231.    DATA 28672,-20392,-16384,4797,28672,-31263,8192,0
  232.    DIM willi%(83)
  233.    FOR i=0 TO 83:READ willi%(i):NEXT i
  234.    DATA 20,10,4,8095,-32768,30817,-8192,14433
  235.    DATA -16384,32767,-8192,-32768,4096,-29306,4096,-32768
  236.    DATA 4096,-12874,12288,24576,-8192,8191,-32768,0,0,0,0,0
  237.    DATA 0,0,0,32767,-8192,0,0,16384
  238.    DATA 8192,12289,-16384,8191,0,0,0,0
  239.    DATA 0,0,0,4097,0,520,16384,0
  240.    DATA 4096,0,0,0,0,16384,4096,0
  241.    DATA -16384,4095,-32768,0,0,0,0,0
  242.    DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  243.    DIM kohl%(83)
  244.    FOR i=0TO 83:READ kohl%(i):NEXT i
  245.    DATA 20,10,4,9418,16384,-2944,28672,168
  246.    DATA -16384,-9271,8192,2509,-32768,-15763,-20480,26307
  247.    DATA -16384,14269,-4096,-6913,-8192,15507,-32768,0
  248.    DATA 0,1024,0,136,-32768,6272,0,2048
  249.    DATA 0,0,0,0,0,0,0,0,0,0,0,10186
  250.    DATA 16384,-1,-4096,16383,-8192,-1,-4096,32767
  251.    DATA -16384,-1,-4096,32767,-8192,16383,-4096,-1
  252.    DATA -8192,16275,-32768,768,0,2927,-32768,16215
  253.    DATA 8192,1078,20480,28690,16384,14738,16384,6204
  254.    DATA 0,0,0,0,0,0,0,0
  255.    DIM mauer%(83)
  256.    FOR i=0 TO 83:READ mauer%(i):NEXT i
  257.    DATA 20,10,4,0,0,-1793,4096,0,0,0,0,8079
  258.    DATA -4096,0,0,0,0,-15368,28672,-14343
  259.    DATA -4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  260.    DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  261.    DATA 0,0,0,-1025,28672,-1025,28672,0,0,32703,-4096,32703
  262.    DATA -4096,0,0,-8197,-4096,-8197,-4096,-8197
  263.    DATA -4096,0,0,0
  264.    
  265.    bilder:
  266.    DATA "Logik-Horror"
  267.    DATA 1301005500400500000010005500001
  268.    DATA 1430431440441540044000440010101
  269.    DATA 1555400410400454141404445010101
  270.    DATA 0555410045400454143004555010103
  271.    DATA 0010410445441041140400440010105
  272.    DATA 0404445005000001100050000011115
  273.    DATA 0404144444400004444400111011115
  274.    DATA 5404140500401015555510111011105
  275.    DATA 5434140440401041555140131011055
  276.    DATA 5444140140401044500440111010551
  277.    DATA 0111145045401004500410000015511
  278.    DATA 1000145040401004343410000015111
  279.    DATA 1111141340001004444400040045000
  280.    DATA 4444144441000001155100040455000
  281.    DATA 4000300001040404440440044555555
  282.    DATA 4000000041040404545404044555555
  283.    DATA 4000000041043404545414045455555
  284.    DATA 4200000000004004443414145043433
  285.  
  286.    bild2:
  287.    DATA "Jeder Schritt kann Falsch sein"
  288.    DATA 3105430004001003000055500000000
  289.    DATA 0140444414103000444444444444445
  290.    DATA 0140100005100300145555555155550
  291.    DATA 5140051055100003045444445444440
  292.    DATA 0141500551100100045551345555540
  293.    DATA 0141105511030001040103041555540
  294.    DATA 0141055114000111044444441151140
  295.    DATA 0140551144103011140055000131140
  296.    DATA 3145511440000012140444444444440
  297.    DATA 0145114431030000040400100110000
  298.    DATA 0145144133010010140444444444440
  299.    DATA 5145443313130003040004011400540
  300.    DATA 5140433333130003044404000404540
  301.    DATA 5140431313331033044404055454040
  302.    DATA 5145413331333333041104045454040
  303.    DATA 0140433133333133041000045454040
  304.    DATA 0140433333133333141511045454040
  305.    DATA 1000413333331313143511045554000
  306.    
  307.    bild3:
  308.    DATA "Fallenstellers Nachtgebet"
  309.    DATA 1101111000444144443044444444444
  310.    DATA 0114013411555515555504111115534
  311.    DATA 5140010041040414454004111105504
  312.    DATA 1003010550104414440004111111114
  313.    DATA 1404414404101414100404444414444
  314.    DATA 1400111004101414101404300100004
  315.    DATA 1401010104101414100404444144404
  316.    DATA 1410010014101414100400000000004
  317.    DATA 0100510001001414110444444044444
  318.    DATA 4110010011401414100014000000000
  319.    DATA 4001111100401414130404000000101
  320.    DATA 4400444004401414100004110444444
  321.    DATA 0001003000001414100404111414301
  322.    DATA 3100010000101414101004444414400
  323.    DATA 3331000101001414100004441113401
  324.    DATA 1333300000001414100400500000401
  325.    DATA 3313333001001414100004444444410
  326.    DATA 3333333330000020004000005550000
  327.    bild4:
  328.    DATA "Unloesbar?"
  329.    DATA 0000400000000011100000000000000
  330.    DATA 1000400044444441444444400000000
  331.    DATA 0000400000040001100400000000000
  332.    DATA 0400400100040001100400000000000
  333.    DATA 0433400000040001100400411114444
  334.    DATA 0433400000040001100400400000003
  335.    DATA 0444400010040001100400404444444
  336.    DATA 0000000000000001000000004000000
  337.    DATA 4000000000000001000000000000000
  338.    DATA 0000011111111001000000001000000
  339.    DATA 0000113333331101000000001110000
  340.    DATA 0000011111111301444000000000000
  341.    DATA 0000011111111301004000000000000
  342.    DATA 0000011111111301004000000000000
  343.    DATA 0000033333333301004000000000000
  344.    DATA 0000000000000001004000044411000
  345.    DATA 0000000000000001004000040000000
  346.    DATA 2000000000000001554000043104003
  347.  
  348.    bild5:
  349.    DATA "Willi's Brueder"
  350.    DATA 1111111111111111111111144444444
  351.    DATA 0055555555500000000000340000000
  352.    DATA 0455555555442444444444440000000
  353.    DATA 0455555555444400000000000000000
  354.    DATA 5455555555555555555555555555555
  355.    DATA 5455555555555555555555555555555
  356.    DATA 5455555555555444544455555555555
  357.    DATA 5455555555555545554555555555555
  358.    DATA 5455555555555545554555555555555
  359.    DATA 5455555555555545554555555555555
  360.    DATA 5455555555555555555555555555555
  361.    DATA 5455555555555555555555555555555
  362.    DATA 5455555555555555555555555555555
  363.    DATA 5455555555555555555555555555555
  364.    DATA 5455555555555555555555555555555
  365.    DATA 5455555555555555555555555555555
  366.    DATA 5422222222222222222222220000000
  367.    DATA 2400000000000000000000000000000
  368.  
  369.       bild6:
  370.    DATA "Fred lebt! Lupo auch"
  371.    DATA 3410000000000000000041100000000
  372.    DATA 1010000000000000000043140000000
  373.    DATA 1110000000000000000044140000000
  374.    DATA 0110011111110111110000140000000
  375.    DATA 4010001111101111111000140001111
  376.    DATA 0010000313000000000000140001331
  377.    DATA 0410000010001111000000140001111
  378.    DATA 0000000010000034000000140001331 
  379.    DATA 0044000010001111111000140001111
  380.    DATA 0000000010000111110000140004004
  381.    DATA 0000000030000000000000140000033
  382.    DATA 0000000000000000000000140000033
  383.    DATA 0000000000000000000000140000033
  384.    DATA 0000004444400000000000140000000
  385.    DATA 0000000000000010010000140000000
  386.    DATA 0000000000044444410000140444430
  387.    DATA 0000000000040100510000100400000
  388.    DATA 0000000000043005510020015430045
  389.    
  390.    RETURN
  391.    
  392.    
  393.    
  394.    
  395.    
  396.   
  397.   
  398.    
  399.  
  400.  
  401.  
  402.  
  403.         
  404.  
  405.   
  406.     
  407.        
  408.  
  409.