一个TicTacToe
游戏可以用一个字符串来表示,该字符串表示玩家移动时的位置顺序。
0 1 2 3 4 5 6 7 8
假设X
总是先播放。
因此,字符串“ 012345678”表示游戏
XOX 氧代 XOX
请注意,当玩家X
标记时,该游戏已经获胜6
,这时游戏结束,向授予胜利X
。(即,一旦玩家获胜,忽略其余的举动)
您面临的挑战(代码)是打印所有游戏(排序顺序)及其结果。
格式
<movesequence>:<result>\n
例如:
012345678:X
012345687:X
012345768:X
...
表示X
第一个玩家获胜,O
第二个玩家和D
平局。
将有9!
(362880)个游戏。
这是一些数据以验证您的结果。
'X' Wins: 212256
'O' Wins: 104544
Draws : 46080
这是一个代码高尔夫,运行时应在一分钟之内。玩得开心!
编辑:删除了多余的详细信息,然后将其打印在上stdout
。无需创建文件。
2
我在这里得到了不同的数字:X赢得256256胜出,O赢得104544胜,46080平局(并且Wikipedia似乎同意我的观点)。
—
Ventero
@Ventero,我将进行重新检查,但在页面上没有看到对这些数字的引用。
—
st0le 2011年
@Ventero,您是对的,我将编辑该部分。即将发布md5sum。
—
st0le 2011年
Ruby答案不是最短的答案,因此根据您的评分标准(代码高尔夫球),它不应被接受。
—
mbomb007