Рубрики

Идея проекта | (Игра анаграмм)

Идея проекта:

Целью этого проекта является создание игры на питоне, в которой пользователю предоставляется анаграмма слова, и он должен угадать правильное слово в течение ограниченного числа попыток.

Особенности проекта:

  1. Пользователь получает фиксированное количество попыток угадать правильное слово. Количество попыток зависит от длины слова.
  2. После каждой неверной попытки пользователю выдается подсказка правильного слова.
  3. Если пользователь не может угадать правильное слово в пределах фиксированного числа попыток, отображается правильное слово, и игра переходит к следующему слову.
  4. Ctrl + C или Ctrl + D выходят из игры.

Реализация:

Это руководство действительно только для систем на базе Linux. Это руководство написано для системы Linux Mint 17.1. Для реализации в других системах Linux (Redhat, Arch) см. Специальное примечание в конце этого руководства.

Почти во всех системах на основе Linux есть файл, расположенный в каталоге «/ usr / share / dict /» под разными именами, например «cracklib-small» (системы на основе Ubuntu), «words» (Redhat, Arch), который содержит слова из словаря и часто используются многими приложениями для реализации таких функций, как «проверка орфографии».

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

Чтение файла может предоставить нам все слова, необходимые для игры. Слова в файле разделяются новой строкой, поэтому при чтении файла нам нужно разделить слова на основе символа новой строки, чтобы получить отдельные слова. Код для того же будет выглядеть так:

loc='/usr/share/dict/cracklib-small'
with open(loc) as f:
content=f.read().split('\n')
f.close()

Файл также содержит слова типа «зоопарк», но мы не хотим, чтобы такие слова в нашей игре, поэтому мы можем их опустить. Чтобы не делать игру слишком простой, я решил также пропустить слова длиной менее 5, но этот шаг не является обязательным и может быть пропущен. Код для того же выглядит так:

l=len(content)
words=[]
for i in range(0,l):
    if '\'' in content[i] or len(content[i])<5:
    continue
words.append(content[i])

Файл также содержит слова типа «2-й, 3-й» в начале файла. Чтобы они не появлялись в нашей игре, мы опускаем их:

words=words[1:]
d=len(words)
words=words[:d]

Наконец, «слова» содержат все слова, необходимые для продолжения игры.

Мы можем выбрать конкретное слово для определенного раунда игры:

word=words[random.randint(0,d)]

Слово будет выбрано случайным образом из списка созданных слов.

Чтобы создать анаграмму слова, нам нужно перетасовать символы. Это можно сделать:

shuffle=list(word)
random.shuffle(shuffle)

Если длина слова, выбранного для раунда, больше 7, пользователь получает 7 попыток, в противном случае количество попыток составляет 5.

if len(word)>7:
    chances=7
else:
    chances=5
    tries=0

Переменная «try» отслеживает количество попыток, предпринятых пользователем. Мы инициализируем его до нуля.
При каждой попытке пользователя мы берем его ввод и сравниваем его с правильным словом. Если они совпадают, мы поздравляем пользователя и представляем следующую анаграмму, в противном случае мы даем им подсказку.

Чтобы сгенерировать подсказку для конкретного слова, мы выбираем два случайных целых числа от 0 до длины слова.

t1=random.randint(0,len(word))
t2=random.randint(0,len(word))

Мы отображаем правильные символы в этих двух позициях t1 и t2 и во всех других позициях мы показываем «.».

hint=""
for i in range(0,len(word)):
    if i==t1 or i==t2:
        hint=hint+word[i]
    else:
        hint=hint+"."
print hint

Если количество попыток = количество шансов, мы показываем ключевое слово, и игра продолжается.

if tries==chances:
    print "The answer was "+word

Специальное примечание: чтобы сделать код максимально независимым от платформы, мы можем динамически выбирать местоположение файла с помощью модуля платформы python.

os=platform.dist()[0]
if os=='LinuxMint' or os=='Ubuntu':
    loc='/usr/share/dict/cracklib-small'
else:
    loc='/usr/share/dict/words'

Необходимые программные средства: игра может быть реализована на Python с использованием модулей платформы и рандома.

Ссылка на Github: https://github.com/sub123/practice/blob/master/python/anagramwa.py

Эта идея внесена Субхамом. Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью и отправить ее по почте на contrib@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Рекомендуемые посты:

Идея проекта | (Игра анаграмм)

0.00 (0%) 0 votes