Для сохранения данных, введенных с помощью Input, в объектах классов, можно создать соответствующие атрибуты в этих классах и присвоить им значения, полученные от пользователя через Input. Например:
```python
class Player:
def __init__(self):
self.choice = None
def make_choice(self):
self.choice = input("Выберите камень, ножницы или бумагу: ")
player1 = Player()
player1.make_choice()
```
Для улучшения кода игры "камень, ножницы, бумага" с использованием ООП и вводом данных от пользователя, можно доработать классы и методы следующим образом:
1. Создать класс Game, в котором будут содержаться методы для проведения игры.
2. Перенести перечисление Variants внутрь класса Game.
3. Добавить методы для проверки правильности ввода от пользователя и определения победителя в класс Game.
4. В методе whoWins сравнивать выборы игроков и определять победителя.
Примерно так может выглядеть улучшенный код:
```python
class Game:
class Variants:
ROCK = "камень"
SCISSORS = "ножницы"
PAPER = "бумага"
@staticmethod
def whoWins(player1, player2):
if player1.choice == player2.choice:
return "Ничья"
elif (player1.choice == Game.Variants.ROCK and player2.choice == Game.Variants.SCISSORS) or \
(player1.choice == Game.Variants.SCISSORS and player2.choice == Game.Variants.PAPER) or \
(player1.choice == Game.Variants.PAPER and player2.choice == Game.Variants.ROCK):
return "Игрок 1 победил"
else:
return "Игрок 2 победил"
class Player:
def __init__(self):
self.choice = None
def make_choice(self):
while True:
self.choice = input("Выберите камень, ножницы или бумагу: ")
if self.choice in [Game.Variants.ROCK, Game.Variants.SCISSORS, Game.Variants.PAPER]:
break
else:
print("Неверный выбор. Попробуйте снова.")
player1 = Player()
player1.make_choice()
player2 = Player()
player2.make_choice()
game = Game()
result = game.whoWins(player1, player2)
print(result)
```
Этот код позволит игрокам делать выбор из трех вариантов и определит победителя в игре "камень, ножницы, бумага". Теперь взаимодействие и обработка данных между классами и методами организованы более удобным и понятным способом.