import numpy as np # Henter tilfeldig ord fra ord-liste def get_random_word(words): word = np.random.choice(words) return word # Leser fil inn i liste av ord def read_file(filename): words = [] with open(filename, 'r') as f: for word in f: words.append(word.lower().strip()) return words # Skriver ut et bilde av hangman i terminal def print_hangman(lives): print_states = [ r''' ----- | O | /|\ | / \ | ''', r''' ----- | O | /|\ | / | ''', r''' ----- | O | /|\ | | ''', r''' ----- | O | /| | | ''', r''' ----- | O | | | | ''', r''' ----- | O | | | ''', r''' ----- | | | | ''' ] assert lives >= 0 and lives < len(print_states), 'Lives is worng: '+str(lives) print(print_states[lives]) # Skriver ut spill-tilstanden def print_game_state(lives, guesses, fasit): print('='*30) print(' Lives left: ', lives) print_hangman(lives) print(end=' ') for char in fasit: if char not in guesses: print('_ ', end='') else: print(char+' ', end = '') print('\n') print('Characters used: \n ', guesses) print('='*30) # Sjekket om vi har vunnet spillet def game_is_won(guesses, fasit): for char in fasit: if char not in guesses: return False return True # Lar bruker gjette en bokstav def make_guess(): guess = input('Guess character: ') guess = guess[0] return guess # Behandler den nye bokstaven def process_guess(lives, char, guesses, fasit): if char not in guesses: guesses.append(char) else: return lives if char not in fasit: lives -= 1 return lives # Variabler vi trenger under spillet lives = 6 words = read_file('words.txt') fasit = get_random_word(words) guesses = [] # Løkke som går så lenge spillet er i gang while lives > 0 and not game_is_won(guesses, fasit): print_game_state(lives, guesses, fasit) # Gi output til spiller char = make_guess() # Ta input fra spiller lives = process_guess(lives, char, guesses, fasit) # Behandler input # Gir output til spiller for å avslutte spillet print_game_state(lives, guesses, fasit) if game_is_won(guesses, fasit): print('Game WON! WOOOO!') else: print('Word was', fasit)