Как сделать так, чтобы в моей игре палач можно было найти более 2 двойных букв?

1

У меня была проблема в моей программе палача, в которой было найдено более двух слов с двойной буквой.

EX: если бы у меня был aabc или aaabc в моем списке слов догадки, тогда я думаю, a b c не скажет мне, что я прав. Но если бы я имел abc в списке слов угадывания, и я предполагаю a b c, тогда я получаю право.

Здесь мой код:

while keep_playing:
    wordlist=["butterfly","tree","circumstances","jinrikisha"]
    word=choice(wordlist)
    word_len=len(word)
    guesses=word_len * ['_']
    max_incorrect=7
    alphabet="abcdefghijklmnopqrstuvxyz"
    letters_tried=""
    number_guesses=0
    letters_correct=0
    incorrect_guesses=0
    print_game_rules(max_incorrect,word_len)
    while (incorrect_guesses != max_incorrect) and (letters_correct != word_len):
        clues()
        letter=get_letter()
        if len(letter)==1 and letter.isalpha():
            if letters_tried.find(letter) != -1:
                print "You already picked", letter
            else:
                letters_tried = letters_tried + letter
                first_index=word.find(letter)
                if  first_index == -1:
                    incorrect_guesses= incorrect_guesses +1
                    print "The",letter,"is not the mystery word."
                else:
                    print"The",letter,"is in the mystery word."
                    letters_correct=letters_correct+1
                    for i in range(word_len):
                        if letter == word[i]:
                            guesses[i] = letter
        else:
            print "Please guess a single letter in the alphabet."

Посмотрите, как у моего списка слов было более двух двойных букв, и никогда не говори, что я прав, даже я догадался о всех письмах. Я знаю, что когда слово len letter больше двух (как двойное письмо), это не будет правильно, но как я могу его исправить?

Теги:

1 ответ

2

Конечное условие неверно, потому что letters_correct только увеличивается каждый раз (даже если письмо повторяется несколько раз).

Я бы изменил конечное условие [victory] на "когда нет _ в guesses", что означает, что все _ были заменены, что означает... (также обязательно возьмите входную фразу "привет" мир "[и тому подобное] при создании guesses, если это имеет значение).

Счастливая домашняя работа.


Бонусные баллы для того, чтобы сделать программу более "модульной": тривиальное изменение заключается в том, чтобы основной цикл (с условием условия победы) вызывал метод, который запрашивает письмо, а затем обновляет отображение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню