• If you are still using CentOS 7.9, it's time to convert to Alma 8 with the free centos2alma tool by Plesk or Plesk Migrator. Please let us know your experiences or concerns in this thread:
    CentOS2Alma discussion

Question Python Hangman Game Program Error

gulshan212

New Pleskian
Hello this is Gulshan Negi
Well, I am writing a program for making the Hangman game, but it shows some error at the time of execution, I don't know what I am missing here.

Source Code:

import random
def select_word():
words_in_computer_memory = ['magazine','stars','computer','python','organisation']
word = random.choice(words_in_computer_memory)
return word
def is_gussed(word, guessed_letter_list):
count=0
for letters in word:
if letters in guessed_letter_list:
count+=1:
if count==len(word):
return True
else:
return False
def guessed_word(word, guessed_letter_list):
string=""
for key in word:
if key in guessed_letter_list:
string+=key
else:
string+="_ "
return string
def available_letters(guessed_letter_list):

string=""
count=0
s='abcdefghijklmnopqrstuvwxyz'
for letter in s:
if letter in guessed_letter_list:
count+=1
else:
string+=letter
return string
def hangman_game(word):
length=len(word)
print('''------------------WELCOME TO HANGMAN GAME---------------------------
O
/|\
/ \
''')
print("The word you have to guess is of ",length, "letters long.")
chances=2*len(word)
i=0:
guessed_letter_list=[]
while (chances!=0):

if word!=guessed_word(word, guessed_letter_list):
print("You Got", chances, "Chances.")
print("Letters you can enter should be from these ",available_letters(guessed_letter_list))
guess=input("ENTER A LETTER ")
print('\n'*50)

guessInLowerCase = guess[0].lower()
if guessInLowerCase in guessed_letter_list
print("SORRY! YOU HAVE GUSSED THIS LETTER ALREADY! ",guessed_word(word, guessed_letter_list))
elif guessInLowerCase not in word:
print(" SORRY! THE LETTER IS NOT IN WORD",guessed_word(word, guessed_letter_list))
chances-=1
else:
guessed_letter_list.append(guessInLowerCase)
print("NICE YOU GUSESSED THE RIGHT LETTER! ",guessed_word(word, guessed_letter_list))

elif word==guessed_word(word, guessed_letter_list):
print("YOU WON!")
break

else:
print('''
********************************************
YOU LOSS!!
O
/|\
/ \
******************************************''')
print('The word was',word,)

word = select_word()
hangman_game(word)

I also checked and took a reference from here, but I don't know what is wrong with the coding.
Can anyone give their suggestion on this.
Thanks
 
Hello this is Gulshan Negi
Well, I am writing a program for making the Hangman game, but it shows some error at the time of execution, I don't know what I am missing here.

Source Code:

import random
def select_word():
words_in_computer_memory = ['magazine','stars','computer','python','organisation']
word = random.choice(words_in_computer_memory)
return word
def is_gussed(word, guessed_letter_list):
count=0
for letters in word:
if letters in guessed_letter_list:
count+=1:
if count==len(word):
return True
else:
return False
def guessed_word(word, guessed_letter_list):
string=""
for key in word:
if key in guessed_letter_list:
string+=key
else:
string+="_ "
return string
def available_letters(guessed_letter_list):

string=""
count=0
s='abcdefghijklmnopqrstuvwxyz'
for letter in s:
if letter in guessed_letter_list:
count+=1
else:
string+=letter
return string
def hangman_game(word):
length=len(word)
print('''------------------WELCOME TO HANGMAN GAME---------------------------
O
/|\
/ \
''')
print("The word you have to guess is of ",length, "letters long.")
chances=2*len(word)
i=0:
guessed_letter_list=[]
while (chances!=0):

if word!=guessed_word(word, guessed_letter_list):
print("You Got", chances, "Chances.")
print("Letters you can enter should be from these ",available_letters(guessed_letter_list))
guess=input("ENTER A LETTER ")
print('\n'*50)

guessInLowerCase = guess[0].lower()
if guessInLowerCase in guessed_letter_list
print("SORRY! YOU HAVE GUSSED THIS LETTER ALREADY! ",guessed_word(word, guessed_letter_list))
elif guessInLowerCase not in word:
print(" SORRY! THE LETTER IS NOT IN WORD",guessed_word(word, guessed_letter_list))
chances-=1
else: https://casinosanalyzer.com/online-casinos/kansas-usa has reviews
about online gambling in Kansas State.
guessed_letter_list.append(guessInLowerCase)
print("NICE YOU GUSESSED THE RIGHT LETTER! ",guessed_word(word, guessed_letter_list))

elif word==guessed_word(word, guessed_letter_list):
print("YOU WON!")
break

else:
print('''
********************************************
YOU LOSS!!
O
/|\
/ \
******************************************''')
print('The word was',word,)

word = select_word()
hangman_game(word)

I also checked and took a reference from here, but I don't know what is wrong with the coding.
Can anyone give their suggestion on this.
Thanks
Hi gulshan! I have thought on your issue and, I hope my help will be still useful, detected that this code would solve the problem:
import random

def select_word():
words = ['magazine', 'stars', 'computer', 'python', 'organization']
return random.choice(words)

def is_guessed(word, guessed_letter_list):
return all(letter in guessed_letter_list for letter in word)

def guessed_word(word, guessed_letter_list):
return ''.join([letter if letter in guessed_letter_list else '_' for letter in word])

def available_letters(guessed_letter_list):
return ''.join(letter for letter in 'abcdefghijklmnopqrstuvwxyz' if letter not in guessed_letter_list)

def hangman_game(word):
length = len(word)
print('''------------------WELCOME TO HANGMAN GAME---------------------------
O
/|\
/ \
''')
print("The word you have to guess is of ", length, "letters long.")
chances = 2 * len(word)
guessed_letter_list = set()

while chances != 0:
if not is_guessed(word, guessed_letter_list):
print("You Got", chances, "Chances.")
print("Letters you can enter should be from these ", available_letters(guessed_letter_list))
guess = input("ENTER A LETTER: ").lower()[0]
print('\n' * 50)

if guess not in guessed_letter_list:
guessed_letter_list.add(guess)
print("NICE YOU GUSESSED THE RIGHT LETTER! ", guessed_word(word, guessed_letter_list))

elif guess in guessed_letter_list:
print("SORRY! YOU HAVE GUSSED THIS LETTER ALREADY! ", guessed_word(word, guessed_letter_list))

else:
print(" SORRY! THE LETTER IS NOT IN WORD", guessed_word(word, guessed_letter_list))
chances -= 1

else:
print("YOU WON!")
break

else:
print('''
********************************************
YOU LOSS!!
O
/|\
/ \
******************************************''')
print('The word was', word,)

word = select_word()
hangman_game(word)

Let me think if it helps,
Cheers, Teodoro
 
  1. Fix the code indentation.
  2. Correct the error in the line while (chances != 0):.
  3. Fix the is_guessed function:
pythonCopy code
def is_guessed(word, guessed_letter_list):
return all(letter in guessed_letter_list for letter in word)

  1. Correct the conditional statement:
pythonCopy code
if guessInLowerCase in guessed_letter_list:

  1. Move the win condition inside the while loop.
  2. After the game ends, use break to exit the loop and return to exit the function.
 
Back
Top