Python 战舰游戏AI猜同样的事情
我已经用Python创建了一个战舰游戏。目前,该游戏有一个简单的人工智能,可以随机猜出一个在棋盘上还没有猜到的位置,以尝试找到两块的大型战舰。我通过给人工智能一个可遵循的模式,使其更加智能化。为了生成AI的猜测,我使用以下代码Python 战舰游戏AI猜同样的事情,python,Python,我已经用Python创建了一个战舰游戏。目前,该游戏有一个简单的人工智能,可以随机猜出一个在棋盘上还没有猜到的位置,以尝试找到两块的大型战舰。我通过给人工智能一个可遵循的模式,使其更加智能化。为了生成AI的猜测,我使用以下代码 while X == 0 | Y == 0: X = 0 Y = 0 guess_col = guessCol(0, size - 1) guess_row = guessRow(0, size - 1) # Make s
while X == 0 | Y == 0:
X = 0
Y = 0
guess_col = guessCol(0, size - 1)
guess_row = guessRow(0, size - 1)
# Make sure the guess follows the pattern
if (guess_col + guess_row)%2 != 1:
X = 1
# Make sure the spot has not already been guessed
if board[guess_row][guess_col] != "~":
Y = 1
董事会如下所示
1 2 3 4 5 6 7 8 9
1 ~ ~ ~ ~ ~ ~ ~ ~ ~
2 ~ ~ ~ ~ ~ ~ ~ ~ ~
3 ~ ~ ~ ~ ~ ~ ~ ~ ~
4 ~ ~ ~ ~ ~ ~ ~ ~ ~
5 ~ ~ ~ ~ ~ ~ ~ ~ ~
6 ~ ~ ~ ~ ~ ~ ~ ~ ~
7 ~ ~ ~ ~ ~ ~ ~ ~ ~
8 ~ ~ ~ ~ ~ ~ ~ ~ ~
9 ~ ~ ~ ~ ~ ~ ~ ~ ~
这种模式工作得很好,但是新的人工智能现在可以猜到它已经猜到的点,这使得它非常低效,也不那么聪明。我也尝试过使用if board[guess\u row][guess\u col]==“~”:
,但这也会导致模式不起作用。我怎样才能让人工智能只在它尚未猜到的点上进行猜测?行:
while X == 0 | Y == 0:
不会做你认为它会做的事<代码>是按位或,在Python中(与C系列不同),它的优先级高于=
。因此,Python将该行解析为:
while X == (0 | Y) == 0:
这相当于:
while X == Y == 0:
while (X == Y) and (Y == 0):
while (X == 0) and (Y == 0):
由于比较运算符的链接,这相当于:
while X == Y == 0:
while (X == Y) and (Y == 0):
while (X == 0) and (Y == 0):
这相当于:
while X == Y == 0:
while (X == Y) and (Y == 0):
while (X == 0) and (Y == 0):
这肯定不是你想通过编写X==0 | Y==0
来实现的
不要使用按位OR,而是使用逻辑OR,在Python中拼写为或:
while X == 0 or Y == 0:
该行:
while X == 0 | Y == 0:
不会做你认为它会做的事<代码>
是按位或,在Python中(与C系列不同),它的优先级高于=
。因此,Python将该行解析为:
while X == (0 | Y) == 0:
这相当于:
while X == Y == 0:
while (X == Y) and (Y == 0):
while (X == 0) and (Y == 0):
由于比较运算符的链接,这相当于:
while X == Y == 0:
while (X == Y) and (Y == 0):
while (X == 0) and (Y == 0):
这相当于:
while X == Y == 0:
while (X == Y) and (Y == 0):
while (X == 0) and (Y == 0):
这肯定不是你想通过编写X==0 | Y==0
来实现的
不要使用按位OR,而是使用逻辑OR,在Python中拼写为或:
while X == 0 or Y == 0:
您是否曾将线路板[guess\u row][guess\u col]
的值更改为~
以外的值?给我们看一下代码。@jwodder当猜到块时,它会变为X,当船被击中时,它会变为H。我这里有完整的源代码:你有没有把板[guess\u row][guess\u col]
的值改成~
以外的值?给我们看一下代码。@jwodder当猜到块时,它会被更改为X,当飞船被击中时,它会被更改为H。我这里有完整的源代码:谢谢!我从来没有想到我必须拼出或!谢谢我从来没有想到我必须拼出或!