JUAN SALCEDO
JUAN SALCEDO

Reputation: 17

How to make program restart itself on command

I'm Juan Salcedo, and I am working on a program for my finals for Computer Science and Software Engineering. I have been working on this program for bout two days and I want my user to have the option to either play the puzzle or again or to stop playing. How would I go about doing this? Thank you for your help, regards Juan!

# Hangman
# Juan Salcedo
# 3.7.19

# Importing necessary modules
import random
import sys

print(dir(random))
print(dir(sys))

# Randomize list and break down into letters
words = ['bread', 'clock', 'mouse', 'banana', 'suitcase', 'kitten', 'jupiter', 'bucket', 'cake', 'goose']

random.choice(words)

answer = list(random.choice(words))

# Replace letters with dashes '-'
display = []
display.extend(answer)

for i in range(len(display)):
    display[i] = '-'

# Modified after "Repl_w/_dash" branch
print(' '.join(display))

# Asks user or letters until all are guessed correctly
num = 0

while num < len(answer):
    user_guess = input('Guess a letter: ')
    # Modified after "User input" branch
    user_guess = user_guess.lower()
    print(num)

    # Replaces dashes with user chosen letters
    for i in range(len(answer)):
        if answer[i] == user_guess:
            display[i] = user_guess
            num = num + 1

    print(' '.join(display))

Upvotes: 0

Views: 94

Answers (2)

Mahir Islam
Mahir Islam

Reputation: 1972

This should work. I have included the full code. Here's the code:

# Hangman
# Juan Salcedo
# 3.7.19

# Importing necessary modules
import random
import sys
while True:
    print(dir(random))
    print(dir(sys))
    # Randomize list and break down into letters
    words = ['bread', 'clock', 'mouse', 'banana', 'suitcase', 'kitten', 'jupiter', 'bucket', 'cake', 'goose']
    random.choice(words)
    answer = list(random.choice(words))
    # Replace letters with dashes '-'
    display = []
    display.extend(answer)
    for i in range(len(display)):
        display[i] = '-'
    # Modified after "Repl_w/_dash" branch
    print(' '.join(display))
    # Asks user or letters until all are guessed correctly
    num = 0
    while num < len(answer):
        user_guess = input('Guess a letter: ')
        # Modified after "User input" branch
        user_guess = user_guess.lower()
        print(num)
        # Replaces dashes with user chosen letters
        for i in range(len(answer)):
            if answer[i] == user_guess:
                display[i] = user_guess
                num = num + 1
        print(' '.join(display))
    print('do you want to play again? y/n')
    ans = input()
    if ans != 'y': 
        break

Upvotes: 1

Alessandro Solbiati
Alessandro Solbiati

Reputation: 979

you can just use a while loop

import this
import that

while True:
    #play game
    print('do you want to play again? y/n')
    ans = input()
    if ans != 'y': 
        break

Upvotes: 1

Related Questions