Tic Tac Toe逻辑

时间:2014-09-29 09:01:08

标签: php math

想象一下,TicTacToe网格中的方块以1到9的线性方式编号。玩家通过调用类方法将X放在网格上:

$game->putX(1, 1);(该方法只接受0到2之间的整数)。

如何计算放置X的字段的线性值(此处线性值为5)?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

实际上只是x*3 + y+1。假设游戏状态保存在一个数组中(索引为1-9,根据您的问题),您的代码可能如下所示:

// the board:      examples:
//   x 0 1 2       0 0 -> 1
// y               1 1 -> 5
// 0   1 2 3       2 2 -> 9
// 1   4 5 6
// 2   7 8 9

putX ($x, $y) {
  $this->state[$x*3+$y+1] = 'X';
}