home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / zip / portfoli / blkbst.lzh / BLKBST.BAS
BASIC Source File  |  1991-08-21  |  2KB  |  80 lines

  1. '*******************
  2. '* PF BLOCK-BUSTER *
  3. '* --------------- *
  4. '* by:H.K.02/16/91 *
  5. '*   Have fun!!    *
  6. '*   Thanks to:    *
  7. '*  B.J. GLEASON   *
  8. '* for PBASIC 4.1  *
  9. '*******************
  10.  
  11.    dim h(4,22)
  12.    dim s$(1)
  13.    
  14. 1  cls
  15.    gosub 12
  16.    gosub 30
  17.    scrsave s$(0)
  18.    errwin 3,18,"Use arrow keys"
  19.    errwin 3,17,"Use [Esc] to quit"
  20.    scrload s$(0)
  21.  
  22.   'MAIN LOOP ROUTINE
  23. 10 gosub 20:gosub 25:gosub 20
  24.    if yb<7 then 11
  25.    gosub 28:gosub 20 
  26. 11 if yb>4 then 10  
  27.    gosub 35:gosub 20:goto  10
  28.  
  29.   'INITIALIZE VARIABLES
  30. 12 p$="  "+string$(4,223)+"  "
  31.    ball$=chr$(2):locate 8,22,0:? p$;
  32.    xmv=1:ymv=1:x=22:a$=" ":blf=5
  33.    xb=22:yb=5:score=0:sa=1
  34.    box 1,1,8,13,1
  35.    locate 2,2,0:?"PBASIC v4.1"
  36.    locate 3,2,0:?"BLOCKBUSTER"
  37.    locate 4,2,0:?"-----------"
  38.    locate 5,2,0:?"Score: 0   "
  39.    locate 6,2,0:?"Balls: 5   "
  40.    locate 7,2,0:?"Block: 0   "
  41.    return
  42.  
  43.   'SCORE & BALL CONTROL
  44. 15 if blf=0 or sa=32 then errwin 3,20,"Game-over!":goto 1
  45.    locate 5,9,0:? score:locate 6,9,0:? blf:locate 7,9,0:? sa:return
  46.  
  47.   'PLAYER DISPLAY & MOVEMENT
  48. 20 a$=inkey$:if a$="" then return 
  49.    if a$=chr$(27) then locate 1,1,2:cls:end
  50.    if a$=chr$(75) and x>15 then x=x-2
  51.    if a$=chr$(77) and x<32 then x=x+2
  52.    locate 8,x,0:? p$;:return
  53.  
  54.   'BALL DISPLAY & MOVEMENT
  55. 25 oyb=yb:oxb=xb
  56.    xb=xb+xmv:if xb>36 or xb<18 then xmv=xmv*(-1)
  57.    yb=yb+ymv:if yb>7 or yb<2 then ymv=ymv*(-1)
  58.    locate oyb,oxb,0:?" ";:locate yb,xb,0:? ball$;
  59.    return
  60.  
  61.   'BALL BOUNCE ON PLAYER
  62. 28 if yb=8 then blf=blf-1:gosub 15:beep
  63.    if xb=x+2 or xb=x+3 then ymv=-1:xmv=-1:click:return
  64.    if xb=x+4 or xb=x+5 then ymv=-1:xmv=1:click:return
  65.    return   
  66.  
  67.   'MAKE BRICKS
  68. 30 for f=2 to 4:for k=17 to 37 step 2
  69.    if f*k=111 then 31
  70.    if f=3 then locate f,k+1,0:h(f-2,k-16)=1
  71.    if f<>3 then locate f,k,0:h(f-2,k-17)=1
  72.    ? chr$(223);:?" ";
  73. 31 next k:?:next f:return
  74.    
  75. 35 'BALL HITS BRICK
  76.    if xb<17 then return
  77.    if yb<2 then return
  78.    if h(yb-2,xb-17)=1 then h(yb-2,xb-17)=0:ymv=ymv*(-1):score=score+sa:sa=sa+1:gosub 15:if yb=3 then xmv=xmv*(-1)
  79.    return
  80.