Files
itc_projects/python/21.10.25/ex1.py

89 lines
4.5 KiB
Python
Raw Normal View History

2025-10-25 18:42:49 +05:00
# Основная функция.
# для возврата значений ошибок текста и самого вывода баллов
# буду использовать get_coords для создания возврата значений в кортеж
def scrabble(text):
#=====
# Обьявление переменных
#=====
# Словарь, слово: балл
alphabet = {
# English alphabet
'a': 1, 'e': 1, 'i': 1, 'o': 1, 'l': 1, 'n': 1, 's': 1, 't': 1, 'r': 1,
'd': 2, 'g': 2,
'b': 3, 'c': 3, 'm': 3, 'p': 3,
'f': 4, 'h': 4, 'w': 4, 'y': 4,
'k': 5,
'j': 8, 'x': 8,
'q': 10, 'z': 10,
# Russian alphabet
'а': 1, 'в': 1, 'е': 1, 'и': 1, 'н': 1, 'о': 1, 'с': 1, 'т': 1,
'д': 2, 'к': 2, 'л': 2, 'м': 2, 'п': 2, 'у': 2, 'р': 2, # "р" не было, на рандом добавил в 2 баллы.
'б': 3, 'г': 3, 'ё': 3, 'ь': 3, 'я': 3,
'й': 4, 'ы': 4,
'ж': 5, 'з': 5, 'ч': 5, 'ц': 5,
'ш': 8, 'э': 8, 'ю': 9,
'ф': 10, 'щ': 10, 'ъ': 10}
text = text.replace(' ', '') # убираю пробелы
text = text.lower() # делаю все символы низкими
score = 0 # нулевой счетчик баллов
symb_err = [] # инициализация списка для символов не в алфавите
# =====
# Главная логика
# =====
for symbol in text:
if symbol in alphabet:
score += alphabet[symbol]
else:
symb_err.append(symbol)
return score
# Функция мультиплеера
# Внутри встроена одиночная игра
# и интерактив ввиде выхода, выбора игры и ввода игроков
def parral_game(players):
players = players.split() # преобразование в список.
print(len(players))
if len(players) == 1: # Если игрок один то вопрос переходить ли на одиночный режим
print("- У вас один игрок\n- Выбираете режим одиночной?")
print("Yes(1), No(0)")
subm = int(input(":: "))
if subm == 1: # Если да то начинается одиночная игра
onepl_game = input("Введите текст: ")
resopl = scrabble(onepl_game)
print(f"Введенное слово: {onepl_game}, счет: {resopl}")
exit()
if subm == 0: # Если нет то опрашивается имя игроков
subm_name = input("Введите снова имена игроков: ")
subm_name = subm_name.split() # преобразую в список
subm_name = players # называю его как основной входящий аргумент функции
if len(players) > 1: # Мультиплеер
score_list = [] # инициализация игрового списка, индекс игрока == индекс статистики
for rond in range(1,10+1): # создание цикла на раунд
print(f"{rond} round")
for player_index in range(len(players)): # создания цикла на кол-во игроков
print(f"Ход {players[player_index]}")
input_text = input(":: ")
res = scrabble(input_text)
score_list.append(res)
if score_list[player_index] > 0:
score_list[player_index] += res
print(f"Очки :: {score_list[player_index]}")
print("--след--")
score_top = max(score_list) # определение победителя
score_top_index = score_list.index(score_top) # определение имени победителя
print(f"Выйграл {players[score_top_index]}, результат {score_top}")
print(f"Список игроков:")
for num_player in range(len(players)): # создания цикла на вывод списка играющих, не по сортировке
print(f"- {num_player}: {players[num_player]}, {score_list[num_player]}")
else: # Выход из игры
print("!Не веденны игроки, выход.")
exit()
parral_game(input("- Для выхода из программы нажмите энтер без текста\n- Введите кол-во игроков: "))