python的类/方法引用---人机石头剪刀布游戏

这是一个使用Python实现的石头剪刀布游戏。游戏包括玩家和电脑的出拳,以及根据出拳结果判断胜负的逻辑。玩家可以输入1代表剪刀,2代表石头,3代表布,电脑则随机出拳。游戏会进行多次,直到所有回合结束,最后显示玩家和电脑的得分情况。
摘要由CSDN通过智能技术生成
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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值