– компьютер выводит случайный город из списка всех городов
– пользователь пишет название города и нажимает Enter
– программа проверяет существование этого города (что такое город есть в полном списке городов)
– программа проверяет не назывался ли такой город кем-то из игроков
– программа проверяет, что введенный город начинается с той же буквы, на которую заканчивается предыдущий город (не забудьте, существуют буквы с которых не существует названия городов, тогда пользователь вводит город на первую букву предыдущего слова)
при помощи функций
python
import random
# Функция для загрузки списка городов из файла
def load_cities():
with open('cities.txt', 'r', encoding='utf-8') as file:
cities = file.read().split('n')
return cities
# Функция для выбора случайного города
def choose_random_city(cities):
return random.choice(cities)
# Функция для проверки существования города в списке
def check_city_exists(city, cities):
return city in cities
# Функция для проверки повторного ввода города
def check_city_repeat(city, used_cities):
return city in used_cities
# Функция для проверки соответствия первой и последней буквы города
def check_first_last_letter(prev_city, curr_city):
return curr_city[0].lower() == prev_city[-1].lower()
# Основная функция игры
def play_game():
cities = load_cities()
used_cities = []
prev_city = choose_random_city(cities)
print(f"Первый город: {prev_city}")
while True:
user_city = input("Введите название города: ").strip().capitalize()
if not check_city_exists(user_city, cities):
print("Город не найден. Попробуйте еще раз.")
continue
if check_city_repeat(user_city, used_cities):
print("Этот город уже назывался. Выберите другой.")
continue
if not check_first_last_letter(prev_city, user_city):
print("Город не начинается с нужной буквы. Попробуйте другой.")
continue
used_cities.append(user_city)
prev_city = user_city
computer_city = choose_random_city(cities)
print(f"Компьютер назвал город: {computer_city}")
if check_city_repeat(computer_city, used_cities):
print("Компьютер уже называл этот город. Вы выиграли!")
break
if not check_first_last_letter(prev_city, computer_city):
print("Компьютер назвал неправильный город. Вы выиграли!")
break
used_cities.append(computer_city)
prev_city = computer_city
# Точка входа в программу
if __name__ == "__main__":
play_game()
В данном коде используются функции для выполнения различных задач. Есть функция для загрузки списка городов, выбора случайного города, проверки существования города, проверки повторного ввода и проверки соответствия букв. В конце программы вызывается функция `play_game()`, которая запускает основной игровой процесс.
Пожалуйста, уточните, если требуется дополнительное объяснение или изменения в коде.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет