Python hangman game,doesnt work -
i trying develop hangman game in python, , stuck figuring out why correctly guessed letters not being remembered program.
for example, if entered letter in word "hello", python recognizes match when prompts letter entered, forgets updt_list (list has entered letters).
if kind have grateful.
import time def pick_a_word(): word = "hello" return word def guess_a_letter(): aletter = input("please input 1 letter @ time:\n") no_letters= len(aletter) if no_letters > 1: print("you inputed more 1 letter! don't forget- 1 @ time.\nlets try again..") time.sleep(2) return guess_a_letter() else: return aletter def blanklist(aword): blanklist = len(aword) * "_" return list(blanklist) def check(aletter,aword,blanklist): updt_list= blanklist(aword) which_letter= aword.index(aletter) updt_list[which_letter] = aletter return updt_list def engine(): guess=guess_a_letter() wordtoguess=pick_a_word() if guess in wordtoguess: print("\n") print("the letter in word") print(check(guess,wordtoguess,blanklist)) time.sleep(1) else: print("\n") print("the letter not in word") time.sleep(1) def repeat(): x = 0 while x <= 5: lifes= 6- x print("you have",lifes," attempts left") engine() x = x repeat()
please note inelegant , there problems if keep on guessing letter 'l' in case... didn't have more time spend on should enough push bit forward. remembers player's guesses , user can win game. apologies...
import time def pick_a_word(): word = "hello" return word def guess_a_letter(): #aletter = input("please input 1 letter @ time:\n") aletter = 'l' no_letters= len(aletter) if no_letters > 1: print("you inputed more 1 letter! don't forget- 1 @ time.\nlets try again..") time.sleep(2) return guess_a_letter() else: return aletter def buildwordlist(aword): blanklist = len(aword) * "_" return list(blanklist) def check(aletter,aword,updt_list, wordindex=0): which_letter= aword.index(aletter, wordindex) if updt_list[which_letter] != "_" , ((wordindex + 1) < len(aword)): wordindex = which_letter + 1 check(aletter,aword,updt_list, wordindex) updt_list[which_letter] = aletter return updt_list def engine(mistakes, updt_list, correctguesses): youwinflag = false guess=guess_a_letter() wordtoguess=pick_a_word() if guess in wordtoguess: print("\n") print("the letter in word") updt_list = check(guess,wordtoguess,updt_list) print updt_list correctguesses += 1 if correctguesses == len(wordtoguess): print("you guessed word!") youwinflag = true time.sleep(1) else: print("\n") print("the letter not in word") mistakes += 1 time.sleep(1) return mistakes, updt_list, correctguesses, youwinflag def repeat(updt_list): x = 0 blanklist = '' correctguesses = 0 while x <= 5: lives= 6- x print("you have",lives," attempts left") results = engine(x, updt_list, correctguesses) x = results[0] updt_list = results[1] correctguesses = results[2] youwinflag = results[3] if youwinflag: x = 6 def initialize_game(): wordtoguess=pick_a_word() updt_list = buildwordlist(wordtoguess) return updt_list updt_list = initialize_game() repeat(updt_list)
Comments
Post a Comment