• python类练习


    #人和机器猜拳游戏
    #选择角色1 曹操 2张飞 3 刘备
    #角色猜拳1剪刀 2石头 3布 玩家输入一个1-3的数字
    #电脑出拳 随机产生1个1-3的数字,提示电脑出拳结果,本局对战结果...赢...输,是否继续?y/n
    #输出结果 角色赢几局 电脑赢几局,平局几次 游戏结束
    import random
    class RolePcGame:
        roles = ['曹操', '张飞', '刘备']
        fist_list = ['剪刀', '石头', '']
    
        def get_role_name(self): # 选角
            role = int(input("请选择角色[曹操:1,张飞:2,刘备:3]:"))
            while role not in (1,2,3):
                role = int(input("你选择的角色不存在,请重新选择[曹操:1,张飞:2,刘备:3]:"))
                break
            return self.roles[role-1]  # 返回角色名称
    
        def get_role_fist(self): # 角色出拳
            fist_num = int(input( "请角色出拳[剪刀:1,石头:2, 布:3]:"))
            while fist_num not in (1, 2, 3):
                fist_num = int(input("输入有误,请重新出拳[剪刀:1,石头:2,布:3]:"))
                break
            return fist_num
    
        def get_pc_fist(self): # 电脑出拳
            fist_num = random.randint(1,3)
            return fist_num
    
    
        def pve(self):  # 人机对战计算
            win_role = 0  # 统计角色赢的局数
            win_pc = 0  # 统计电脑赢的局数
            draw = 0  # 统计平局数
    
            # 获得角色
            role_name = self.get_role_name()  # 获取角色名称,get_role_name()返回的就是角色名称
            print("恭喜你,选角成功,你选的角色是:",role_name)
            while True:
                print(role_name + "请出拳:")
                role_fist = self.get_role_fist() #角色出拳
                # print("电脑请出拳")
                pc_fist = self.get_pc_fist() # 电脑出拳
                print("{0}角色出的拳是:{1},电脑出的拳是:{2}".format(role_name,self.fist_list[role_fist-1],self.fist_list[pc_fist-1]))
                if role_fist - pc_fist in (1,-2): #角色胜出
                    print(role_name + "赢了")
                    win_role +=1
                elif role_fist - pc_fist == 0:  #平局
                    print("人机平局")
                    draw +=1
                elif role_fist - pc_fist in(-1,2): #电脑胜出
                    print("pc赢了")
                    win_pc +=1
    
                choose = input("是否继续游戏?按y继续,按n退出")
                if choose == 'n':
                    print("退出游戏")
                    break
            print("{0}一共赢了{1}局,电脑赢了{2}局,平{3}局".format(role_name,win_role, win_pc, draw))
    
    if __name__ == '__main__':
        RolePcGame().pve()
  • 相关阅读:
    利用fstream进行文件拷贝测试
    gcc下inline的一个问题
    链接选项-rpath的一个问题记录
    OpenCV学习代码记录——人脸检测
    OpenCV学习代码记录—— Snake轮廓
    OpenCV学习代码记录——Hough线段检测
    OpenCV学习代码记录——轮廓(contour)检测
    OpenCV学习代码记录——canny边缘检测
    基于Android平台的会议室管理系统具体设计说明书
    关系型数据库工作原理-事务管理(一)(翻译自Coding-Geek文章)
  • 原文地址:https://www.cnblogs.com/jialeliu/p/14083136.html
Copyright © 2020-2023  润新知