Problem z kodem do pierwszej gry tekstowej w Pythonie.

0

Dzień dobry wszystkim.
Mam problem, ponieważ jak widać na załączonym ss z pythona, nie działa mi napisany kod. Miał on służyć do gry w wisielca.
Czy mógłbym liczyć na wytłumaczenie tego, dlaczego nie działa ten kod.

Z góry dziękuje,
KomnatoMan <3

0

Zmienna word jest częścią funkcji hangman. Poza nią nie istnieje, więc program się wykrzacza. W ogóle wygląda jakby kod wewnątrz niej miał się wykonać na początku, a nie na końcu.

Swoją drogą możesz zrobić po prostu word = random.choice(word_list)

0

dodaj jedno wcięcie (tab lub co tam masz) do wszystkiego po wrong = 0 aż do hangman()

0

Teraz taki mam problem.

0

import random

def hangman():
word_list = ["python", "java", "książka", "samochód", "autokar"]
word = random.choice(word_list)
wrong = 0

stages = ["", "________      ", "|      |      ", "|      0      ", "|     /|\     ", "|     / \     ", "|"]
remaning_letters = list(word)
game_board = "__" * len(word)
win = False
print("Gra w wisielca")
while guess < len(stages) -1:
    print("\n")
    guess = input("Odgadnij literę:")
    if guess in remaning_letters:
        chn = remaning_letters.index(chn)
    game_board[chn] = '$'
else:
    wrong +=1
    print(("  ".join(game_board)))
    print('\n'.join(stages[0: wrong +1]))
    if "__" not in game_board:
        print("Wygrałeś!")
        print(' ',join(game_board))
        win = True
            break
if not win:
        print('\n'.join(stages[0: wrong]))
        print('Przegrałeś! Miałeś ogdanąć {}'.format(word))

hangman()

1

Na forum ludzie pomagają ci za darmo, więc słuchaj się ich rad, jak zadajesz pytanie po prawej stronie masz taką ramkę ---------> tam jest napisane:

Kod źródłowy umieszczaj pomiędzy a (w nowej linii). Jeżeli chcesz włączyć kolorowanie składni, dodaj nazwę języka, np. ```php

Stosuj się do tego polecenia, a co do kodu:

while guess < len(stages) -1:

ten warunek nie ma sensu, dopóki literka wczytana od użytkownika jest mniejsza niż liczba pomyłek?
Twój program mógłby wyglądać tak

import random

def hangman():
    word_list = ["python", "java", "książka", "samochód", "autokar"]
    word = random.choice(word_list)
    stages = ["",
              "________      ",                             #w pythonie tak można zapisywać 
              "|      |      ",                             #dane wtedy kod jest 
              "|      0      ",                             #czytelniejszy
              "|     /|\     ",             
              "|     / \     ",
              "|             "]
    game_board = ["__" for _ in range(len(word))]           #poczytaj o wyrażeniach listowych
    wrong = chn = 0
    guess = ''

    while "__" in game_board and wrong < len(stages) - 1:   #dopoki nie odgadl calego i nie przegral
        print()
        print(("  ".join(game_board)))
        guess = input("Odgadnij literę:")                   
        if guess != '' and guess in word:
            for i in range(len(word)):
                if word[i] == guess:
                    game_board[i] = guess                   #a co jesli jest wiecej takich samych liter w wyrazie?
            print("Brawo zgadłeś !")
        else:
            wrong += 1
            print("Niestety nie..")
        print()
        print((" ".join(game_board)))                       #za kazdym razem pokazujmy stan gry
        print("\n".join(stages[:wrong +1]))
        
    if "__" not in game_board:
        print("Wygrales !")
    else:
        print('Przegrałeś! Miałeś ogdanąć {}'.format(word))

hangman()

1 użytkowników online, w tym zalogowanych: 0, gości: 1