python类与对象小练习

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

class ren():
    def __init__(self):
        print("-----------人机大战-------------\n")
        name=""
        while 1:
            js=input("输入要选择的角色:\n\n1---曹操  2---张飞  3---关羽")
            if js.isdigit():
                js=int(js)
                if js==1:
                    print("玩家角色为---曹操")
                    self.name="曹操"
                    break
                elif js ==2:
                    print("玩家角色为---张飞")
                    self.name="张飞"
                    break
                elif js==3:
                    print("玩家角色为---关羽")
                    self.name ="关羽"
                    break
                else:
                    print("角色选择错误,请从新选择----\n")

            else:
                print("输入角色有误!请从新输入----\n")

    def caiquan(self):
        while 1:
            quan = input("请输入要出拳的选项:\n1----石头  2----剪刀  3----布")
            if quan.isdigit():
                quan = int(quan)
                if quan == 1:
                    print("玩家选择出----石头", )
                    break
                elif quan == 2:
                    print("玩家选择出----剪刀")
                    break
                elif quan == 3:
                    print("玩家选择出---- 布")
                    break
                else:
                    print("选择错误!请从新选择!\n")
            else:
                print("输入数字不正确!请重新输入------\n")
        return quan

class dian():
    diannao="电脑"
    def suiji(self):
        suijishu=random.randint(1,3)
        if suijishu==1:
            print("电脑选择出----石头")
        elif suijishu==2:
            print("电脑选择出----剪刀")
        else:
            print("电脑选择出---- 布")

        return suijishu


class guocheng ():
    chuquan1 = 0
    chuquan2 = 0
    chuquan3 = 0
    def __init__(self):
        renduixiang=ren()      #ren类 对象
        diannaoduixiang=dian() #dian类 对象
        while 1:
            caiquanjieguo=renduixiang.caiquan()
            diannaojieguo=diannaoduixiang.suiji()
            if caiquanjieguo==1 and diannaojieguo==2 or \
               caiquanjieguo==2 and diannaojieguo==3 or \
               caiquanjieguo==3 and diannaojieguo==1:
                print("----------玩家赢!")
                self.chuquan1+=1
            elif caiquanjieguo==diannaojieguo:
                print("----------平局!")
                self.chuquan3+=1
            else:
                print("----------电脑赢!")
                self.chuquan2+=1
            if input("是否继续游戏:yes or no ?\n任意键------n\n").lower()=="n":
                break
        if self.chuquan1>self.chuquan2:
            wanjiaying="玩家胜利!"
        elif self.chuquan1==self.chuquan2:
            wanjiaying="平---局"
        else:
            wanjiaying ="电脑胜利"
        print("-----------------人机大战----------------\n游戏结束 :\n"
              "玩家共赢{0}次---电脑共赢{1}次---平局次数{2}次\n————总结果为 : {3}"\
              .format(self.chuquan1,self.chuquan2,self.chuquan3,wanjiaying))



duixiang1=guocheng() #生成的对象 未保存到变量中

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值