python类与对象小练习2

#人和机器猜拳游戏
#选择角色1 曹操 2张飞 3 刘备
#角色猜拳1剪刀 2石头 3布 随便输入一个字符随机产生一个1-3的数字
#电脑出拳 随机产生1个1-3的数字,提示电脑出拳结果,本局对战结果...赢...输,是否继续?y/n
#输出结果 角色赢几局 电脑赢几局,平局几次 游戏结束
import random
#写法------2

class ren():
    nam=""
    def __init__(self,name):  #name参数=(zidian[inp])
        self.nam=name         #创建nam属性
    def caiquan(self):             #ren方法
       return random.randint(1,3)   #返回生成随机数


class zongju():
    jieguo1=0    #创建3个类属性
    jieguo2=0
    jieguo3=0

    def  __init__(self):                               #自动运行方法
        zidian1={1:"剪刀",2:"石头",3:"布"}
        wanjia=self.fff()                          #调用对象fff方法 创建一个ren类对象
        diannao = ren("电脑")                      #创建一个ren类对象
        while 1 :

                input("请输入任意健进行猜拳------")
                wan=wanjia.caiquan()         #创建变量调用对象的caiquan方法
                dian=diannao.caiquan()        #...调用随机方法
                if wan==1 and dian==2 or wan==2 and dian==3 or wan==3 and dian==1:
                    print("电脑胜\n{0}---------{1}\n电脑---------{2}:"\
                          .format(wanjia.nam,zidian1[wan],zidian1[dian]))    #用健去取值
                    self.jieguo1+=1                                           #对象属性值
                elif  wan==dian :
                    print("双方平局\n{0}---------{1}\n电脑---------{2}:"\
                          .format(wanjia.nam,zidian1[wan],zidian1[dian]))
                    self.jieguo2+=1
                else:
                    print("{0}胜\n{0}---------{1}\n电脑---------{2}:"\
                          .format(wanjia.nam,zidian1[wan],zidian1[dian]))
                    self.jieguo3+=1
                if input("是否继续? yes任意键---n退出")=="n":

                    break
        print("----------------玩家vs电脑--------------\n比赛总结果为:\n电脑胜-----{0}\n玩家胜-----{1}"
              "\n平局为-----{2}".format(self.jieguo1,self.jieguo3,self.jieguo2))
        if self.jieguo1>self.jieguo3:
            print("总比分为----电脑胜!")
        elif self.jieguo1<self.jieguo3:
            print("总比分为----玩家胜!")
        else:
            print("总比分为----双方平局!")
    def  fff(self):
        zidian = {1: "曹操", 2: "张飞", 3: "刘备"}
        print("--------------人机猜拳游戏-----------------")

        while 1:
            inp=input("请选择角色\n1: 曹操 2: 张飞 3: 刘备")
            if inp.isdigit():
                inp=int(inp)
                if inp in zidian:
                    mingzi=ren(zidian[inp]) #参数给了类中初始化方法           #创建一个ren类对象
                    print("您选择的角色是:",mingzi.nam)   #输出对象属性
                    return mingzi                            #返回对象
                else:
                    print("人物选择错误!请从新选择")

            else:
                print("输入有误请从新输入")

zongju() # 自动创建zongju类对象  执行对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值