cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 3781|回复: 10

[Nspire] 分享自己编写的一个猜数字游戏、

[复制链接]
发表于 2013-10-31 11:21:19 | 显示全部楼层 |阅读模式
过程如下
Define guessnumber()=
Prgm
RndInt(1,100000) →a   (这个是范围)
Lbl z1               注意Lbl全是英文 z1的1才是数字
Request"我猜是",b
If b=a Then
Disp"你猜对了"
Else
If b>a Then
Disp"大了"
Goto z1
Else
If b<a
Disp"小了"
Goto z1
EndIf
EndIf
EndPrgm
 楼主| 发表于 2013-10-31 15:39:19 来自手机 | 显示全部楼层
我有些问题,编写的程序在运行时不能终止(按取消没用)必须完成才能退出。还有,怎样删除程序啊?
发表于 2013-10-31 18:10:02 | 显示全部楼层
1.长按ON 长按ESC(具体哪个忘了)
2.delvar 你的程序名
 楼主| 发表于 2013-10-31 19:23:04 来自手机 | 显示全部楼层
haoxuan0532 发表于 2013-10-31 18:10:02
1.长按ON 长按ESC(具体哪个忘了)
2.delvar 你的程序名

谢谢,我等会试试来自: Android客户端
发表于 2013-10-31 22:21:11 来自手机 | 显示全部楼层
本帖最后由 中国好程序 于 2013-10-31 22:24 编辑
haoxuan0532 发表于 2013-10-31 18:10
1.长按ON 长按ESC(具体哪个忘了)
2.delvar 你的程序名


他说的是Force stop,那个确实是按esc键让系统强行停止应用程序。应该是在程序中加入一个错误处理(try...else...endtry),并在每次接受输入后删除临时变量,这样下次按取消的时候程序就会因为找不到变量而出错。此时在错误处理处添加使程序停止的语句(Stop)。任何tibasic程序都应实现这一点。

ps.本人开的tibasic/lua/ndless讨论qq群:308230119
发表于 2013-10-31 22:25:47 来自手机 | 显示全部楼层
本帖最后由 中国好程序 于 2013-11-2 13:18 编辑

除此之外,强烈反对你使用goto语句。goto无条件跳转是很早的东西,现在没必要使用了,写的程序大了以后很容易出问题。
一个示例程序:
Define a()=
Prgm
try
c:=randint(1,100)
loop
request "输入一个数字。”,b,0
if b>c then
text "生成的数字比你输入的数字更小。请重试。",0
endif
if b<c then
text "生成的数字比你输入的数字更大。请重试。",0
endif
if b=c then
text "正确。”,0
exit
endif
delvar b
endloop
else
text "程序被终止。",0
stop
endtry
(c)额...我知道有个东西叫做局部变量,但是总觉得用上以后不知道什么时候消失(或者不能直接看出来什么时候消失)有点...
(c)总之就是这样啦...
EndPrgm

点评

菊部变亮,return时自动销毁,不留后遗症。  发表于 2013-11-2 08:29
有一种东西叫local  发表于 2013-11-1 14:40
 楼主| 发表于 2013-11-1 09:24:12 来自手机 | 显示全部楼层
中国好程序 发表于 2013-10-31 22:25
除此之外,强烈反对你使用goto语句。goto无条件跳转是很早的东西,现在没必要使用了,写的程序大了以后很容 ...

这是我写的第一个程序,渣渣
发表于 2013-11-1 09:27:06 | 显示全部楼层
比较简单好玩。还可以编一个10以内的加法,给小朋友口算练习用

评分

参与人数 1金钱 +2 收起 理由
朔雪X忆 + 2 惊现比总?

查看全部评分

 楼主| 发表于 2013-11-1 10:06:03 来自手机 | 显示全部楼层
中国好程序 发表于 2013-10-31 22:25
除此之外,强烈反对你使用goto语句。goto无条件跳转是很早的东西,现在没必要使用了,写的程序大了以后很容 ...

g能具体分析一下这个程序吗
发表于 2013-11-1 22:29:15 来自手机 | 显示全部楼层
本帖最后由 中国好程序 于 2013-11-1 22:31 编辑
我和我的小伙伴 发表于 2013-11-1 10:06
g能具体分析一下这个程序吗

&#169;语法注释:
&#169;try
&#169;<语句块>  如果这里发生任何错误
&#169;else
&#169;<语句块>  那么就执行这里的语句
&#169;endtry
&#169;
&#169;loop
&#169;<语句块>  不断执行这里面的语句直到被强制停止或跳出该循环块。
&#169;endloop
&#169;ps.该语句可用相对来说更为先进的while语句代替。语法:
&#169;while <条件>
&#169;<语句块>
&#169;endwhile
&#169;
&#169;request <提示信息>,<存储变量>[,<显示标记>]
&#169;其中,当显示标记为0时,提示信息和赋给存储变量的值。
&#169;
&#169;exit
&#169;跳出循环。
&#169;
&#169;stop
&#169;强行终止程序。
&#169;请注意:stop有时并不提供程序一定会被终止的保证,在较大的tibasic程序中可使用lbl和goto语句直接跳转到程序结尾处。跳转到这里通常不会导致结构问题。
&#169;
&#169;&#169;<文本>
&#169;这个符号是用来写注释的。在给程序写注释的时候应该在每一句前面都加上这个。
&#169;
&#169;Delvar <变量名称a>[,<变量名称b>[,<变量名称c>]]......
&#169;删除指定的变量。如果变量正被使用或因为其它不可告人的原因而无法删除,这一块语句会出错。
发表于 2013-11-2 16:27:58 | 显示全部楼层
话说GOTO用用怎么了?
我听好多人说不让GOTO但是我用着很好啊{:029:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2024-11-25 18:48 , Processed in 0.062089 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表