python面向对象人机猜拳游戏
时间: 2023-06-30 10:24:40 浏览: 198
用面向对象思想实现人机猜拳游戏。
好的,我可以给你一个简单的 Python 面向对象的人机猜拳游戏的代码示例:
```python
import random
class Player:
def __init__(self, name):
self.name = name
self.score = 0
self.choice = None
def choose(self):
self.choice = input("请出拳(剪刀/石头/布):")
def random_choose(self):
self.choice = random.choice(["剪刀", "石头", "布"])
class Game:
def __init__(self, player):
self.player = player
self.computer = Player("电脑")
def play(self):
print("游戏开始!")
while True:
self.player.choose()
self.computer.random_choose()
print(f"{self.player.name} 出了 {self.player.choice},{self.computer.name} 出了 {self.computer.choice}")
if self.player.choice == self.computer.choice:
print("平局!")
elif (self.player.choice == "剪刀" and self.computer.choice == "布") or \
(self.player.choice == "石头" and self.computer.choice == "剪刀") or \
(self.player.choice == "布" and self.computer.choice == "石头"):
print(f"{self.player.name} 获胜!")
self.player.score += 1
else:
print(f"{self.computer.name} 获胜!")
self.computer.score += 1
print(f"当前得分:{self.player.name} {self.player.score}:{self.computer.score} {self.computer.name}")
if self.player.score >= 3 or self.computer.score >= 3:
break
if self.player.score > self.computer.score:
print(f"{self.player.name} 获胜!")
else:
print(f"{self.computer.name} 获胜!")
if __name__ == "__main__":
name = input("请输入你的名字:")
player = Player(name)
game = Game(player)
game.play()
```
这个程序中定义了两个类:`Player` 和 `Game`,其中 `Player` 表示玩家,`Game` 表示游戏。`Player` 类中包括了玩家的名字、得分和出拳的方法,`Game` 类中包括了玩家和电脑的实例以及游戏的方法。在程序运行时,会首先让玩家输入名字,然后进入游戏。在游戏中,玩家和电脑每次都会出一个随机的拳,然后判断胜负并更新得分,直到某一方得分达到 3 分为止。最后输出胜者的名字。
阅读全文