TI-Basic 程序/猜猜我
GuessMe 是一款妙趣横生的游戏,其核心玩法是猜数字。在游戏中,玩家会与计算器进行对话般的互动。程序启动后,会打开主菜单,玩家有五个选项:
- 1,000
- 10,000
- 100,000
- 最高分数
- 退出
选项 4 会显示一个屏幕,上面列出了三种难度级别的当前最高分数,选项 5 则直接退出程序,返回到计算器的主输入屏幕。如果玩家选择选项 1、2 或 3,游戏将开始。游戏开始时,计算器会随机选择一个数字让玩家猜。如果玩家选择了选项 1,那么计算器选择的数字将是 1 到 1000 之间的任意数字。选项 2 的最大数字是 10000,选项 3 的最大数字是 100000。这意味着玩家可以选择三种难度级别,计算器会为每个难度级别保存单独的最高分数,这些分数都可以在主菜单中选择选项 4 查看“最高分数”页面。在选择一个数字让玩家猜之后,计算器会告诉玩家游戏规则并提示他输入第一个猜测。它会显示以下消息:“我正在想一个 1 到 1,000 之间的数字...”(在难度级别 2 中会显示“10,000”,在难度级别 3 中会显示“100,000”),“它是什么?”玩家然后可以输入他的第一个猜测。
在每次猜测之后,计算器会显示一条消息,如果玩家的猜测太低则显示“更高”,如果玩家的猜测太高则显示“更低”。在难度级别 3 中,计算器还可能显示“高很多”或“低很多”。
如果玩家猜测的数字小于 1 或大于最大值,计算器会显示“嘿!我说过它在 1 到 1,000 之间!”(和之前一样,最后这个数字取决于选择了哪个选项)。
如果玩家的猜测与答案相差 1,计算器会显示“你太接近了!再高一点!”或“你太接近了!再低一点!”
经过 20 次猜测后,计算器会用“快点!”的消息嘲笑玩家。
经过 30 次猜测后,计算器会显示“天哪!你真慢!!!”
计算器可能会向玩家显示的唯一其他消息是:如果玩家在第一次尝试时作弊来猜出答案,或者他恰巧在第一次尝试时猜中了秘密数字。如果这样做,计算器会简单地说“你是个骗子!”,程序就会突然结束。
当玩家最终猜到正确的数字时,会显示一系列消息。第一个是:“你猜对了!!!”,接着是正确的答案,然后是“用了这么多尝试:”,接着是玩家猜到数字所用过的次数。然后,如果玩家打破了该难度级别的最高分数,他会看到消息“最高分!!!”。
注意:计算器用于运行 GuessMe 的变量存储在 [J] 矩阵中。
PROGRAM:GUESSME :ClrHome :{3,9}→dim([J]) :0→X :If 0=[J](3,7) :Then :100→[J](1,8) :100→[J](2,8) :100→[J](3,8) :End :Lbl 6 :Menu("MAIN MENU","1,000",1,"10,000",2,"100,000",3,"HI SCORES",5,"QUIT",Z) :Lbl 5 :Output(2,3,"HI 1: SCORES: 2:) :Output(4,10,"3:) :Output(2,13,[J](1,8) :Output(3,13,[J](2,8) :Output(4,13,[J](3,8) :Output(7,3,"PRESS ENTER") :Pause :ClrHome :Goto 6 :Lbl 1 :1000→C :Goto 4 :Lbl 2 :10000→C :Goto 4 :Lbl 3 :100000→C :Lbl 4 :randInt(1,C)→B :ClrHome :Disp "Im thinking of a","number between 1","and" :If 3=log(C) :Output(3,5,"1,000...") :If 4=log(C) :Output(3,5,"10,000...") :If 5=log(C) :Output(3,5,"100,000...") :Lbl A :Input "What is it",A :X+1→X :If X=20 :Disp " Hurry it up! :If X=30 :Disp " Gosh! You take"," forever!!!" :If A<1 or A>C :Then :Disp " Hey! I said it"," was between 1"," and" :If 3=log(C) :Output(7,6,"1,000!") :If 4=log(C) :Output(7,6,"10,000!") :If 5=log(C) :Output(7,6,"100,000!") :Goto A :End :If A<B-1 and A>B-25000 :Then :Disp " Higher" :Goto A :End :If A>B+1 and A<B+25000 :Then :Disp " Lower" :Goto A :End :If A≥B-1 and A<B :Then :Disp " Youre SO close!"," Just a little"," higher!" :Goto A :End :If A≤B+1 and A>B :Then :Disp " Youre SO close!"," Just a little"," lower!" :Goto A :End :If A≤B-25000 :Then :Disp " Much higher" :Goto A :End :If A≥B+25000 :Then :Disp " Much lower" :Goto A :End :If A=B and X=1 :Then :Disp " YOU CHEATER!" :Output(1,1,"") :Stop :Else :Disp " You got it!!!",B,"","In this many"," tries:",X :Output(2,1,"") :End :If X<[J](log(C)-2,8) :Then :X→[J](log(C)-2,8) :Output(8,3,"HIGH SCORE!!") :1→[J](3,7) :Lbl Z :Output(1,1,"") :Stop