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


    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()
    
  • 相关阅读:
    代码随想录 动态规划Ⅶ
    学习笔记-ThinkPHP5任意方法调用RCE
    【学习笔记】HQL
    java项目进度跟踪管理系统
    Android Framework 常见解决方案(21)默认开启adb
    家庭WIFI路由器、无线网卡购买指南
    第五篇:强化学习基础之马尔科夫决策过程
    高压放大器基于声纹影法的声可视化实验的应用
    字节小程序交易组件使用指南
    三模块七电平级联H桥整流器电压平衡控制策略Simulink仿真
  • 原文地址:https://blog.csdn.net/liuaoxiang/article/details/126416229