面向对象之角色猜拳
时间: 2023-12-21 07:05:36 浏览: 25
好的,接下来我来讲一下面向对象的角色猜拳的实现。
首先,我们需要定义一个角色类Role,表示游戏中的角色,角色有自己的名字和分数:
```python
class Role:
def __init__(self, name):
self.name = name
self.score = 0
self.choice = None
```
接下来,我们需要定义一个游戏类Game,表示游戏的逻辑,游戏中有两个角色:
```python
class Game:
def __init__(self, role1, role2):
self.role1 = role1
self.role2 = role2
def play(self):
while True:
for role in [self.role1, self.role2]:
print(f"{role.name}, 请出拳:(1. 石头 2. 剪刀 3. 布)")
role.choice = int(input())
print(f"{role.name}出了{role.choice}")
if self.role1.choice == self.role2.choice:
print("平局!")
elif (self.role1.choice == 1 and self.role2.choice == 2) or \
(self.role1.choice == 2 and self.role2.choice == 3) or \
(self.role1.choice == 3 and self.role2.choice == 1):
print(f"{self.role1.name}获胜!")
self.role1.score += 1
else:
print(f"{self.role2.name}获胜!")
self.role2.score += 1
print(f"当前得分:{self.role1.name}:{self.role1.score},{self.role2.name}:{self.role2.score}")
if self.role1.score == 3 or self.role2.score == 3:
print("游戏结束!")
return
```
在游戏类Game中定义了一个play方法,表示游戏的逻辑。在这个方法中,我们使用了一个while循环,不断让两个角色出拳,判断胜负,并更新得分。当其中一个角色得分达到3分时,游戏结束。
最后,我们可以在主函数中创建两个角色和一个游戏对象,并开始游戏:
```python
if __name__ == '__main__':
role1 = Role("角色1")
role2 = Role("角色2")
game = Game(role1, role2)
game.play()
```
以上就是一个简单的面向对象的角色猜拳实现。