• 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()
    
  • 相关阅读:
    Java—数组相关
    多云管理平台助力企业数字化转型
    MBA形式逻辑四大基本考点
    场景图形管理-多视图多窗口渲染示例(4)
    工具 | Windows 功能猎手 (WFH)
    【Linux】vim工具的使用
    02 统计基本概念
    解决跨域问题
    易拓SAP上新季 | SAP 分析云 2022年第四季度更新 TOP5 新功能速递
    N-丁基吡啶溴BPyBr离子液体|溴化1-辛基-3-甲基咪唑离子液体[C8mim]Br
  • 原文地址:https://blog.csdn.net/liuaoxiang/article/details/126416229