在函数中间中断和恢复



我正在进行我的最后一个编程项目,并试图创建战列舰。我现在唯一要做的就是对自动智能进行编程。到目前为止,它的工作方式是猜测从1到11的两个随机整数,在网格上选择一个随机空间。一旦它撞到什么东西,我制定了规则,这样它就会从各个方面进行检查,直到击沉整艘船。这样做的问题是,电脑一次要转八圈。我需要以某种方式跳出这个函数,回到我的主运行函数,然后在下一个转弯时继续它停止的地方。有没有办法做到这一点,或者有没有更好的、完全不同的轮流方式?

这就是我的turns函数目前的样子。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))

gridtwo是所有船舶位置的存储网格。gridfour是显示的,它只是跟踪计算机的移动以及它们是否被击中或未击中。

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圈的原因是因为它一直在循环,直到杀死一艘船?从玩家那里交换的主循环,应该有一个结束游戏的条件。

最新更新