首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抽搐脚趾(2名球员)

抽搐脚趾(2名球员)
EN

Code Review用户
提问于 2014-06-02 19:27:39
回答 1查看 3K关注 0票数 8

所以我们有一个小小的Tic Tac脚趾游戏,我已经做了。它运行良好的TI-83/84计算器,它似乎没有任何问题。但是,我想消除一些看似笨重和重复的代码,并可能添加一些检查,这样您就不能覆盖已经被玩过的正方形,并在3行已经完成时完成游戏。如果有人能帮我,我会很感激的!

代码语言:javascript
复制
: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
EN

回答 1

Code Review用户

回答已采纳

发布于 2014-06-30 03:58:50

免责声明:我只有一个钛-85,它的命令与提-83钛-84略有不同。

用户体验

  • 起初,我对正方形的编号感到困惑。然后,我意识到,正方形1到9很好地对应于计算器数字垫的布局方式。好的!
  • 你可能不需要在±9的线,因为一个tac脚趾板是传统的绘制为#,没有边界。
  • 在我看来,问谁先来没有多大意义。
  • 正如您注意到的,您没有检查是否已经有人占用了正方形。可以很容易地使用一个九元素列表来执行检查。

  • 定义了变量XO,但从未使用过。
  • 我不知道为什么选择将变量命名为FM。我会选择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映射到HV的代码过于复杂。每一项任务应在一行中完成: 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(循环进行初始化、测试和增量。
  • 要在0到1之间切换F,只需执行1-F→F。您不需要abs函数。
  • 我不确定ClrDraw是否充分地重置了绘图上下文。在TI-85上,我需要ClDrwZStd (设置标准缩放的边界)和AxesOff (隐藏轴)。

重写TI-85方言

我注意到,基于阅读指南,我认为相当于TI-83 / TI-84的命令是什么。

代码语言:javascript
复制
: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
:End
票数 3
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/52297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档