Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Код будущего не получается решить задание

tzi izi Знаток (409), открыт 1 неделю назад
Я не понимаю как нужно это решить я всё правильно написал, нейросеть так же даёт неправильный ответ

Напиши код игры «Словарик». В начала программа выводит сообщение «Игра начинается» и запускает первый уровень:
- на 1 уровне программа выводит сообщение «1 уровень» и запрашивает 4 слова из 4 букв. Если слова введены верно, то запускается 2 уровень, иначе 1 уровень начинается сначала;
- на 2 уровне программа выводит сообщение «2 уровень» и запрашивает 2 слова из 7 букв. Если слова введены верно, то запускается 3 уровень, иначе 2 уровень начинается сначала;
- на 3 уровне программа выводит сообщение «3 уровень» и дает 2 попытки ввода предложения, которое состоит из 7 слов (между словами 1 пробел). Если предложение введено верно, то выводится сообщение «Победа!», иначе «Увы, это проигрыш!»

Подсказка: слово - это любая строка, не обязательно осмысленная. Уровни лучше реализовать в виде функций.

Входные данные:
Вводятся строки.

Выходные данные:
Выводятся строки.

Пример работы программы:
Игра начинается
1 уровень
волк
чаша
куча
кофе
2 уровень
колечко
машинка
3 уровень
я люблю тебя до слез это правда
Победа!

Примечание:
Для вывода текста пользуйся только командой print(), подсказки внутри команды input() не используй!

 def one(): 
a = input()
b = input()
c = input()
d = input()

if len(a) == 4 and len(b) == 4 and len(c) == 4 and len(d) == 4:
print("2 уровень")
two()
else:
one()

def two():
a = input()
b = input()

if len(a) == 7 and len(b) == 7:
print("3 уровень")
three()
else:
two()

def three():
i = 2

while i != 0:
a = input()
if a.count(" ") == 6:
print("Победа!")
break
else:
i -= 1
else:
print("Увы, это проигрыш!")

print("Игра начинается")
print("1 уровень")
one()
1 ответ
HAKER HAKER Знаток (314) 1 неделю назад
Проблема в том, что ваш код проверяет только длину слов, но не их количество. Например, на первом уровне вы должны запросить 4 слова, а не одно слово длиной 4 символа.

Вот исправленный код:

def one():
print("1 уровень")
words = []
for i in range(4): # Запрашиваем 4 слова
word = input()
if len(word) == 4:
words.append(word)
else:
print("Неверная длина слова. Попробуйте снова.")
return one() # Начинаем уровень заново
if len(words) == 4: # Проверяем, что все 4 слова введены верно
print("2 уровень")
two()

def two():
print("2 уровень")
words = []
for i in range(2): # Запрашиваем 2 слова
word = input()
if len(word) == 7:
words.append(word)
else:
print("Неверная длина слова. Попробуйте снова.")
return two() # Начинаем уровень заново
if len(words) == 2: # Проверяем, что все 2 слова введены верно
print("3 уровень")
three()

def three():
print("3 уровень")
attempts = 2
while attempts > 0:
sentence = input()
words = sentence.split() # Разделяем предложение на слова
if len(words) == 7: # Проверяем количество слов
print("Победа!")
return # Выходим из функции
else:
attempts -= 1
print("Неверное количество слов. Попробуйте снова.")
print("Увы, это проигрыш!")

print("Игра начинается")
one()
Изменения:

Цикл for: В функциях one() и two() добавлен цикл for для запроса необходимого количества слов (4 на 1 уровне, 2 на 2 уровне).
Проверка длины слов: Внутри цикла проверяется длина каждого введенного слова.
Проверка количества слов: В функции three() разделение предложения на слова производится с помощью sentence.split(). Затем проверяется, что количество слов равно 7.
Дополнительные замечания:

Улучшенная обратная связь: В функции one() и two() выводится сообщение, если введено слово неверной длины.
Повтор уровня: Если игрок вводит слово неверной длины, то вызывается соответствующая функция, чтобы начать уровень заново.
С этими изменениями код игры “Словарик” должен работать корректно!
tzi iziЗнаток (409) 1 неделю назад
Спасибо
Похожие вопросы