在功能中断和恢复?

时间:2014-04-21 13:06:31

标签: python

我正在研究我的最终编程项目,并试图制造战舰。我唯一要做的就是编写自动智能程序。到目前为止它的工作方式是通过猜测从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是显示的那个,它只是跟踪计算机的移动以及它们是否被击中或丢失。

1 个答案:

答案 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转的原因是它在循环直到杀死一艘船之前是循环的? 从玩家切换的主循环应该具有结束游戏的条件。