- 注册时间
- 2005-5-28
- 最后登录
- 1970-1-1
|
发表于 2006-1-30 11:58:00
|
显示全部楼层
自己看吧。相信能看得懂
0 GRAPH
10 DATA 1,9,2,9,3,9,4,9,5,9,6,9,7,9,8,9,9,9,10,9,11,9,12,9,13,9,14,9,15,9,16,9: REM x_y_DATA
20 FOR X =15000 TO 15031: READ D%: POKE X,D%: NEXT
30 REM ::initializing..._draw snake
40 FOR X =15000 TO 15031 STEP 2 % =PEEK(X):E% =PEEK(X +1)
50 BOX (D% -1) *5,(E% -1) *5,D% *5,E% *5,1
60 NEXT
70 P% =15030: REM pointer
71 M% =4: REM mode.1 for up;2 for down;3 for left :4 for right
72 T% =0: REM Keys value
73 N% =0: REM keys check
74 MT% =M%: REM check if opposite
75 V1% =0:V2% =0: REM new x and y
76 P2% =0: REM new pointer
77 PX% =0 Y% =0: REM snake_x & y
78 A% =0:B% =0: REM +-xy
79 TX% =0:TY% =0: REM clear_x&y
100 REM ::main
101 LOCATE 5,1: PRINT "Press any key";:T% =ASC( INKEY$)
105 T% =PEEK(199):N% =(T% =148) +(T% =149) *2 +(T% =151) *3 +(T% =150) *4: IF N% THEN M% =N%
110 PX% =PEEK(P%) Y% =PEEK(P% +1)
115 T2% =PX% =1 OR PY% =1 OR PX% =32 OR PY% =16
120 IF ABS(MT% -M%) =1 AND NOT (MT% +M% =5) THEN IF T2% THEN 105 ELSE M% =MT%
125 ON M% GOTO 130,132,134,136
130 IF PY% =1 THEN 105 ELSE A% =0:B% =-1:140
132 IF PY% =16 THEN 105 ELSE A% =0:B% =1:140
134 IF PX% =1 THEN 105 ELSE A% =-1:B% =0:140
136 IF PX% =32 THEN 105 ELSE A% =1:B% =0:140
140 IF P% =15030 THEN P2% =15000 ELSE P2% =P% +2
142 TX% =PEEK(P2%):TY% =PEEK(P2% +1): BOX (TX% -1) *5,(TY% -1) *5,TX% *5,TY% *5,1,0
150 V1% =PEEK(P%) +A%:V2% =PEEK(P% +1) +B%
155 BOX (V1% -1) *5,(V2% -1) *5,V1% *5,V2% *5,1
160 POKE P2%,V1%: POKE P2% +1,V2%
170 P% =P2%
180 MT% =M%: GOTO 105
190 REM the end! ^O ^
200 REM 后记
210 REM 心情失落,作业没心情写,编了编汇编,可还是空虚,看到你发贴求snake算法
220 REM 就实现了一下我给你说的那个,速度很快,如果你觉得变量多麻烦,可再简化一下
230 REM 速度会更快!唉…又无事可作…
|
|