我正在创建一个刽子手游戏,用户将在其中输入另一个用户必须猜测的单词。 我已经用破折号打印了这个词,但是当我输入一个字母中的字母时,我无法删除破折号。
#output a game of hangman
letters= ["A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"]
for i in range(1):
print("Welcome to Hangman")
word_guess = str(input("Please enter a word for user 2 to guess:"))
print("Word to be guessed:"+str(word_guess))
length_of_word=len(word_guess)
display=("-"*length_of_word)
print("Display:"+str(display))
for i in range(1):
print("Welcome to Hangman Player 2")
letter_guess=str(input("Please guess a letter:"))
if letter_guess in word_guess:
print("Yay you have a match")
display=display.rstrip(display)
print(display)
答案 0 :(得分:0)
试试这段代码,没有修补,但它确实有效。也许它可以给你一些想法。要工作,你必须连接,否则把文件放在计算机上。
from urllib.request import urlopen
from random import choice
w0 = urlopen("https://raw.githubusercontent.com/Xethron/Hangman/master/words.txt")
w = [str(x).replace("b'", "").replace("\\n", "") for x in w0]
word = choice(w)
word = word.replace("'", "")
strips = list("_" * len(word))
chosen = []
def guess():
y = input("Guess a letter: ")
if y in chosen:
print("You have choose this letter yet, retry...")
guess()
chosen.append(y)
if y in word:
if "_" not in strips:
print("GREAT, YOU WIN!")
print()
print()
pass
print("Great the letter is in the word")
indexes = [x for x, y2 in enumerate(word) if y == y2]
for ind in indexes:
strips[ind] = y
for ch in strips:
print("[" + ch + "]", end='')
print("You`ve choosen: ", "".join(chosen))
print()
print()
guess()
else:
print("This letter is not in the word, try again")
print("".join(strips))
print("You`ve choosen: ", "".join(chosen))
def start():
for ch in range(len(word)):
guess()
print("Game over " * 5)
print("The word was " + word)
print("\n" * 5)
print("HANGMAN - Giovanni Gianni Gatto")
print("print start() to restart")
print()
start()
答案 1 :(得分:0)
我有一个刽子手躺在我身边,我适应了你的需要。您需要的是列出包含找到的项[]
的列表,当您打印要显示的单词时,您只显示找到的项目中的字母_
。
print(' '.join(i if i in found else '_' for i in secretword))
这是一个游戏的完整示例,其中它要求one_guess
(一个函数),直到找到的项目的长度也等于该密码集的集合的长度(set删除重复的字母)。试试吧:
def print_word():
print(' '.join(i if i in found else '_' for i in secretword))
def valid_input():
while True:
guess = input("Guess a letter: ({})".format(''.join(i for i in alpha)))
if guess in alpha:
alpha.remove(guess)
return guess
else:
print("Not valid input!")
def one_guess():
print_word()
guess = valid_input()
if guess in letters:
print("You found one!\n")
letters.remove(guess)
found.append(guess)
else:
print("You didn't find one!\n")
secretword = "animal"
alpha = list("abcdefghijklmnopqrstuvwxyz")
letters = list(set(secretword))
found = []
while True:
one_guess()
if len(set(secretword)) == len(found):
print("You won!")