辽宁省沈阳市第十五中学2024年高中数学论文 图形计算器应用
能力测试活动学生 论图形计算器上的扫雷游戏编程
刚开始接触到图形计算器时,我便被它的编程功能吸引住了,虽然它的可编程性略有不足,但依然可以激发出我极大的兴趣。于是乎,通过反复尝试,终于编出这一款不是很完美的扫雷游戏。
下面来介绍一下主要的程序原理: 1.扫雷界面的绘制
由用户输入方格大小后,由于本人时间、技术的问题,只好用直线代替: for 0→x to hang (列数) for 0→y to hang (行数) line 0,x ,hang,x line y,0,y,hang next next
这是我的解决方法。 2.设雷
这是一个非常烦的问题,因为图形计算器中并不提供数组功能,为此用一个比较大的函数来储存它: for 1→x to hang for 1→y to hang strjoin\next
next;库的初始化
for 0→lei to leishu(雷的数量) rand(hang)→xi rand(hang)→yi
2*(xi-1)*hang+(yi-1)→shua ChrtoNum ku,pan,shua if pan=48 then
strleft ku,(shua-1),left
strright ku,(2*(hang^2)+1-shua),right strjoin left,\strjoin lef,right,ku else
lei-1→lei ifend next
3.检测输入的位置:
可以用while语句来弥补getpen的不足: 0→x 0→y
while x=0 and y=0 getpen x,y whileend
int((x*hang/156)+1)→x int((y-131)*hang/78+1)→y 4.检测周围的雷数目
这一段程序有很多不足,欢迎建议:
ChrtoNum ku,te,2(hang*y+x-1)+1 If te=49 then
printnature,“youlose” else 0→n
for x-1→xi to x+1 for y-1→y to y+1
if yi>0 and yi≤hang and xi>0 and≤hang then
ChrtoNum ku,te,2(hang*yi+xi-1)+1 if te=49 then n+1→n ifend ifend next next ifend
最后print到指定位置就行了
由于图形计算器的计算速度有限建议将此程序预处理: 将其放在标完雷后,去第一个if,加入: for 1→x to hang for 1→y to hang … … next next
5.关于文字在对应区块的显示:
Text int((156/hang)(x-0.5)),int((78/hang)(y-1)),文字 6.关于输赢的判断:
我采用的是对标对或错的雷进行统计,通过建立一个标错雷的记录函数,方法参照上文2的方法
if 标雷(某个函数)=开(1) check= 正确(1) then
leiyib+1→leiyib
elseif 标雷(某个函数)=开(1) check=错误(0)曾标错=错误(0) then