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



所以我是StackOverFlow的新手,我有一个关于我正在用Python制作的TicTacToe游戏的快速问题。我已经完成了比赛的大部分,但我对电脑玩家的动作感到困惑。我知道如何使它成为一个随机生成的数字。我目前有,

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

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

所以说,我在比赛中第一个上场,我选择左上角的核心或棋盘[0]来放置我的"X"。我该如何确保计算机random.range不会占用已经有数字的位置。

非常感谢!

try:

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

这是从板上所有空的索引中选择的

对于这么小的东西,只需跟踪您使用过的数字:

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

这是最简单的方法,它也适用于大的数字,因为它很可能是常数。

最新更新