import random
#定义游戏玩家的类
class Players:
def __init__(self):
self.fist=0 #初始化值(方法)
self.score=0 #初始化值(方法)
#玩家出拳
def show_player_fist(self):
self.fist=int(input('玩家出拳(1.剪刀/2.石头/3.布):'))
#电脑出拳
def show_computer_fist(self):
self.fist=random.randint(1,3)
#调用玩家对象和出拳的结果
p1=Players()
#p1.show_player_fist()
#调用电脑对象和出拳的结果
p2=Players()
#p2.show_computer_fist()
#定义游戏过程的类
class Game:
count=5
def __init__(self):
self.p1=Players() #把调用的玩家对象和出拳的结果 重新赋值给游戏过程中玩家的实例对象
self.p2=Players() #把调用的电脑对象和出拳的结果 重新赋值给游戏过程中电脑的实例对象
#单局判断玩家和电脑的出拳顺序规则,判定结果是哪方胜出
'''
玩家胜出: | 玩家胜出
玩家出拳 VS 电脑出拳 | 玩家出拳 VS 电脑出拳
1.剪刀 3.布 | 1.剪刀 2.石头
2.石头 1.剪刀 | 2.石头 3.布
3.布 2.石头 | 3.布 1.剪刀
'''
def result(self):
i=0
j=0
x=0
if self.p1.fist==1 and self.p2.fist==3 \
or self.p1.fist==2 and self.p2.fist==1 \
or self.p1.fist==3 and self.p2.fist==2:
self.p1.score+=10
i=i+1 #统计玩家赢的次数
print(f'玩家胜利{i}次:积分为{self.p1.score}')
elif self.p1.fist==self.p2.fist:
x=x+1 #统计双方平局的次数
print(f'双方玩家平局{x}次')
else:
self.p2.score += 10
j=j+1 #统计电脑平局的次数
print(f'电脑胜利{j}次:积分为{self.p2.score}')
#定义游戏开始出拳
def start_game(self):
while Game.count>0:
self.p1.show_player_fist() #玩家出拳
self.p2.show_computer_fist() #电脑出拳
self.result() #单局出拳结果判断
Game.count-=1
if __name__ == '__main__':
st=Game()
st.start_game()