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

Program python

Object Storage Arubacloud
+1 głos
122 wizyt
pytanie zadane 5 lipca 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'

direction = ""

action = "You woke up in the woods."

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

time = datetime.time(7,00)

random_0 = (random.randint(0, 49))
random_1 = (random.randint(1, 20))

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

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

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

def game():
    screen_clear()
    
    global hp
    global energy
    global hunger
    global thirst
    global equipment
    global time
    global random
    
    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: " + str(time))
    print()
    print(action)
    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.")
            direction = "east"
            energy = energy - 15
            thirst = thirst + 5
            hunger = hunger + 2.5
            if random_0 == 0:
                hp = hp - random_1
            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("> ")

def event_0():
    print("When you used to go " + direction + "you hurt your leg.")
    game()

if user_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.")
        input("> ")
        game()
elif menu_input == var_1:
    print()

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

    if user_input == var_0:                                                                                                                                               

NameError: name 'user_input' is not defined

 

Niby błąd prosty ale nie mam zielonego pojęcie co tam zrobiłem źle.

1
komentarz 5 lipca 2020 przez tkz Nałogowiec (42,000 p.)
A gdzie definiujesz user_input? Odwołujesz się jakby była globalnie zdefiniowana.

1 odpowiedź

0 głosów
odpowiedź 5 lipca 2020 przez VBService Ekspert (253,340 p.)
edycja 6 lipca 2020 przez VBService
choice_0 = 'y'
choice_1 = 'n'

direction = ""
user_input = ""
menu_input = ""

action = "You woke up in the woods."

wink

Po "poprawieniu" błędu, który opisał wyżej @PanPrezes, pojawił mi się kolejny, jak niżej:

Ten zapis nie działa w Windows10 x64 Python 3.8.3

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

Zwraca taki bład:

ten działa:

def screen_clear():
    os.system('cls' if os.name=='nt' else 'clear')

lub

def screen_clear():
    _ = lambda: subprocess.call('cls||clear', shell=True)

mój ulubiony

# działa windows, linux, i nie tylko w python'ie :-)
screen_clear = lambda: print("\033[H\033[2J")

 wink

komentarz 5 lipca 2020 przez tkz Nałogowiec (42,000 p.)
Na pewno nie pomyliłeś pytań? Bo coś nie mogę uwierzyć by tak zinterpretować błąd OPa

Podobne pytania

0 głosów
1 odpowiedź 538 wizyt
pytanie zadane 5 grudnia 2021 w Python przez Magnikor Początkujący (390 p.)
0 głosów
1 odpowiedź 139 wizyt
pytanie zadane 16 października 2022 w Python przez benny13 Obywatel (1,150 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...