所以我是StackOverFlow的新手,我有一个关于我用Python制作的TicTacToe游戏的快速问题。我已完成游戏的很多部分,但我对计算机播放器的移动感到困惑。我知道如何使它成为随机生成的数字。我目前有,
'board = [" ", " ", " ", " ", " ", " ", " ", " ", " "]
compTurn = random.randrange(0,9)
board[compTurn] = "O"
printboard(board)`
我需要的是确保随机生成的数字不会是已经在板上占用的空间。
所以说我先在游戏中先行,然后选择左上角或者[0]来放置我的" X"。我如何确保计算机random.range不会占用已有数字的点。
非常感谢!
答案 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)
这是最简单的方法,它适用于大数字,因为概率是重新固定数字的常数。