Форум сайта python.su
Всем доброго времени суток. Месяц назад начал заниматься программированием, начал с Python3. Написал вот такую игру, для практики. Хотел узнать мнения знатоков питона, можно ли упростить код, сделать покороче, или же сделать оформление лучше, чтобы было читабельнее и т.п.
import random import time name = input('Привет, как тебя зовут? \n').capitalize() time.sleep(1) print('Что ж, ', name, ', я загадываю число от 1 до 20. \n', sep='') time.sleep(1) scoreNpc = 0 scoreGamer = 0 def funct1(score1, score2): numberRandom = random.randint(1, 20) try: for i in range(1, 5): number = input('Попробуй угадать: \n') if number == 'x': break number = int(number) time.sleep(1) if number == numberRandom: score2 += 1 print('Отлично, ', name, '! Ты справился за количество попыток: ', str(i), sep='') print('Хочешь еще попробовать? (y)') quest1 = input() if quest1 == 'y': print('Пошли по новой, ', name, ', я загадал новое число от 1 до 20.\n', sep='') funct1(score1, score2) else: print('Счёт: ', name, ': ', score2, ' Машинка: ', score1, sep='') if score1 > score2: print('Ну что же, ', name, ', можешь меня поздравить, я выиграл =)', sep='') if score1 < score2: print('Ну что же, ', name, ', поздравляю тебя с победой, ты выиграл =)', sep='') if score1 == score2: print('Ну что же, ', name, ', ничья..! =)', sep='') break break elif number > numberRandom: print("Твое число слишком большое.\n") elif number < numberRandom: print("Твое число слишком маленькое.\n") if i == 4 and number != numberRandom: score1 += 1 print('Эх, ', name, ' ты не справился за 4 попытки...', ' я выбирал число ', numberRandom, sep='') print('Хочешь еще раз попробовать ? (y)') quest2 = str(input('')) if quest2 == 'y': print('Пошли по новой, ', name, ', я загадал новое число от 1 до 20.\n', sep='') funct1(score1, score2) else: print('Счёт: ', name, ': ', score2, ' Машинка: ', score1, sep='') if score1 > score2: print('Ну что же, ', name, ', можешь меня поздравить, я выиграл =)', sep='') if score1 < score2: print('Ну что же, ', name, ', поздравляю тебя с победой, ты выиграл =)', sep='') if score1 == score2: print('Ну что же, ', name, ', ничья..! =)', sep='') break break except ValueError: print('Нужно ввести целое число!') print('Пошли по новой, ', name, ', я загадал новое число от 1 до 20.\n', sep='') funct1(score1, score2) funct1(scoreNpc, scoreGamer) print('Спасибо за игру, ', name, ', скорее возвращайся, поиграем!', sep='')
Отредактировано far4ikg (Ноя. 29, 2021 10:58:37)
Офлайн
подсказали на другом форуме, переделал:
import random import time player_name = input('Привет, как тебя зовут? \n').capitalize() print(f'Что ж, {player_name}, я загадываю число от 1 до 20.') score = {'ИИ': 0, player_name: 0} time.sleep(2) def main_function(score_npc, score_player): random_number = random.randint(1, 20) for cycle in range(1, 5): player_number = input('Попробуй угадать: ') time.sleep(random.randint(1, 3)) if player_number == 'x': break try: player_number = int(player_number) except ValueError: print('Нужно вводить целое число!') break if player_number == random_number: score_player += 1 print(f'Отлично, {player_name}! Ты справился за количество попыток: {str(cycle)}') break elif cycle == 4 and player_number != random_number: score_npc += 1 print(f'Эх, {player_name} ты не справился за 4 попытки... я выбирал число {random_number}') break elif player_number > random_number: print("Твое число слишком большое.\n") elif player_number < random_number: print("Твое число слишком маленькое.\n") def second_function(): quest = input('Хочешь еще попробовать? y/n ') if quest == 'y': print(f'Пошли по новой, {player_name}, я загадал новое число от 1 до 20.\n') main_function(score_npc, score_player) elif quest == 'n': print(f'Счёт: {player_name}: {score_player}, ИИ: {score_npc}') if score_npc > score_player: print(f'Ну что же, {player_name}, можешь меня поздравить, я выиграл =)') if score_npc < score_player: print(f'Ну что же, {player_name}, поздравляю тебя с победой, ты выиграл =)') if score_npc == score_player: print(f'Ну что же, {player_name}, ничья..! =)') else: second_function() second_function() main_function(score['ИИ'], score[player_name]) print(f'Спасибо за игру, {player_name}, скорее возвращайся, поиграем!')
Отредактировано far4ikg (Ноя. 30, 2021 07:58:45)
Офлайн