2

我的 ti-84 计算器迷宫游戏有两个单独的关卡,它们都有相同的代码。虽然,当角色到达终点时,其中一个关卡并没有完成,并将最终点视为一堵墙。

ClrHome
1→A
1→B
For(y,1,8
For(x,1,16
Output(y,x,sub(" XD", 1+[F](y,x),1
End:End
Repeat K=21 or [F](A,B)=2
getkey→K
If Ans
Output(A,B," ")
sum(△List(Ans={25,34}))
A+Ans([F](A+Ans,B)≠1)→A
sum(△List(K={24,26}))
B+Ansnot([F](A,B+Ans)→B
Output(A,Ans,"Θ")
End
ClrHome
Display "You Win"
Pause
Goto 99
4

1 回答 1

3

问题在于您的水平移动逻辑,我敢打赌,在有效的迷宫中,您向上或向下移动到目标上,而在不起作用的迷宫中,您向右或向左移动到目标上目标。

([F](A+Ans,B)≠1)只要当前单元格不是 1,即一面墙,您的 Ans 垂直运动系数 ,就会计算为真。另一方面,not([F](A,B+Ans)当当前单元格不是 1 或 2、墙或目标时,Ans 的水平移动系数 , 的计算结果为真。将其更改为类似于垂直逻辑([F](A,B+Ans)≠1),并且您的游戏应该是固定的。

编辑:

另外,为了性能起见,我建议将大部分逻辑包含在 if then 语句中,因为如果没有按下某个键,它就不需要运行。

If K
Then
[Game Logic]
End
于 2015-06-19T03:35:21.530 回答