Well done Coggie !
I "tryed" to clean the Basic code ... and add personal values..
- Snake Picture [Coggie game]
- snake.jpg (9.58 KiB) Viewed 6360 times
It was a good code, but ...
Code: Select all
250 LET K=CODE INKEY$
270 IF K=115 THEN GOSUB 500
271 IF K=114 THEN GOSUB 510
272 IF K=113 THEN GOSUB 520
273 IF K=112 THEN GOSUB 530
270 IF K>0 THEN GOSUB 500+10*(K-112)
(target lines renamed to point to k=112 >>> 500 ; K=113 >>> 510...)
The F flag is used one time! (deleted)
Code: Select all
214 IF RND>.9 THEN LET F=1
215 IF F=1 THEN GOSUB 600
=== 214 IF RND>.9 THEN GOSUB 600
Code: Select all
405 LET TX=S(ST,1)
406 LET TY=S(ST,2)
407 LET G(TX,TY)=0
>>> LET G(S(ST,1),S(ST,2))=0 ... save memory and time...
Fixe the string length to 1 character... don't know if it's better... regard variable string length.
Code: Select all
700 PRINT AT 9,10;"ya«silly«cant"
705 PRINT AT 11,4;"you«fell«in«the«dam«ditch"
Can be merged to free memory room...
700 PRINT AT 9,10;"ya«silly«cant";AT 11,4;"you«fell«in«the«dam«ditch";...
- SNAKE2.P
- Snake P file [Coggie game]
- (3.13 KiB) Downloaded 238 times
Code: Select all
1 LET HS=0
2 GOSUB 800
3 CLS
4 PRINT AT 1,1;"WORKING..."
5 DIM A$(1)
6 DIM B$(1)
7 DIM C$(1)
8 LET M=555
10 DIM S(M,2)
11 DIM G(21,31)
14 LET SH=1
15 LET ST=1
18 LET SL=3
19 LET X=11
20 LET Y=16
30 LET XD=0
40 LET YD=1
47 LET S=0
50 LET A$="*"
60 LET B$="x"
70 LET C$="O"
110 FOR I=1 TO 31
120 PRINT AT 1,I;B$;AT 21,32-I;B$
125 LET G(1,I)=10
126 LET G(21,I)=10
140 NEXT I
150 FOR I=2 TO 20
160 PRINT AT I,1;B$;AT 22-I,31;B$
165 LET G(I,1)=10
166 LET G(I,31)=10
170 NEXT I
190 PRINT AT 0,1;"SCORE=";S;AT 0,20;"HI SCORE=";HS
200 PRINT AT X,Y;C$
201 LET V=G(X,Y)
203 IF V<>0 THEN GOSUB 550
208 LET G(X,Y)=11
210 LET S(SH,1)=X
211 LET S(SH,2)=Y
214 IF RND>.9 THEN GOSUB 600
250 LET K=CODE INKEY$
270 IF K>0 THEN GOSUB 500+10*(K-112)
280 LET X=X+XD
281 LET Y=Y+YD
290 LET SH=SH+1
295 IF SH>M THEN LET SH=1
300 IF SL>0 THEN LET SL=SL-1
310 IF SL=0 THEN GOSUB 400
399 GOTO 200
400 PRINT AT S(ST,1),S(ST,2);" "
407 LET G(S(ST,1),S(ST,2))=0
410 LET ST=ST+1
420 IF ST>M THEN LET ST=1
430 RETURN
500 IF XD=1 THEN RETURN
505 LET XD=-1
506 LET YD=0
507 RETURN
510 IF XD=-1 THEN RETURN
515 LET XD=1
516 LET YD=0
517 RETURN
520 IF YD=1 THEN RETURN
525 LET YD=-1
526 LET XD=0
527 RETURN
530 IF YD=-1 THEN RETURN
535 LET YD=1
536 LET XD=0
537 RETURN
550 IF V=10 THEN GOTO 700
555 IF V=11 THEN GOTO 720
570 LET SL=SL+V+1
572 LET S=S+V
573 IF S>HS THEN LET HS=S
578 PRINT AT 0,7;S
599 RETURN
600 LET A=INT (RND*19)+2
605 LET B=INT (RND*29)+2
607 IF G(A,B)<>0 THEN GOTO 630
610 LET N=INT (RND*9)+1
620 PRINT AT A,B;CHR$(N+156)
625 LET G(A,B)=N
649 RETURN
700 PRINT AT 9,10;"ya«silly«cant"
705 PRINT AT 11,4;"you«fell«in«the«dam«ditch"
710 GOTO 750
720 PRINT AT 9,9;"ya«daft«basket"
725 PRINT AT 11,4;"you«ate«your«fecking«tail"
750 PRINT AT 13,8;"play«again«‹y“nŒŠ"
755 LET K$=INKEY$
757 IF K$="Y" THEN GOTO 3
758 IF K$="N" THEN GOTO 990
759 GOTO 755
777 GOTO 3
800 PRINT AT 2,8;"hello«and«welcome"
805 PRINT AT 4,15;"to"
810 PRINT AT 6,1;"trakkie«the«amazing«wobbly«worm"
815 PRINT AT 10,6;"USE ARROW KEYS TO MOVE"
820 PRINT AT 20,7;"PRESS A KEY TO PLAY"
830 IF INKEY$="" THEN GOTO 830
835 RETURN
990 PRINT AT 15,2;"please«your«fecking«self«then"
991 STOP
998 REM
Have fun !