• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Błąd w programie python

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
447 wizyt
pytanie zadane 25 czerwca 2020 w Python przez PanPrezes Obywatel (1,520 p.)
import os
import random
import time
import datetime 
from subprocess import call

var_0 = 'w'
var_1 = 's'
var_2 = 'a'
var_3 = 'd'
choice_0 = 'y'
choice_1 = 'n'

#player
hp = 100
hunger = 0
energy = 100
thirst = 0

time = datetime.time(7,00)

def screen_clear():
   _ = call('clear' if os.name =='posix' else 'cls')

equipment = ["apple(15)", "water(45)", "sandwich(30)"]

print("COMMAND - SURVIVAL")
print()
print("W - Play")
print("S - Exit")
print()
    
menu_input = input("> ")

def game():
    screen_clear()
    print("===================================================")
    print()
    print("-Player Stats-")
    print()
    print("HP:" + str(hp))
    print("ENERGY:" + str(energy))
    print("HUNGER:" + str(hunger))
    print("THIRST:" + str(thirst))
    print("EQUIPMENT: " + str(equipment))
    print("TIME: " + time)
    print()
    print("W - Go Somewhere")
    print("S - Use Item")
    print("A - Craft Something")
    print("D - Look Around")
    print()
    user_input = input("> ")
    if user_input == var_0:
        print("W - East")
        print("S - West")
        print("A - North")
        print("D - South")
        print("N - I don't want go anywhere.")
        user_input == input("> ")
        if user_input == var_0:
            print("You went east.")
            energy = energy -- 10
            game()
        elif user_input == var_1:
            print("You went west.")
            game()
        elif user_input == var_2:
            print("You went north.")
            game()
        elif user_input == var_3:
            print("You went South.")
            game()
    elif user_input == var_1:
        print("What do you want to use?")
        print("Enter the number of item you want to use.")
        print("EQUIPMENT: " + str(equipment))
        user_input == input("> ")
    elif user_input == var_2:
        print("What do you want to craft?")
    elif user_input == var_3:
        print("What do you want to do?")
        user_input == input("> ")

if menu_input == var_0:
    screen_clear()
    print("Do you know how to play?")
    print("Y/N")
    user_input = input("> ")
    if user_input == choice_0:
        game()
    elif user_input == choice_1:
        screen_clear()
        print("HOW TO PLAY:")
        print()
        print("")
        print("")
        print("")
        print("")
        print("")
        print()
        print("Press enter to return to the menu.")
elif menu_input == var_1:
    print()

 

Nie mam zielonego pojęcia co mogło pójść źle

Błąd:

Traceback (most recent call last):

  File "main.py", line 91, in <module>

    game()

  File "main.py", line 42, in game

    print("ENERGY:" + str(energy))

UnboundLocalError: local variable 'energy' referenced before assignment     

1 odpowiedź

+1 głos
odpowiedź 25 czerwca 2020 przez Michałełe Nałogowiec (25,600 p.)
wybrane 25 czerwca 2020 przez PanPrezes
 
Najlepsza

W funkcji game dodaj powyżej użycia zmiennej:

global energy

Co oznacza, że użyjemy zmiennej globalnej, a nie zmiennej lokalnej w funkcji

komentarz 25 czerwca 2020 przez PanPrezes Obywatel (1,520 p.)
dzięki

Podobne pytania

0 głosów
1 odpowiedź 266 wizyt
pytanie zadane 22 lipca 2020 w Python przez PanPrezes Obywatel (1,520 p.)
0 głosów
1 odpowiedź 224 wizyt
pytanie zadane 11 września 2017 w Python przez ThyRavenWings Nowicjusz (190 p.)
+1 głos
1 odpowiedź 557 wizyt
pytanie zadane 17 grudnia 2019 w Python przez Marak123 Stary wyjadacz (11,190 p.)

93,430 zapytań

142,427 odpowiedzi

322,652 komentarzy

62,794 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...