【发布时间】:2011-10-19 08:20:36
【问题描述】:
我已经查看了尽可能多的函数,但仍然找不到一个可以让您拦截 TI 箭头键点击的点击。
【问题讨论】:
-
能否提供 TI 型号?你是用 Basic 还是 Assembly 编码?
-
它是 83-silver,当你按下 prog 按钮时,我正在编程你使用的任何东西。
标签: calculator ti-basic
我已经查看了尽可能多的函数,但仍然找不到一个可以让您拦截 TI 箭头键点击的点击。
【问题讨论】:
标签: calculator ti-basic
对于使用“Prog”按钮运行的 Basic 程序,您需要调用 getKey,它会返回最后按下按钮的键代码。箭头按钮映射到代码24、25、26 和34。
更多信息请访问TI-Basic Developer,位于“阅读按键”标题下方。
【讨论】:
我知道这是一个老问题,但我认为这一点可能仍然相关。
如果您使用按键输入来移动字符或以某种方式移动值,则最好避免使用if-then-else 语句。
最快的方法通常是这样做:
:getkey -> A
:X+(A=24) -> X
:X-(A=26) -> X
:Y+(A=25) -> Y
:Y-(A=34) -> Y
可以进一步简化为:
:getkey -> A
:X+(A=24)-(A=26) -> X
:Y+(A=25)-(A=34) -> Y
我们利用(A=24) 具有“布尔”(0 或1)值这一事实,而不是通过if 语句处理逻辑。所以如果是某个值我们就加或减1。
设置限制也相当简单:
:getkey -> A
:X+(A=26)(X<=20)-(A=24)(X>0) -> X
:Y+(A=25)(Y<=15)-(A=34)(Y>=3) -> Y
因此,如果(X<20) 将乘以 1,但当 X>=20 时,(X<20) 将乘以 0,取反。
在我的一些程序中,我使用另一种技术来帮助选择值:左键和右键以与上键和下键不同的值递增和递减变量。但是,它需要更多的逻辑。
:getkey -> A
:X+10(A=26)(X+10<=100)-10(A=24)(X-10>=0) -> X
:Y+(A=25)(Y<15)-(A=34)(Y>3) -> B
在这种情况下,左右箭头按十位,上下箭头按个位。使用(X+10<=100) 代替(X<100),因为如果X=99 则后者将为真,因此X 可以达到109。前者确保添加10 不会超过限制。
【讨论】:
您应该可以使用 getkey 命令来完成。
getkey (Store as) (Variable) A
while A=0
getkey (Store as) A
然后您可以在整个程序中调用变量 A。 每个键都有一个通过 getkey 命令调用的数字。 所以你可以使用这个变量,
If A = 25
...
If A != 25
...
(25 是向上的箭头)
【讨论】: