фонебуква/слова угадать игру в питоне
Я пытаюсь написать код основного письма игры в питоне. В игре модератор компьютера выбирает слово из списка возможных слов. Каждому игроку (компьютерному AI и человеку) показана серия пробелов, по одной для каждой буквы слова. Каждый игрок угадывает букву и позицию, и говорят, один из следующих:
Это письмо принадлежит в этой позиции (лучший результат) Это письмо в слове, но не в таком положении Это письмо не в каком-либо из оставшихся пробелов Когда слово полностью раскрыто, игрок, чтобы угадать, что большинство букв правильно выигрывает, получает точку. Модератор компьютера выбирает другое слово и снова запускается. Первый игрок до пяти очков выигрывает игру. В основной игре оба игрока имеют одинаковый набор пробелов, которые они заполняют, поэтому игроки выигрывают от работы друг друга.
вопрос
Я работаю на компьютере AI часть прямо сейчас (в нижней части кода). Я хочу, чтобы он выбрал случайную букву из списка писем, которые НЕ были догаданы. Каков наилучший способ сделать это?
import random
#set initial values
player1points= 0
ai= 0
userCorrectLetters= ''
aiCorrectLetters=''
wrongPlace=''
wrongLetters=''
correctLetters = ''
notInWord = ''
endGame = False
alreadyGuessed = 'a'
userGuessPosition = 0
###import wordlist, create mask
with open('/Users/jamyn/Documents/workspace/Lab3/Lab3/wordlist.txt') as wordList:
secretWord = random.choice(wordList.readlines()).strip()
print (secretWord)
mask = '_' * len(secretWord)
for i in range (len(secretWord)):
if secretWord[i] in correctLetters:
mask = mask[:i] + secretWord[i] + mask [i+1:]
for letter in mask:
print (letter, end='')
print()
print()
def addAlreadyGuessed():
alreadyGuessed= userCorrectLetters + aiCorrectLetters + wrongLetters + correctLetters
def displayGame():
print ('letters are in word but not in correct location:', wrongPlace)
print ('letters not in word:', notInWord)
##asks the user for a guess, assigns input to variable
def getUserGuess(alreadyGuessed):
while True:
print ('enter your letter')
userGuess = input()
userGuess= userGuess.lower()
if len(userGuess) != 1:
print ('please enter only one letter')
elif userGuess in alreadyGuessed:
print ('that letter has already been guessed. try again')
elif userGuess not in 'abcdefjhijklmnopqrstuvwxyz':
print ('only letters are acceptable guesses. try again.')
else:
return userGuess
def newGame():
print ('yay. that was great. do you want to play again? answer yes or no.')
return input().lower().startswith('y')
userTurn=True
while userTurn == True:
print ('which character place would you like to guess. Enter number?')
userGuessPosition = int(input())
slice1 = userGuessPosition - 1
print (secretWord)
##player types in letter
guess = getUserGuess(wrongLetters + correctLetters)
if guess== (secretWord[slice1:userGuessPosition]):
correctLetters = correctLetters + guess
print ('you got it right! ')
break
elif guess in secretWord:
userCorrectLetters = userCorrectLetters + guess
correctLetters = correctLetters + guess
print ('that letter is in the word, but not in that position')
break
else:
wrongLetters = wrongLetters + guess
print ('nope. that letter is not in the word')
break
print ('its the computers turn')
aiTurn=True
while aiTurn == True:
aiGuess=random.choice('abcdefghijklmnopqrstuvwxyz')
print (aiGuess)
Мне нужно выяснить, как вычитать буквы из списка каждый раз, когда угадываемая буква является частью слова. IE, начните со списка как [abcdefghiklmnopqrstuvwxyz], и если пользователь угадает «a», тогда список будет изменен для чтения [bcdefg .... и т. Д.]. Тогда я должен иметь возможность использовать random.choice, чтобы AI выбрал его предположение из этого списка. – jamyn