Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
megadot
#1
aaaahhh im losing my computer so heres my game its playable now but if you study the src you can figure out how to add levels challenges etc

Code:
' special thanx to:
' sterling cristensen
' whitetiger

START:
SCREEN 12
CLS
'---------------------------DEFAULT SECTION--------------------
LEV=1
TIME2=1
TIME3=1
'--------------------------------------------------------------------------------
GOSUB INTRO
DIM M1 AS INTEGER,M2 AS INTEGER, BUTTONS AS INTEGER
DIM GRIDX(1000)
DIM GRIDY(1000)
DIM GRIDC(1000)
DIM DATC(1000)
DIM LEVEL(2000)
GOSUB DIMDATA
GOSUB LEVELSETUP

GAME:
MEGAMAX=600
DO
GOSUB LEVCHAL
GETMOUSE M1,M2,,BUTTONS
IF M1>32 AND M1<89 AND M2>403 AND M2<414 AND BUTTONS=1 THEN  GOSUB LEVELSETUP
IF M1>578 AND M1<610 AND M2>403 AND M2<414 AND BUTTONS=1 THEN GOTO START
GOSUB DISPLAY
MOVE=0
A$=INKEY$

IF A$="8"  then gosub UPMOV
IF A$="2"  then gosub DOWNMOV
IF A$="6"  then  gosub RIGHTMOV    
IF A$="4"  then gosub LEFTMOV
IF A$=CHR$(255)+"X" THEN SYSTEM
IF A$=CHR$(27) THEN SYSTEM
IF COLLECT=1 THEN GOSUB COLLECT
IF MEGAHAVE+ENEMY=MEGAMAX THEN GOSUB CHECKWIN
IF TIME2=LEVTIME THEN GOSUB OUTOFTIME
LOOP

DISPLAY:
GOSUB GAMETIMER
LOCATE 25,1:PRINT "================================================================================"
GOSUB LEVTITLES
LOCATE 26,5:PRINT "RESTART"
LOCATE 26,73:PRINT "QUIT"
LOCATE 27,1:PRINT "================================================================================"
LOCATE 28,15:PRINT "MEGADOTS=";MEGAHAVE
LOCATE 28,35:PRINT "ENEMYDOTS=";ENEMY
LOCATE 28,55:PRINT "TIME=";TIME2
LOCATE 29,5:PRINT "======================================================================="
RETURN


CHECKWIN:
IF ENEMY>MEGAHAVE THEN GOSUB ENEMYWIN
IF MEGAHAVE>ENEMY THEN
LOCATE 26,8:PRINT "LEVEL UP"
SLEEP 3000
LEV=2
TIME2=0
HS=HS+SCORE
GOSUB LEVELSETUP
GOSUB GAME
END IF
RETURN

ENEMYWIN:'
LOCATE 26,40:PRINT "I WIN"'
SLEEP 4000
HS=HS-SCORE
SCORE=HS
GOSUB LEVELSETUP
GOSUB GAME
RETURN

OUTOFTIME:
LOCATE 26,28:PRINT "SORRY YOU RAN OUT OF TIME"
SLEEP 1000
TIME2=0
GOTO LEVELSETUP


'-------------------------------------------------------------------------------MOVE SUBS-------------------------------
UPMOV:
ROW=ROW-1
IF ROW=0 THEN GOSUB UPNO
GOSUB ROWCHECK
CBD=ROWY+CX
GOSUB CHECKCBGB
IF MOVE=-1 THEN GOSUB UPNO
GOSUB LEVGRID
X=GRIDX(CBD)
Y=GRIDY(CBD)
FOR R=5 TO 1 STEP-1
CIRCLE (X,Y),R,4
CIRCLE (X,Y+20),R,C
NEXT R
RETURN
UPNO:
ROW=ROW+1
MOVE=0
GOSUB GAME

DOWNMOV:
ROW=ROW+1
IF ROW=20 THEN GOSUB DOWNNO
GOSUB ROWCHECK
CBD=ROWY+CX
GOSUB CHECKCBGB
IF MOVE=-1 THEN GOSUB DOWNNO
GOSUB LEVGRID
X=GRIDX(CBD)
Y=GRIDY(CBD)
FOR R=5 TO 1 STEP-1
CIRCLE(X,Y),R,4
CIRCLE(X,Y-20),R,C
NEXT R
RETURN
DOWNNO:
ROW=ROW-1
MOVE=0
GOSUB GAME

LEFTMOV:
CX=CX-1
IF CX=-1 THEN GOSUB LEFTNO
GOSUB ROWCHECK
CBD=ROWY+CX
GOSUB CHECKCBGB
IF MOVE=-1 THEN GOSUB LEFTNO
GOSUB LEVGRID
X=GRIDX(CBD)
Y=GRIDY(CBD)
FOR R=5 TO 1 STEP-1
CIRCLE(X,Y),R,4
CIRCLE(X+20,Y),R,C
NEXT R
RETURN
LEFTNO:
CX=CX+1
MOVE=0
GOSUB GAME

RIGHTMOV:
CX=CX+1
IF CX=32 THEN GOSUB RIGHTNO
GOSUB ROWCHECK
CBD=ROWY+CX
GOSUB CHECKCBGB
IF MOVE=-1 THEN GOSUB RIGHTNO
GOSUB LEVGRID
X=GRIDX(CBD)
Y=GRIDY(CBD)
FOR R=5 TO 1 STEP-1
CIRCLE (X,Y),R,4
CIRCLE (X-20,Y),R,C
NEXT R
RETURN
RIGHTNO:
CX=CX-1
MOVE=0
GOSUB GAME
'-------------------------------------------------------------------------------------------------------------------
CHECKCBGB:
IF GRIDC(CBD)=1 THEN MOVE=-1
IF GRIDC(CBD)=2 THEN COLLECT=1
RETURN

WALL:
X=GRIDX(P)
Y=GRIDY(P)
FOR R=10 TO 1 STEP-1
CIRCLE (X,Y),R,1
NEXT R
LEVM=LEVM+1
RETURN

MEGADOT:
X=GRIDX(P)
Y=GRIDY(P)
CIRCLE(X,Y),5,3
RETURN

COLLECT:
MEGAHAVE=MEGAHAVE+1
SCORE=SCORE+10
COLLECT=0
RETURN

LEVELSETUP:  ' DO NOT CHANGE
CLS
RESTORE
ROW=1
CX=0
G=0
MEGAHAVE=0
ENEMY=0
SCORE=0
FOR T=5 TO 1 STEP-1
CIRCLE (10,10),T,4
NEXT T
H=10:B=10:T=1
IF LEV=1 THEN LEVMAX=608
IF LEV=2 THEN LEVMAX=1218
IF LEV=2 THEN M=608
DO UNTIL G=LEVMAX
GRIDX(T)=H
GRIDY(T)=B
IF LEV=1 THEN GRIDC(T)=LEVEL(T)
IF LEV=2 THEN GRIDC(T)=LEVEL(T+M)
T=T+1
IF LEV=1 THEN G=G+1
IF LEV=2 THEN G=M+T
H=H+20
IF H=650 THEN H=10
IF H=10 THEN B=B+20
LOOP
FOR P=1 TO T
IF GRIDC(P)=1 THEN GOSUB WALL
IF GRIDC(P)=2 THEN GOSUB MEGADOT
NEXT P
CLOSE
RETURN

GAMETIMER:
TIME3=TIME3+1
IF TIME3=1000 THEN
TIME2=TIME2+1
TIME3=0
END IF
RETURN

LEVCHAL:
IF LEV=1 THEN GOSUB LEVEL1
IF LEV=2 THEN RETURN
RETURN

LEVGRID:
IF LEV=1 THEN
GRIDC(CBD)=0
C=0
END IF
IF LEV=2 THEN
GRIDC(CBD)=1
C=8
END IF
RETURN

LEVEL1:
LEVTIME=100
YN=INT(RND(1)*100)
IF YN=2 THEN ELSE RETURN
BG=INT(RND(1)*608)+1
IF GRIDC(BG)=1 THEN RETURN
IF GRIDC(BG)=2 THEN ENEMY=ENEMY+1
GRIDC(BG)=0
X=GRIDX(BG)
Y=GRIDY(BG)
FOR R=7 TO 1 STEP-1
CIRCLE(XX,YY),R,0
CIRCLE (X,Y),R,2
NEXT R
XX=X:YY=Y
RETURN

OUTLINE:
CLS
LINE (1,1)-(640,1+40),4,BF
LINE (1,1)-(1+40,480),4,BF
LINE (1,480)-(640,480-40),4,BF
LINE (640,1)-(640-40,480),4,BF
LINE (1,40)-(640,40)
LINE (40,1)-(40,480)
LINE(1,440)-(640,440)
LINE (600,1)-(600,480)
RETURN

ROWCHECK:
IF ROW=1 THEN ROWY=1
IF ROW=2 THEN ROWY=33
IF ROW=3 THEN ROWY=65
IF ROW=4 THEN ROWY=97
IF ROW=5 THEN ROWY=129
IF ROW=6 THEN ROWY=161
IF ROW=7 THEN ROWY=193
IF ROW=8 THEN ROWY=225
IF ROW=9 THEN ROWY=257
IF ROW=10 THEN ROWY=289
IF ROW=11 THEN ROWY=321
IF ROW=12 THEN ROWY=353
IF ROW=13 THEN ROWY=385
IF ROW=14 THEN ROWY=417
IF ROW=15 THEN ROWY=449
IF ROW=16 THEN ROWY=481
IF ROW=17 THEN ROWY=513
IF ROW=18 THEN ROWY=545
IF ROW=19 THEN ROWY=577
RETURN

DIMDATA:
D=1
DO
READ A
IF A=3 THEN EXIT DO
LEVEL(D)=A
D=D+1
LOOP
RETURN

'-----------------------LEV1
DATA 2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,1,1,1,1,2
DATA 1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,2,2,2,2,2,2
DATA 2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,1,1,1,1,2
DATA 1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,2,2,2,2,2,2
DATA 2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,1,1,1,1,2
DATA 1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,2,2,2,2,2,2
DATA 2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,1,1,1,1,2
DATA 1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,2,2,2,2,2,2
DATA 2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,1,1,1,1,2
DATA 1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,2,2,2,2,2,2
DATA 2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,1,1,1,1,2
DATA 1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,2,2,2,2,2,2
DATA 2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,1,1,1,1,2
DATA 1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,2,2,2,2,2,2
DATA 2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,1,1,1,1,2
DATA 1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,2,2,2,2,2,2
DATA 2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,1,1,1,1,2
DATA 1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,2,2,2,2,2,2
DATA 2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,1,1,1,1,2
'----------------------LEV2
DATA 2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,2,1
DATA 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,1,1,2,1
DATA 2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1
DATA 2,2,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,2,1,2,2,2,1
DATA 2,1,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,1,1,2,1,1,1,2,1
DATA 2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1
DATA 1,1,2,1,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,1,2,1,1,1,2,1,1,1
DATA 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,1
DATA 2,1,1,1,2,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,1,1,1,2,1,1,1,2,1
DATA 2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1
DATA 1,1,2,1,1,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,1,1,2,1,1,1
DATA 2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,1
DATA 2,1,1,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,1,1,1,2,1
DATA 2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1
DATA 1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1
DATA 2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1
DATA 2,1,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,1,1,2,1
DATA 2,2,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,2,1,3







INTRO:
GOSUB OUTLINE
LOCATE 2,35:PRINT "MEGADOT"
LOCATE 5,35:PRINT "NEW GAME"
LOCATE 10,34:PRINT "LEVEL SELECT"
LOCATE 15,34:PRINT "FUTURE"
LOCATE 20,34:PRINT "HIGH SCORER"
LOCATE 25,37:PRINT "QUIT"
DO
A$=INKEY$
IF A$=CHR$(255)+"X" THEN SYSTEM
IF A$=CHR$(27) THEN SYSTEM
GETMOUSE M1,M2,,B
IF M1>273 AND M1<336 AND M2>65 AND M2<76 AND B=1 THEN RETURN
'IF M1>263 AND M1<360 AND M2>225 AND M2<235 AND B=1 THEN GOSUB MUSICSUB
IF M1>265 AND M1<359 AND M2>146 AND M2<156 AND B=1 THEN GOSUB LEVELSELECT
IF M1>284 AND M1<320 AND M2>386 AND M2<397 AND B=1 THEN SYSTEM
LOOP
RETURN

LEVTITLES:
IF LEV=1 THEN LOCATE 26,28:PRINT "CATCH ME IF YOU CAN"
IF LEV=2 THEN LOCATE 26,28:PRINT "         BLOCKED IN         "
RETURN

LEVELSELECT:
GOSUB OUTLINE
LOCATE 2,35:PRINT "LEVEL SELECTION"
LOCATE 10,10:INPUT "ENTER LEVEL CODE:";CODE$
IF CODE$="MOONLIT" THEN
LEV=2
LOCATE 15,10:PRINT "LEVEL 2 CONFIRMED"
SLEEP 1000
END IF
IF CODE$="" THEN LEV=1
GOTO INTRO

i know the graphics may seem elementary but hey i made this
o live is to die, to die is to expel, to expel is to exist is to live without knowing to be
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)