import random
def load_words(file):
f = open(file, "r", encoding="UTF-8")
words = []
for word in f.readlines():
words.append(word.strip('\n'))
words.sort()
return words
def pick_a_word(words):
n = len(words)
index = random.randint(0, n-1)
return words[index]
def level(m):
print("난이도1~3 1급 단어//3 ; 2급 단어//2 ; 3급 모든 단어")
n=input("난이도 입력:")
if n=="1":
return len(m)//3
elif n=="2":
return len(m)//2
else:
return len(m)
def puncture_word(word, n):
target = random.sample(list(word),n)
result = ""
for s in word:
if s in target:
result = result + "_"
else:
result = result + s
return result, target
def guess(picked_word, quiz_word, target,n,k):
n*=2
print("매번 단어를 맞히는 횟수가 빈칸을 채우는 횟수의 2배입니다(尝试的机会是空格的2倍), so 이번 단어 찾는 기획:", n)
c = input("guess a hidden character : ")
#ord('a') == 97, ord('z') == 122
while not(len(c) == 1 and 97 <= ord(c) <= 122):
c = input("guess a hidden character : ")
if c in target:
target.remove(c)
quiz_word = ""
for i in range(len(picked_word)):
if picked_word[i] in target:
quiz_word += "_"
else:
quiz_word += picked_word[i]
else:
k += 1
print("오답입니다. 현재까지 틀린 횟수(截止到现在次错误的次数):", k)
if k >= n:
print("틀린 횟수가 너무 많습니다. 프로그램을 종료합니다.")
exit()
return quiz_word, target,k
def main():
sorted_words = load_words("/Users/wangzhehan/Downloads/words_sample.txt")
picked_word = pick_a_word(sorted_words)
n=level(picked_word)
quiz_word, target = puncture_word(picked_word, n)
k = 0
while '_' in quiz_word and k < n:
print(quiz_word)
quiz_word, target,k= guess(picked_word, quiz_word, target,n,k)
#if k >= n * 2:
#print("틀린 횟수가 너무 많습니다. 프로그램을 종료합니다.")
#print(quiz_word)
#print("失败!")
#exit()
print(quiz_word)
print("축하합니다!")
@Dick_不周 哥 正常输入但输入错误的时候记一次错误的次数,但非正常输入不计入错误输入次数,在超过规定次数后直接打印 失败 但我试了很多次 在各个地方补充这个要求 但要么不满足要求 要么代码运行出错 能帮我看看吗?😭 拜-托啦🙏!