【发布时间】:2010-02-20 05:06:00
【问题描述】:
我有这个 3 x 3 的 char 数组,它应该代表一个井字棋盘,在此之前,我会使用一堆“if”语句来查看是否有 3 个连续。
... if ((board[0][0] == board[0][1]) && (board[0][1] == board[0][2])) { ... } ...
我意识到这是很多打字,而且很容易出错,那么有没有更好的方法来做到这一点?
【问题讨论】:
-
9 个值,每个值三个状态,因此每个单元两位 = 18 位。这适合任何体面的机器上的 int 。然后你可以做一个大开关或使用预定义的掩码进行按位运算。
-
更好的主意,尼古拉。 +1
-
我们前不久进行了井字最短程序竞赛:stackoverflow.com/questions/2245801/code-golf-tic-tac-toe/…
-
如果允许按位检查之类的模糊操作,我们可以从stackoverflow.com/questions/2245801/code-golf-tic-tac-toe获取任何代码。