Попрацюйте над грою «Камінь, ножиці, папір», яка була
розроблена на уроці, виділивши переможця серії ігор (того,
хто першим набере три бали).
Тоді ж запитайте у гравця про його бажання зіграти ще раз.
За ствердної відповіді серія ігор має початися заново.
Завдання 2
Покращте гру, розроблену на уроці до версії «Камінь, ножиці, папір, ящірка, Спок Дам 40 балів зробіть будь ласка правильно
Ответы
Задание 1.
import random
# Створення словника, де ключі - це можливі варіанти вибору, а значення - що перемагає над чим
winning_moves = {"rock": "scissors", "scissors": "paper", "paper": "rock"}
# Початок гри
player_score = 0
computer_score = 0
while player_score < 3 and computer_score < 3:
print("Enter your move: rock, paper, or scissors.")
player_move = input()
# Перевірка введеного гравцем варіанту
while player_move not in winning_moves.keys():
print("Invalid move. Enter your move again: rock, paper, or scissors.")
player_move = input()
# Випадковий вибір комп'ютером
computer_move = random.choice(list(winning_moves.keys()))
# Порівняння виборів
if player_move == computer_move:
print("Tie!")
elif winning_moves[player_move] == computer_move:
print("You win!")
player_score += 1
else:
print("Computer wins!")
computer_score += 1
# Виведення результатів після кожного раунду
print("Player score:", player_score)
print("Computer score:", computer_score)
# Визначення переможця
if player_score > computer_score:
print("You win the game!")
else:
print("Computer wins the game!")
# Питання про бажання продовжити гру
print("Do you want to play again? (yes or no)")
play_again = input()
if play_again == "yes":
# Початок гри заново
player_score = 0
computer_score = 0
else:
print("Thanks for playing!")
У цьому коді комп'ютер випадковим чином вибирає свій варіант, а потім порівнює його з вибором гравця, щоб визначити переможця. Після кожного раунду виводяться результати і підраховуються бали. Гра продовжується, доки один з гравців не набере три бали.
Після закінчення гри гравцю пропонується зіграти ще раз. Якщо він відповідає "yes", то гра починається заново, інакше виводиться повідомлення "Thanks for playing!".
Задание 2.
import random
# Створення словника, де ключі - це можливі варіанти вибору, а значення - що перемагає над чим
winning_moves = {"rock": ["scissors", "lizard"],
"scissors": ["paper", "lizard"],
"paper": ["rock", "Spock"],
"lizard": ["Spock", "paper"],
"Spock": ["rock", "scissors"]}
# Початок гри
player_score = 0
computer_score = 0
while player_score < 3 and computer_score < 3:
print("Enter your move: rock, paper, scissors, lizard, or Spock.")
player_move = input()
# Перевірка введеного гравцем варіанту
while player_move not in winning_moves.keys():
print("Invalid move. Enter your move again: rock, paper, scissors, lizard, or Spock.")
player_move = input()
# Випадковий вибір комп'ютером
computer_move = random.choice(list(winning_moves.keys()))
# Порівняння виборів
if player_move == computer_move:
print("Tie!")
elif computer_move in winning_moves[player_move]:
print("You win!")
player_score += 1
else:
print("Computer wins!")
computer_score += 1
# Виведення результатів після кожного раунду
print("Player score:", player_score)
print("Computer score:", computer_score)
# Визначення переможця
if player_score > computer_score:
print("You win the game!")
else:
print("Computer wins the game!")
# Питання про бажання продовжити гру
print("Do you want to play again? (yes or no)")
play_again = input()
if play_again == "yes":
# Початок гри заново
player_score = 0
computer_score = 0
else:
print("Thanks for playing!")
Я додав до словника winning_moves нові ключі та значення, що відповідають правилам перемоги для всіх варіантів вибору. Далі, в циклі гри я замінив перевірку if winning_moves[player_move] == computer_move на перевірку if computer_move in winning_moves[player_move], щоб врахувати всі можливі випадки перемоги.