为什么 Visual Studio 代码中的这个终端不会继续返回单个整数?

问题描述 投票:0回答:1

作为我的个人项目,我正在制作一个完全用 python 制作的(半功能性)视频游戏。唯一的问题是我似乎经常遇到在 VS code 内使用终端的问题。当前的问题是终端在返回测试值 1 后似乎就冻结了。

import time
import random

buildVer = 0.1
playerHealth = 5
enemyHealth = 1
encounterAcitve = 0
welcomeComplete = 0


def anyKey():
    input("Press any key to continue...")

def welcome():
    print("~Project by Broclly~")
    print("")
    print("")
    time.sleep(1/4)
    print("Greetings, welcome to Rogue.py!")
    time.sleep(1/4)
    print("This project is to test the limits of using Python as a game engine!")
    time.sleep(1/4)
    print("Current Build Version:", buildVer)
    anyKey()

def enemyTurn():
    enemyHit = random.randint(0,2)
    playerHealth = playerHealth - enemyHit
    print("You were hit for", enemyHit, "damage!")

def playerTurn():
    playerHit = random.randint(0,1)
    enemyHealth = enemyHealth - playerHit
    print("You hit the enemy for", playerHit, "damage!")

def check():
    if playerHealth <= 0:
        print("You died! Try again :(")
        time.sleep(1)

def enemyEncounter():
    while encounterAcitve == 1:
        enemyTurn()
        playerTurn()
    

while playerHealth > 0:
    while welcomeComplete == 0:
        welcome()
        welcomeComplete = 1
        print(welcomeComplete)
    enemyEncounter()

我希望这会运行一堆计算,并打印多条消息,但它似乎只返回我添加的测试值 1,以确保“welcomeComplete”变量正在工作。

python function formatting
1个回答
0
投票

程序“粘”在最后一行:

while playerHealth > 0: ... enemyEncounter()
,因为函数
enemyEncounter
立即返回:
while encounterAcitve == 1:
之前的所有内容都会起作用,但在它之后就不会了,因为没有给出条件(参见l.7:
encounterAcitve = 0
)。

当您在

print("hello")
之后添加类似
def enemyEncounter:
之类的内容时,它会在终端中为您提供许多
hello

PS:你是故意叫它

encounterAcitve
,还是应该叫
encounterActive

© www.soinside.com 2019 - 2024. All rights reserved.