-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFLAPPYGA.BAS
114 lines (114 loc) · 2.47 KB
/
FLAPPYGA.BAS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
20 GOSUB 4000
30 DIM XXP(3): DIM YYP(3): DIM XDF(3)
40 XDF(1)=30:XDF(2)=XDF(1)+7:XDF(3)=XDF(2)+7
45 GOSUB 4300
50 FOR P=1 TO 3
60 GOSUB 2300
70 NEXT P
500 Y=10:R=0
510 B=1:SCORE=0
515 GOSUB 1300
517 Y=Y+1
518 IF BUTTON()=1 THEN Y=Y-2
520 ON B GOSUB 1000,1100,1000,1200
530 B=B+1
540 IF B>4 THEN B=1
550 FOR P=1 TO 3
560 GOSUB 2000
570 XXP(P)=XXP(P)-1
571 IF XXP(P)<8 THEN GOSUB 700
572 IF XXP(P)<9 THEN SCORE=SCORE+1
580 NEXT P
590 GOSUB 1400: GOSUB 3100: GOSUB 2200: GOSUB 2500
600 IF R=1 THEN GOTO 800
610 GOTO 515
700 XXP(P)=XDF(P)
710 RETURN
800 GOSUB 1500: GOSUB 4200
810 GOTO 50
1000 PLOT(10,Y,192)
1010 PLOT(11,Y,193)
1020 PLOT(10,1+Y,194)
1030 PLOT(11,1+Y,195)
1040 RETURN
1100 PLOT(10,Y,196)
1110 PLOT(11,Y,193)
1120 PLOT(10,1+Y,197)
1130 PLOT(11,1+Y,195)
1140 RETURN
1200 PLOT(10,Y,198)
1210 PLOT(11,Y,193)
1220 PLOT(10,1+Y,199)
1230 PLOT(11,1+Y,195)
1240 RETURN
1300 PLOT(10,Y,32)
1310 PLOT(11,Y,32)
1320 PLOT(10,1+Y,32)
1330 PLOT(11,1+Y,32)
1340 RETURN
1400 K1=CHARAT(11,Y): K2=CHARAT(11,1+Y)
1410 IF K1>=200 OR K2>=200 OR Y>17 THEN R=1
1420 RETURN
1500 AT(10,9): PRINT " GAME OVER"
1505 AT(10,11): PRINT "PRESS BUTTON TO START"
1510 IF BUTTON()=0 THEN GOTO 1510
1520 RETURN
2000 XP=XXP(P):YP=YYP(P)
2005 IF XP>29 OR XP<8 THEN RETURN
2010 FOR Y1=0 TO YP
2020 PLOT(XP,Y1,216):PLOT(XP+1,Y1,217):PLOT(XP+2,Y1,32)
2030 NEXT Y1
2040 PLOT(XP,Y1,218):PLOT(XP+1,Y1,219):PLOT(XP+2,Y1,32)
2050 Y1=Y1+6
2060 PLOT(XP,Y1-1,220):PLOT(XP+1,Y1-1,221):PLOT(XP+2,Y1-1,32)
2070 FOR Y2=Y1 TO 18
2080 PLOT(XP,Y2,216):PLOT(XP+1,Y2,217):PLOT(XP+2,Y2,32)
2090 NEXT Y2
2100 RETURN
2200 FOR I=0 TO 18
2210 PLOT(8,I,32):PLOT(9,I,32)
2220 NEXT I
2230 RETURN
2300 XXP(P)=XDF(P)
2310 YYP(P)=2+INT(10*RND(1))
2320 RETURN
2500 AT(30,0): PRINT SCORE
2510 RETURN
3000 FOR X=8 TO 30 STEP 2
3010 PLOT(X,19,W1)
3020 PLOT(X+1,19,W2)
3030 NEXT
3040 RETURN
3100 W=W1
3110 W1=W2
3120 W2=W
3200 DEFCHAR(W1,"000103070F1F3F7FFF")
3210 DEFCHAR(W2,"00FFFEFCF8F0E0C080")
3220 RETURN
4000 CLS
4010 CURSOR(0)
4060 C=200:W1=222:W2=232
4070 FOR I=8 TO 30 STEP 4
4080 FOR J=0 TO 3
4090 PLOT(I+J,20,C)
4100 PLOT(I+J,21,C+1)
4110 PLOT(I+J,22,C+2)
4120 PLOT(I+J,23,C+3)
4130 C=C+4
4140 IF C>215 THEN C=200
4150 NEXT J
4160 NEXT I
4170 GOSUB 3100:GOSUB 3000
4180 RETURN
4200 FOR I=0 TO 37
4210 FOR J=0 TO 18
4220 PLOT(I,J,32)
4230 NEXT J
4240 NEXT I
4250 RETURN
4300 AT(10,9):PRINT " FLAPPY BASIC"
4310 AT(10,11):PRINT "PRESS BUTTON TO START"
4320 IF BUTTON()=0 THEN 4320
4330 AT(10,9):PRINT " "
4340 AT(10,11):PRINT " "
4350 RETURN