所以我们有一个小小的Tic Tac脚趾游戏,我已经做了。它运行良好的TI-83/84计算器,它似乎没有任何问题。但是,我想消除一些看似笨重和重复的代码,并可能添加一些检查,这样您就不能覆盖已经被玩过的正方形,并在3行已经完成时完成游戏。如果有人能帮我,我会很感激的!
:ClrHome
:ClrDraw
:1->X
:0->I
:0->O
:Horizontal 9
:Horizontal 3
:Horizontal -3
:Horizontal -9
:Vertical 9
:Vertical 3
:Vertical -3
:Vertical -9
:Disp "WHO FIRST X OR O"
:Input F
:Disp "USE 1 THROUGH 9"
:Lbl 1
:Input M
:fPart(M/3)3-2->H
:If H=-2
:1->H
:H*6->H
:-6->V
:If M>3
:0->V
:If M>6
:6->V
:If F
:Then
:Line(H-2,V-2,H+2,V+2)
:Line(H-2,V+2,H+2,V-2)
:Else
:Circle(H,V,2)
:End
:I+1->I
:abs(F-1)->F
:If I=9
:Goto 2
:Pause
:Goto 1
:Lbl 2发布于 2014-06-30 03:58:50
免责声明:我只有一个钛-85,它的命令与提-83和钛-84略有不同。
#,没有边界。X和O,但从未使用过。F和M。我会选择P代表"player“,S选"square”。Input命令的两个参数形式也可以显示提示符。fPart(M/3)3-2→H不是为我工作的。由于操作优先级在TI-85上的工作方式,所以在fPart((M/3)3)-2→H上对其进行评估。在3fPart(M/3)-2→H修复时重写它。M映射到H和V的代码过于复杂。每一项任务应在一行中完成: 6(mod(M-1,3)-1)→H 6 int((M-4)→V) TI-84有remainder()而不是mod()。的TI-83既没有remainder()也没有mod(),必须使用6(3fPart((M-1)/3)-1)→H.,我相信后者适用于所有三种型号。Goto是不合理的。I应该使用For(循环进行初始化、测试和增量。F,只需执行1-F→F。您不需要abs函数。ClrDraw是否充分地重置了绘图上下文。在TI-85上,我需要ClDrw、ZStd (设置标准缩放的边界)和AxesOff (隐藏轴)。我注意到,基于阅读指南,我认为相当于TI-83 / TI-84的命令是什么。
:ClLCD Equivalent to ClrHome?
:ClDrw Equivalent to ClrDraw?
:ZStd Equivalent to ZStandard?
:AxesOff
:DrawF -3 Equivalent to Horizontal?
:DrawF 3
:Vert -3 Equivalent to Vertical?
:Vert 3
:1→P
:For(I,1,9)
:Input "Square (1-9)? ",S
:6(mod(S-1,3)-1)→H See portability note above.
:6 int((S-4)/3)→V
:If P
:Then
:Line(H-2,V-2,H+2,V+2)
:Line(H-2,V+2,H+2,V-2)
:Else
:Circl(H,V,2) Equivalent to Circle?
:End
:Pause
:1-P→P
:Endhttps://codereview.stackexchange.com/questions/52297
复制相似问题