Python 3.10 中的文字游戏验证用户输入仅使用特定字符(7 个随机字母)
Validate user input uses only specific characters (7 random letters) for a word game in Python 3.10
我对编程还很陌生,但我正在通过创建一个文字游戏来尝试一下。
import random
HowManyVowels = random.randint(1,5)
vowels = ["A" , "E" , "I" , "O" , "U"]
RoundVowels = random.sample(vowels,HowManyVowels)
HowManyConsonants = 7 - HowManyVowels
Consonants = ["B" , "C" , "D" , "F" , "G" , "H" , "J" , "K" , "L" , "M" , "N" , "P" , "Q" ,"R" , "S" , "T" , "V" , "W" , "X" , "Y" , "Z"]
RoundConsonants = random.sample(Consonants,HowManyConsonants)
RoundLetters = RoundVowels + RoundConsonants
print(RoundLetters)
import time
WordsGuessed = []
timeout = time.time() + 60*1 # 1 minute from now
while True:
test = 0
if test == 1 or time.time() > timeout:
break
test = test - 1
PlayerWord = input("What letters can you make from these letters?")
WordsGuessed.append(PlayerWord)
print(WordsGuessed)
我已经到了可以随机 select 一轮的字母并将一轮限制为一分钟的地方。输入验证是我挂断电话的地方。因此,如果我 运行 代码和字母 [A E M R T S V ] 被 select 编辑,则应该只允许用户使用这些字母。允许重复,长度必须超过3(不过这两条规则会更容易实现)。
问题是如何限制用户输入每轮选择的字符(大写和小写)。
这里有一个简单的验证方法。遍历他们输入的单词中的字母,并确保它们在允许的字母列表中。它看起来像这样:
for letter in PlayerWord: # This will loop through the input word
if letter not in RoundLetters:
print('Letter not in allowed list')
check = True
break
if check:
check = False
continue
else:
wordsGuessed.append(PlayerWord)
此外,请注意,将所有导入语句组合在代码顶部。
我会给你一些部分但不是全部答案:
- 使用
in
检查字符串中是否包含某个字符,例如'a' in 'aeiou' == True
- 如果正确选择了字符串中的每个字母,则该字符串被正确选择。使用
for c in PlayerWord:
循环遍历单词中的每个字母并记住是否找到不正确的字母
- 用 while 循环重复玩家输入,直到你得到一个正确的单词
我对编程还很陌生,但我正在通过创建一个文字游戏来尝试一下。
import random
HowManyVowels = random.randint(1,5)
vowels = ["A" , "E" , "I" , "O" , "U"]
RoundVowels = random.sample(vowels,HowManyVowels)
HowManyConsonants = 7 - HowManyVowels
Consonants = ["B" , "C" , "D" , "F" , "G" , "H" , "J" , "K" , "L" , "M" , "N" , "P" , "Q" ,"R" , "S" , "T" , "V" , "W" , "X" , "Y" , "Z"]
RoundConsonants = random.sample(Consonants,HowManyConsonants)
RoundLetters = RoundVowels + RoundConsonants
print(RoundLetters)
import time
WordsGuessed = []
timeout = time.time() + 60*1 # 1 minute from now
while True:
test = 0
if test == 1 or time.time() > timeout:
break
test = test - 1
PlayerWord = input("What letters can you make from these letters?")
WordsGuessed.append(PlayerWord)
print(WordsGuessed)
我已经到了可以随机 select 一轮的字母并将一轮限制为一分钟的地方。输入验证是我挂断电话的地方。因此,如果我 运行 代码和字母 [A E M R T S V ] 被 select 编辑,则应该只允许用户使用这些字母。允许重复,长度必须超过3(不过这两条规则会更容易实现)。
问题是如何限制用户输入每轮选择的字符(大写和小写)。
这里有一个简单的验证方法。遍历他们输入的单词中的字母,并确保它们在允许的字母列表中。它看起来像这样:
for letter in PlayerWord: # This will loop through the input word
if letter not in RoundLetters:
print('Letter not in allowed list')
check = True
break
if check:
check = False
continue
else:
wordsGuessed.append(PlayerWord)
此外,请注意,将所有导入语句组合在代码顶部。
我会给你一些部分但不是全部答案:
- 使用
in
检查字符串中是否包含某个字符,例如'a' in 'aeiou' == True
- 如果正确选择了字符串中的每个字母,则该字符串被正确选择。使用
for c in PlayerWord:
循环遍历单词中的每个字母并记住是否找到不正确的字母 - 用 while 循环重复玩家输入,直到你得到一个正确的单词