Skip to content

Commit 649ffca

Browse files
committed
Add ending for the game.
Prevent stopping the snake by pressing any other key than wasd. Previously this also killed the snake.
1 parent ba0aebd commit 649ffca

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

snake/snake_expanded.a

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,28 @@
11
10 HOME
22
20 LET L = 1 : REM SNAKE STARTS WITH LENGTH 1
33
30 LET W = 40 : LET H = 24 : REM WIDTH AND HEIGHT
4+
35 LET KEY = 0
45
40 GOSUB 2000 : REM INITIALIZE FOOD
56
50 DIM X(100) : DIM Y(100) : REM INTIALIZE ARRAY
67
60 X(L) = 20 : Y(L) = 12
78

89
65 REM MAIN LOOP
9-
70 GOSUB 3000
10-
80 FOR N = 1 TO 1000 - L * 2 : NEXT N
11-
90 GOTO 70
10+
70 IF L > 98 THEN GOSUB 9000
11+
80 GOSUB 3000
12+
90 FOR N = 1 TO 1000 - L * 2 : NEXT N
13+
100 GOTO 70
1214

1315
999 REM READ KEYBOARD INPUT
1416
1000 LET K = PEEK(49152)
15-
1010 IF K = 196 THEN X(L) = X(L) + 1
16-
1020 IF K = 193 THEN X(L) = X(L) - 1
17-
1030 IF K = 215 THEN Y(L) = Y(L) - 1
18-
1040 IF K = 211 THEN Y(L) = Y(L) + 1
19-
1050 IF X(L) < 1 OR X(L) > W THEN GOTO 6000
20-
1060 IF Y(L) < 1 OR Y(L) > H THEN GOTO 6000
21-
1070 IF L > 1 THEN GOSUB 7000
22-
1080 RETURN
17+
1010 IF K = 196 OR K = 193 OR K = 215 OR K = 211 THEN KEY = K
18+
1020 IF KEY = 196 THEN X(L) = X(L) + 1
19+
1030 IF KEY = 193 THEN X(L) = X(L) - 1
20+
1040 IF KEY = 215 THEN Y(L) = Y(L) - 1
21+
1050 IF KEY = 211 THEN Y(L) = Y(L) + 1
22+
1060 IF X(L) < 1 OR X(L) > W THEN GOTO 6000
23+
1070 IF Y(L) < 1 OR Y(L) > H THEN GOTO 6000
24+
1080 IF L > 1 THEN GOSUB 7000
25+
1090 RETURN
2326

2427
1990 REM CREATE FOOD
2528
2000 LET FX = INT(RND(1) * (W - 1)) + 1
@@ -71,3 +74,11 @@
7174
8010 HTAB FX : VTAB FY
7275
8020 PRINT "F"
7376
8030 RETURN
77+
78+
9000 REM VICTORY
79+
9010 HOME
80+
9020 HTAB 14 : VTAB 10
81+
9030 PRINT "YOU HAVE WON!"
82+
9040 HTAB 13 : VTAB 11 : PRINT "SNAKE IS FULL!"
83+
9050 END
84+

0 commit comments

Comments
 (0)