我对如何处理一些问题有一些疑问。我正在尝试用汇编设置一个tic tac toe游戏,我正在尝试实现作为播放器的计算机。我正在寻找方法将数据主要保存到我可以附加的变量,例如变量字符串,我将添加每个玩家所扮演的单元格的所有变量。
我怎么能这样做,有没有办法我可以说创建一个数组来保存我可以动态更改和分配的信息?
我建议使用调用堆栈作为堆栈数据结构,或者更简单地创建递归函数。
递归自然有助于对可能的动作进行详尽的搜索,修剪任何导致强迫失败的分支。在形式上,这被称为Minimax搜索(以寻找下一步)。 https://www.cs.cornell.edu/courses/cs312/2002sp/lectures/rec21.htm
如果你找到一个胜利的举动,你就会回到那个事实,并且来电者知道它正在考虑的董事会位置让对手强行取胜。你希望你的功能避免让对手强制获胜,并且发挥可能导致自己被迫获胜的动作(如果有的话)。例如Tic Tac Toe recursive algorithm。
我建议使用固定大小的数据结构来表示电路板状态。你的好选择是
lw
复制它)。即在C,struct board { alignas(4) char b[9]; };
。你制作整个结构的副本。b & 0b111 == 0b111
(用andi
和beq
)来检查顶行是否都是一个标记。
您可以通过执行X|O
并查找仍为零的位来在板上找到开放空间。