Python 满足条件后生成新的随机字

Python 满足条件后生成新的随机字,python,if-statement,random,timer,Python,If Statement,Random,Timer,我正在尝试用Python创建一个行话游戏,用户有2分钟的时间来猜测尽可能多的5个字母的正确单词。我使用random类和文本文件生成一个随机的5个字母的单词。但是,在用户正确猜出单词后,我不知道如何生成一个新的5个字母的单词。我想我会在计时器的while循环中生成它,但我不确定。我还在学习python,这是我第一次编写“游戏”程序。有什么想法或建议吗 import random from collections import Counter import time file = "wo

我正在尝试用Python创建一个行话游戏,用户有2分钟的时间来猜测尽可能多的5个字母的正确单词。我使用random类和文本文件生成一个随机的5个字母的单词。但是,在用户正确猜出单词后,我不知道如何生成一个新的5个字母的单词。我想我会在计时器的while循环中生成它,但我不确定。我还在学习python,这是我第一次编写“游戏”程序。有什么想法或建议吗

import random
from collections import Counter
import time

file = "words.txt" #File with 5 letter words
f = open(file, 'r')
lines = f.readlines()
randomword = random.choice(lines) #generate random 5 letter word from file
numletters = Counter(randomword)
word = [randomword[0], '_', '_', '_', '_']#part of word that is being shown to user
score = 0 #user score
print(randomword[0])
#print(randomword)
timer = 120 #amount of time game runs for
start_time = time.time() #remember when game started

while(time.time() - start_time < timer): #2 minutes is given to guess as many 5 letter words as possible
    for i in range(1,6): #take 5 guesses at what random word is
        guess = input("Guess the word: ")
        for j in range(1,5): #check to see if other 4 letters of random word match the letters in the user guess word
            numguess = Counter(guess)

            if(guess[j] == randomword[j] and word[j] == '_'): #replace empty character with letter of random word if correctly guessed
                word[j] =  randomword[j]
            elif(guess[j] in randomword and word[j] == '_'): #replace empty character with uppercase letter of guessed letter if that letter is in the randomword
                word[j] = guess[j].upper()
            elif(guess[j] in randomword and numguess[guess[j]] > numletters[guess[j]] and word[j] == '_'): #guessed letter gets replaced with '_' if max number of that letter is already in word
                word[j] = '_'
            elif(guess[j] == randomword[j] and word[j] != '_'): #replace uppercase letter with correctly guessed letter in word
                word[j] = randomword[j]
            elif(guess[j] == randomword[j] and guess[j].upper() in word): #upper case letter is guessed in correct spot, but no other letters are correcty guessed
                word[word.index(word[j].upper())] = '_'
            else: #no correct letters are guessed
                word[j] = '_'
       
        answer = word[0] + ' ' + word[1] + ' ' + word[2] + ' ' + word[3] + ' ' + word[4]       
        print(answer)
    
        if(answer == randomword[0] + ' ' + randomword[1] + ' ' + randomword[2] + ' ' + randomword[3] + ' ' + randomword[4]):   
            print("You are correct!")
            score += 100 #user scores 100 points for each correctly guessed word
            break
    if(answer != randomword[0] + ' ' + randomword[1] + ' ' + randomword[2] + ' ' + randomword[3] + ' ' + randomword[4]):
        print("You are incorrect! You get 0 points for this word")
        print("The correct word is: " + randomword.strip())

print("Your final score is " + str(score)) #print final score
随机导入
从收款进口柜台
导入时间
file=“words.txt”#包含5个字母单词的文件
f=打开(文件“r”)
行=f.读行()
随机词=随机。选择(行)#从文件中随机生成5个字母的词
numletters=计数器(随机字)
word=[randomword[0]、''、''、''、'']#显示给用户的word的一部分
分数=0#用户分数
打印(随机字[0])
#打印(Word)
计时器=120#游戏运行时间
开始时间=时间。时间()#记得游戏什么时候开始吗
while(time.time()-start_timenumletters[guess[j]]和word[j]=='''u'):#如果该字母的最大数量已在word中,则猜出的字母将替换为''u'
单词[j]=“uux”
elif(猜测[j]==randomword[j]和单词[j]!=''uz'):#用正确猜测的单词中的字母替换大写字母
单词[j]=随机单词[j]
elif(guess[j]==randomword[j]和guess[j]。word中的upper())#在正确的位置猜测大写字母,但没有正确猜测其他字母
word[word.index(word[j].upper())]=''
否则:#猜不出正确的字母
单词[j]=“uux”
答案=单词[0]+''+单词[1]+''+单词[2]+''+单词[3]+''+单词[4]
打印(答案)
如果(答案==随机词[0]+''+随机词[1]+''+随机词[2]+''+随机词[3]+''+随机词[4]):
打印(“你是对的!”)
分数+=100#用户每猜对一个单词就得100分
打破
如果(答案!=randomword[0]+''+randomword[1]+''+randomword[2]+''+randomword[3]+''+randomword[4]):
打印(“你错了!这个词你得0分”)
打印(“正确的单词是:”+randomword.strip())
打印(“您的最终分数为”+str(分数))#打印最终分数

将此代码输入python。它使用if语句用random.randint重新创建相同的变量

import random
condition = True  #saying the condition is true
randomthing = random.randint(1,10) # selecting a random number
print(randomthing, "is the first digit") #printing out the first randomly generated digit

if condition == True:
    randomthing = random.randint(1,10)# regenerating the number
    print(randomthing, "is the second number. if it is the same re run it") # printing out the second generated number
    

如果我能提供更多帮助,请告诉我

您的代码中最大的挑战之一是,您只能在他们猜到正确答案或猜了5次后才检查计时器。您需要使用线程来创建独立于用户输入运行的计时器。