关于游戏胜利的代码似乎不起作用

2024-06-16 12:17:47 发布

您现在位置:Python中文网/ 问答频道 /正文

更具体地说,是在尝试编写一个青蛙和蟾蜍游戏。然而,当用户赢得游戏时,大多数代码似乎无法让python显示出来。请随时询问任何补充信息。在

frogandtoad= ['f','f','f',' ', 't','t','t']

def game_won():
    for i in range(0,3):            
        if frogandtoad[i] =='f':            
            frog = True
        if frogandtoad[i]=='t':
            toad = True
    if frog == True and toad == True:          
        return True

def playgame(frogandtoad):

    print("From: ")
    from_pos = int(input()) - 1
    print("To: ")
    to_pos = int(input())-1                        #Bring in valid_move
    valid = valid_move(frogandtoad, from_pos, to_pos)      
    if valid:                                       
        value = frogandtoad[from_pos]
        frogandtoad[to_pos] = value
        frogandtoad[from_pos] = ' '
        print("frogandtoad panel", frogandtoad)
    else:
        print("Invalid Move, Look at rules under demonstration!")

    if game_won():
            print("you won")
            exit_game()

Tags: toinfromposgametrue游戏if
2条回答

if game_won==True:应该是if game_won()==True:

实际上,您需要调用函数game_won。在

What does it mean to "call" a function in Python?


同样,正如@quamrana指出的,对于if/while语句,python的方法是写if condition,而不是{}。在

在game_uWin(),当^{{cd1>}为False时,其中一个变量将未定义(因为我得到异常)。除非它们已经在全局范围内定义。

我对游戏\u one()的考虑是:

def game_won():
    result = [False, False]
    for i in range(0,3):
        if frogandtoad[i] =='f':
            result[0] = True
        elif frogandtoad[i]=='t':
            result[1] = True
    return all(result)

变量^{cd2>}定义为False和False,用于青蛙和toad状态。如果^{cd3>}为True,则两个项必须为True,因此True将返回True,否则返回False。

编辑:我应该提到我用^{cd4>}运行您的代码,因为我没有^{{cd5>}并且我评论^{{cd6>}因为我没有。

相关问题 更多 >