我正在研究我的最终编程项目,并试图制造战舰。我唯一要做的就是编写自动智能程序。到目前为止它的工作方式是通过猜测从1到11的两个随机整数来选择网格上的随机空间。一旦它碰到某些东西,我就制定了规则,以便它会检查所有方面,直到它击沉整艘船。这个问题是,计算机一次只能转8圈。我需要以某种方式跳出函数,回到我的主要运行功能,然后继续从下一个回合停止的地方。有没有办法做到这一点,还是会有一种更好,完全不同的方式来轮流?
这就是我的转身功能目前的样子。 user_guess函数工作正常,然后检查您是否赢得了游戏。 thinking()纯粹是审美的,然后我得到了我有问题的comp_guess函数,然后检查你是否丢失了。然后它回忆起自己。
def turns():
user_guess()
if win_game==True:
return ('YOU WIN!')
thinking()
comp_guess()
if lose_game==True:
return ('YOU LOSE!')
turns()
到目前为止,我对comp_guess函数的所有内容都是:
def comp_guess():
comp_in1=random.randrange(1,11)
comp_in2=random.randrange(1,11)
if (grid_two[comp_in1])[comp_in2]=='S':
(grid_two[comp_in1])[comp_in2]='X'
(grid_four[comp_in1])[comp_in2]='X'
else:
(grid_two[comp_in1])[comp_in2]='*'
(grid_four[comp_in1])[comp_in2]='*'
for f in grid_four:
print(' '.join(f))
grid_two是所有发货地点的存储网格。 grid_four是显示的那个,它只是跟踪计算机的移动以及它们是否被击中或丢失。
答案 0 :(得分:0)
You need to loop a random int until it finds a slot that is not already taken.
Set if statements so the computer can tell if it has hit a ship or not.
After that it should go back to the main function.
我认为计算机耗时超过1转的原因是它在循环直到杀死一艘船之前是循环的? 从玩家切换的主循环应该具有结束游戏的条件。