探究性课题学习报告
课题:TI84+实现贪吃蛇的算法
研究人:陈嘉南
一、实现效果
蛇身在初始化的时候只有两个单位的长度,每次吞噬一个“食物”,蛇身就会增长一个单位。这个过程会循环往复下去,直到蛇吃到自己的身体或者是撞到“墙壁”或者蛇身等于20为止(期间按“ENTER”可以暂停)。然后会在主屏幕上显示所得分数。
二、流程图
三、环境
编程环境
在TI84plus图形计算器(可移植至TI84plus银装版/TI83plus)中使用prgm运用catalog内的函数进行编程。
运行环境
TI83plus/TI84plus/TI84plus silver edtion;Xmin=-10;Xmax=10;Ymin=-10;Ymax=10
四、所需变量
Variables
全局变量
S:分数。
C:食物纵坐标。
D:食物横坐标。
G:判断蛇有没有吃到蛇身;若有则为1,反之则为0。
O:缺省按键,当没有按下方向键时取O中保存的方向。
N:getKey()得到的按键;24为左方向键;25为上方向键;26为右方向键;34为下方向键;105为“ENTER”键
临时变量
U:临时变量
V:临时变量
M:临时变量
P:临时变量
J:临时变量
Strings
“YOU HAVE EATEN ”
“PIECE(S) OF FOOD”
Lists
无
Matrixs
[H](2*20):用于储存蛇身在屏幕上的位置;第一行为纵坐标,第二行为对应横坐标。
Pics
Pic1:游戏界面。(由于技术原因,无法在此展示。)
五、代码部分
prgmSNAKE3X
:ClrDraw
:AxesOff
:ClrHome
:{2,20}->dim([H])
:Fill(0-1,[H])
:0->S
:0->C
:0->D
:0->G
:25->O
:10->[H](1,1)
:10->[H](2,1)
:11->[H](1,2)
:10->[H](2,2)
:
:While [H](1,1)>0 and [H](2,1)>0 and [H](1,1)<20 and [H](2,1)<20 and G≠1 and [H](1,20)=-1
:prgmCFOOD3X
:While ([H](1,1)≠C or [H](2,1)≠D)[H](1,1)>0 and [H](2,1)>0 and [H](1,1)<20 and [H](2,1)<20 and G≠1 and [H](1,20)=-1
:RecallPic 9
:prgmDMATRIXH
:
prgmDFOOD3X
:prgmDIRET3X
:prgmSEI3X
:0->Q
:End
:S+1->S
:End
:S-1->S
:Disp “YOU HAVE EATEN ”,S, “PIECE(S) OF FOOD”
prgmCFOOD3X
:Lbl L1
:randInt(1,19)->C
贪吃蛇编程教学:randInt(1,19)->D
:1->L
:While [H](1,L)≠0-1
:If [H](1,L)=C and [H](2,L)=D
:Then
:Goto L1
:End
:L+1->L
:End
prgmDFOOD3X
:Pxl-On(C*3,D*3)
:Pxl-On(C*3,D*3+1)
:Pxl-On(C*3,D*3+2)
:Pxl-On(C*3+1,D*3)
:Pxl-On(C*3+1,D*3+1)
:Pxl-On(C*3+1,D*3+2)
:Pxl-On(C*3+2,D*3)
:Pxl-On(C*3+2,D*3+1)
:Pxl-On(C*3+2,D*3+2)
prgmDIRET3X
:getKey->N
:If N=24
:Then
:prgmMMATX3XH
:[H](2,1)-1->[H](2,1)
:N->O
:Else
:If N=25
:Then
:prgmMMATX3XH
:[H](1,1)-1->[H](1,1)
:N->O
:Else
:IF N=26
:Then
:prgmMMATX3XH
:[H](2,1)+1->[H](2,1)
:N->O
:Else
:If N=34
:Then
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论