День 7: Игра «Виселица


Проект

Сегодняшняя цель заключалась в создании игры «Виселица», и я очень оценил то, как Анжела разбила процесс создания игры на части, вместо того, чтобы сделать одно вступительное видео с одной лишь целью. То, как она разложила задачи, помогло мне понять, как должны работать определенные вещи для генерации случайного имени и где некоторые области могут нуждаться в цикле для правильной работы. Я думаю, это помогло сократить время, которое потребовалось бы для того, чтобы сделать этот ролик.

Блок-схема

Одна вещь, которую я начинаю ценить, это блок-схемы и необходимость в них перед началом проекта. Я всегда боялся, что мне придется составлять ее, и наивно полагал, что она не нужна, и я должен быть в состоянии продумать, что нужно сделать шаг за шагом, без нее. Но позвольте мне сказать, что я сильно ошибался 😅. Как только я понял, как продумать процесс сборки с помощью блок-схем, мне стало проще начать собирать проект.

Я добавил свою блок-схему ниже:

Решение

Этот проект действительно заставил меня потрудиться, и, как я уже упоминал во вступлении, он принес мне удовлетворение. Мое решение приведено ниже:

from multiprocessing.spawn import import_main_path
import random
from hangman_words import word_list
from hangman_art import logo, stages

chosen_word = random.choice(word_list)
word_length = len(chosen_word)

end_of_game = False
lives = 6

print(logo)

# Testing code
print(f'Pssst, the solution is {chosen_word}.')

# Create blanks
display = []
for _ in range(word_length):
    display += "_"

while not end_of_game:
    guess = input("Guess a letter: ").lower()

    if guess in display:
        print(f"Youve already guessed {guess}.")

    # Check guessed letter
    for position in range(word_length):
        letter Al = chosen_word[position]
        print(
            f"Current position: {position}n Current letter: {letter}n Guessed letter: {guess}")
        if letter == guess:
            display[position] = letter

    # Check if user is wrong.
    if guess not in chosen_word:
        print(
            f"You guessed {guess}. That letter is not in the word. Life lossed.")
        lives -= 1
        if lives == 0:
            end_of_game = True
            print("You lose.")

    # Join all the elements in the list and turn it into a String.
    print(f"{' '.join(display)}")

    # Check if user has got all letters.
    if "_" not in display:
        end_of_game = True
        print("You win.")
    print(stages[lives])

Войти в полноэкранный режим Выход из полноэкранного режима

Если вы посмотрите мой github repo, вы заметите импортированные файлы, используемые для артов и случайных имен, но я не думал, что мне нужно добавлять это сюда, чтобы сэкономить место. Все, над чем я работал, было сделано только из этого файла.

EOD

На этом сегодняшняя работа закончена. Я нахожусь в ATL на выходные, поэтому, скорее всего, я разделю 8-й день на 2 дня. К счастью, Анжела упомянула об этом в итоговом видео после проекта «Палач», так что я больше не чувствую себя плохо из-за того, что могу разделить несколько более длинных дней, если потребуется 😁✌🏾.

Если вы хотите следить за моими успехами или просто хотите пообщаться, посмотрите мои социальные ссылки ниже и поддержите меня!

  • 🐦 Twitter
  • 💻 Github
  • 👾 Discord
  • 👔 LinkedIn

Оцените статью
devanswers.ru
Добавить комментарий