Python简单的美式橄榄球模拟器未运行

时间:2018-10-31 00:57:42

标签: python python-3.x

针对我的课堂项目的简单足球模拟。我简化了游戏的许多规则和方面,因此与实际的足球比赛相比,所有内容都不十分准确。但是,当我尝试运行函数时,仅打印将QB的名称打印到接收方的代码行。例如,当我只运行它时,“杰瑞德·高夫(Jared Goff)向布兰迪·库克斯(Brandin Cooks)投了33码!”出现在显示屏上。如何使整个功能运行/打印?不知道我哪里做错了。

import random
rams_qb = ["Jared Goff"]
patriots_qb = ["Tom Brady"]
rams_receivers = ["Cooper Kupp", "Brandin Cooks"]
patriots_receivers = ["Julian Edelman", "Josh Gordon"]
rams_score = 0
patriots_score = 0
quarter_time = 900


def remaining_time():
    global quarter_time
    global rams_score
    global patriots_score
    if quarter_time > 0:
        if random.randint(0,100) < 50:
            return rams_possesion()
        else:
            return patriots_possesion()
    elif quarter_time == 0:
        if rams_score > patriots_score:
            print ("Rams Win!")
        else:
            print ("Patriots Win!")

def rams_possesion():
    global quarter_time
    global rams_score
    rams_ball_position = 50
    rams_downs = 1
    if rams_ball_position == rams_ball_position + 10:
        rams_downs = 1
    else:
        rams_downs += 1
    if rams_ball_position == 100:
        rams_score == rams_score + 6
        print ("RAMS TOUCHDOWN!")
        return rams_fieldgoal
    if rams_downs <= 4:
        rams_yardage_gained = random.randint(0,50)
        print ((random.choice(rams_qb)),("throws to"), 
(random.choice(rams_receivers)),("for"),(str(rams_yardage_gained)), 
("yards!"))
        rams_ball_position == rams_ball_position + rams_yardage_gained
        quarter_time -= random.randint(0,30)
    if rams_downs >= 5:
        return patriots_possesion

def rams_fieldgoal():
    global rams_score
    if random.randint(0,100) < 83:
        rams_score == rams_score + 1
        print ("RAMS SCORE FIELDGOAL!")
    else:
        print ("RAMS MISS FIELDGOAL")
        return patriots_possesion

def patriots_possesion():
    global patriots_score
    patriots_ball_position = 50
    patriots_downs = 1
    if patriots_ball_position == patriots_ball_position + 10:
        patriots_downs = 1
    else:
        patriots_downs += 1
    if patriots_ball_position == 100:
        patriots_score == patriots_score + 6
        print ("PATRIOTS TOUCHDOWN!")
        return patriots_fieldgoal
    if patriots_downs <= 4:
        patriots_yardage_gained = random.randint(0,50)
        print ((random.choice(patriots_qb)),("throws to"), 
(random.choice(patriots_receivers)),("for"),(str(patriots_yardage_gained)), 
("yards!"))
        patriots_ball_position == patriots_ball_position + 
patriots_yardage_gained
    if patriots_downs >= 5:
        return rams_possesion()

def patriots_fieldgoal():
    global patriots_score
    if random.randint(0,100) < 87:
        patriots_score == patriots_score + 1
        print ("PATRIOTS SCORE FIELDGOAL!")
    else:
        print ("PATRIOTS MISS FIELDGOAL")
        return rams_possesion()

remaining_time()

1 个答案:

答案 0 :(得分:0)

我在这里最好的猜测是,您的比较没有考虑值可以超过目标的事实。例如,当检查码数时,您要检查等于100的相等性,但不能保证该值不会超过100。在检查Quarter_time == 0(应为< = 0以确保触发。

我无法告诉您更改这些比较是否可以解决您的程序,但是请尝试这些更改并评论行为的更改。