Python简单的美式足球模拟器没有运行

2024-04-25 00:37:39 发布

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

简单的足球模拟我的班级项目。我简化了很多游戏规则和方面,所以和实际的足球比赛相比,一切都不是很准确。然而,当我试着运行我的函数时,只有一行代码会打印出QB的名字,而QB是抛出到接收器的。例如,当我只运行它,“杰瑞德高夫扔给布兰丁库克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()

Tags: returniftimepositionrandomglobalscoreprint
1条回答
网友
1楼 · 发布于 2024-04-25 00:37:39

我最好的猜测是,您的比较没有考虑到这样一个事实,即值可以超过目标值。例如,在检查码数时,您正在检查是否等于100,但不能保证值不会超过100。您也有一个类似的错误,检查季度时间是否==0,而它应该是<;=0,以确保它触发。你知道吗

我不能告诉您更改这些比较是否可以修复您的程序,但请尝试这些更改并评论行为如何更改。你知道吗

相关问题 更多 >