用于Tic-Tac-Toe的Python随机数生成器

时间:2015-04-13 22:30:49

标签: python function python-3.x functional-programming

所以我是StackOverFlow的新手,我有一个关于我用Python制作的TicTacToe游戏的快速问题。我已完成游戏的很多部分,但我对计算机播放器的移动感到困惑。我知道如何使它成为随机生成的数字。我目前有,

'board = [" ", " ", " ", " ", " ", " ", " ", " ", " "]

compTurn = random.randrange(0,9)
board[compTurn] = "O"
printboard(board)`

我需要的是确保随机生成的数字不会是已经在板上占用的空间。

所以说我先在游戏中先行,然后选择左上角或者[0]来放置我的" X"。我如何确保计算机random.range不会占用已有数字的点。

非常感谢!

2 个答案:

答案 0 :(得分:2)

尝试:

random.choice([i for i, e in enumerate(board) if e == " "])

这从董事会中所有空的索引中选择

答案 1 :(得分:0)

对于这么小的东西,只记录你曾经使用过的数字:

used = []
r = random.randrange(0,9)
while r in used:
  r = random.randrange(0,9)
used.append(r)

这是最简单的方法,它适用于大数字,因为概率是重新固定数字的常数。