Wordle недавно покорил Интернет, и неудивительно, почему! Простой, но интригующий игровой процесс многих зацепил. Вы когда-нибудь задумывались о том, чтобы создать свою собственную версию? С помощью Python и Streamlit вы можете в кратчайшие сроки создать игру в стиле Wordle. Давайте погрузимся!

Подготовка сцены

Прежде чем мы перейдем к коду, вот краткий обзор того, что делает игра:

  1. Игра выбирает случайное слово из заранее заданного списка.
  2. Игрокам предстоит угадать слово из 5 букв.
  3. После каждого предположения игра предлагает обратную связь:
  • 🟢: Правильная буква, правильная позиция!
  • 🟡: Правильная буква, неправильная позиция.
  • 🔴: Буквы нет в слове.

4. Игра завершается либо после правильного угадывания слова, либо после 6 попыток.

Звучит весело? Давайте займемся кодированием!

import streamlit as st
import random

# Sample list of 5-letter words. Expand as needed.
words = ["apple", "brave", "charm", "drift", "elope", "flock", "grasp"]

# Choose a random word from the list
target_word = random.choice(words)

# Maximum number of attempts allowed
MAX_ATTEMPTS = 6

# Placeholder for user's past attempts
guesses = []

st.title('Wordle-like Game using Streamlit')
st.write("Guess the 5-letter word!")

# Function to compare the target and guessed word
def compare_words(target, guess):
    return ['🟢' if t == g else '🟡' if t in guess else '🔴' for t, g in zip(target, guess)]

for attempt in range(MAX_ATTEMPTS):
    # Get the user's guess
    guess = st.text_input(f"Attempt {attempt + 1}", max_chars=5, key=attempt)

    # If the guess is valid
    if len(guess) == 5:
        feedback = compare_words(target_word, guess)
        guesses.append((guess, feedback))

        # Display the past attempts with feedback
        for g, f in guesses:
            st.write(f"{g.upper()} {' '.join(f)}")

        # If the guess is correct
        if guess == target_word:
            st.success("Congratulations! You've guessed the word!")
            break
    else:
        st.warning("Please enter a 5-letter word.")

    # If the maximum attempts are reached
    if attempt == MAX_ATTEMPTS - 1:
        st.error(f"You've reached the maximum attempts! The word was: {target_word.upper()}")

Запуск игры

После того, как вы записали приведенный выше код в файл Python (скажем, wordle_game.py), вы можете запустить игру с помощью Streamlit: (используя командную строку)

потоковый запуск wordle_game.py

Последние мысли

В этом уроке представлена ​​базовая основа, но вы можете многое добавить. Подумайте о том, чтобы расширить список слов, ввести различные уровни сложности или предложить сложные подсказки.

Если вы энтузиаст Wordle или хотите создавать крутые проекты с помощью Streamlit, эта игра станет отличной отправной точкой. Приятного кодирования и еще большего удовольствия от отгадывания слов! 🚀🔤🎉

Если вы хотите узнать больше о Python, эта книга является лучшим источником информации и очень популярна.