码迷,mamicode.com
首页 > 其他好文 > 详细

第二十二天

时间:2020-03-10 01:10:46      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:攻击   学生   mon   函数   地址   rand   自动调用   过程   while   

面向对象编程

先来定义楔子 用来描述一类事物

class Person:  #类名
    def __init__(self):
        # 必须叫 __init__ 不能改变 所有的在一个具体的人物
        # 出现之后拥有的属性
        print("-"*20)

        self.name='alex'
        self.sex="不详"
        self.job="搓澡工"
        self.level=0
        self.hp=250
        self.weapon="搓澡巾"
        self.ad=1
        print("*"*20)


# Person()  类名加括号-->执行
# 类名() 自动调用勒种的__init__方法
alex=Person()
xiaobai=Person()

print(alex,alex.__dict__)
# <__main__.Person object at 0x00B75DB0>   实例化过程
# 执行之后 self 自动传给 alex

类和对象的关系?

是一个大范围, 是一个模子,它约束了事物有那些属性,但是不能约束具体的值

对象

是一个具体内容,是模子的产物,它遵循了类的约束,同事给属性赋予具体的值

Person 是一个类, alex xiaobai 都是这个类的对象

alex=Person("alex")

给类传参数,自动传给self 这是约定

模板

例子

class Person:  #类名
    def __init__(self,name,sex,job,level,hp,weapon,ad):
        # 必须叫 __init__ 不能改变 所有的在一个具体的人物
        # 出现之后拥有的属性
        print("-"*20)

        self.name=name
        self.sex=sex
        self.job=job
        self.level=level
        self.hp=hp
        self.weapon=weapon
        self.ad=ad
        print("*"*20)


xiaowu=Person('xiaowu','女','学生','0','100','嘴',1)


xiaoding=Person('xiaoding','男','学生','0','100','嘴',1)

print(xiaowu,xiaowu.__dict__)

print(xiaoding,xiaoding.__dict__)


#每一个类名都有自己的空间

属性的修改

xiaoding.name="大丁"
print(xiaoding.name)

属性的增加

本来没有这个 属性  新增
xiaoding.money=200000
print(xiaoding.money)

属性删除

del xiaoding.money
print(xiaoding.__dict__)

修改字典//列表 中的某个值, 或者是一个对象的属性,都不会影响的这个对象 \字典?列表所在的内存地址

实例化经历的过程

  1. 类名() 之后第一件事, 开辟一块内存空间
  2. 调用_ _init__ 把空间的内存地址作为self 传递到函数内部
  3. 所有的这一个对象 需要使用的属性都需要和self 关联起来
  4. 执行完init 中的逻辑之后 self 变量会自动的被返回到调用处
# 

Dog类 ,名字 种类 血量 攻击力

class Dog():
    def __init__(self,n,p,x,g):
        self.name=n
        self.kind=p
        self.hp=x
        self.ad=g

xiaobai = Dog('小白',"和小屋一类",100,0)
print(xiaobai.__dict__)
print(xiaobai.name)
print(xiaobai.name)

实例化两个用户 账号 密码是他的两个类

class yong():
    def __init__(self,name,password):
        self.name=name
        self.password=password
xiaoming=yong("1111","password1")
xiaohong=yong("2222","password2")

print(xiaoming.__dict__)
print(xiaohong.__dict__)

小丁和小屋的游戏

class Person:  #类名
    def __init__(self,name,sex,job,hp,weapon,ad):
#         # 必须叫 __init__ 不能改变 所有的在一个具体的人物
#         # 出现之后拥有的属性


        self.name=name
        self.sex=sex
        self.job=job
        self.level=0
        self.hp=hp
        self.weapon=weapon
        self.ad=ad

    def 打(self,dog):
            self.ad=5

            if dog.hp<=self.ad:
                    dog.hp=0

            else:
                    dog.hp -= self.ad


            print("%s给%s打了一顿,%s掉了%s点血,%s当前血量%s" %(self.name,dog.dog_name,dog.dog_name,self.ad,dog.dog_name,dog.hp))
    def 摸屁股(self,dog):
            self.ad=10
            if dog.hp<=self.ad:
                    dog.hp=0

            else:
                    dog.hp -= self.ad


            print("%s摸了一把%s的屁股,%s掉了%s点血,%s当前血量%s" %(self.name,dog.dog_name,dog.dog_name,self.ad,dog.dog_name,dog.hp))

    def 种草莓(self, dog):
            self.ad = 20
            if dog.hp <= self.ad:
                    dog.hp = 0

            else:
                    dog.hp -= self.ad

            print("%s给%s的脸上中了一个草莓,%s掉了%s点血,%s当前血量%s" % (
            self.name, dog.dog_name, dog.dog_name, self.ad, dog.dog_name, dog.hp))

    def 必杀技(self, dog):
            self.ad = 10000
            if dog.hp <= self.ad:
                    dog.hp = 0

            else:
                    dog.hp -= self.ad

            print("%s把%s亲到窒息,%s掉了%s点血,%s当前血量%s" % (
                    self.name, dog.dog_name, dog.dog_name, self.ad, dog.dog_name, dog.hp))
class Dog():  #类名
    def __init__(self,name,kind,hp,ad):
        self.dog_name=name
        self.kind=kind
        self.hp=hp
        self.ad=ad
    #
    def 咬(self, person):
            self.ad=5
            if person.hp<=self.ad:
                    person.hp=0
            else:
                    person.hp -= self.ad
            print("%s咬了一口%s的小丁丁,%s掉了%s点血,%s当前血量%s" %(self.dog_name, person.name, person.name,self.ad,person.name,person.hp))

    def 亲(self, person):
            self.ad = 10
            if person.hp <= self.ad:
                    person.hp = 0
            else:
                    person.hp -= self.ad
            print("%s亲%s了一口小丁丁,%s掉了%s点血,%s当前血量%s" % (
            self.dog_name, person.name, person.name, self.ad, person.name, person.hp))

    def 舔(self, person):
            self.ad = 20
            if person.hp <= self.ad:
                    person.hp = 0
            else:
                    person.hp -= self.ad
            print("%s舔了%s的小脸蛋,%s掉了%s点血,%s当前血量%s" % (
                    self.dog_name, person.name, person.name, self.ad, person.name, person.hp))
小丁=Person("小丁","男","搓澡",100,"搓澡巾",1)
# print(小丁.__dict__)

小屋=Dog("小屋","仙女",100,1)
# print(小屋.__dict__)
l=["摸屁股",'种草莓',"打"]

l1=["咬","亲","舔"]
#
import time
import random
while 1:
        time.sleep(1)
        # c=random.random()
        # if 0.9<c<1:
        #         小丁.必杀技(小屋)
        #
        #
        # else:

        i=random.randint(0,2)

        eval('小丁.'+l[i])(小屋)
        if 小屋.hp==0:
                print("小屋被你征服了了")
                break

        time.sleep(1)

        i=random.randint(0,2)

        eval('小屋.'+l1[i])(小丁)
        if 小丁.hp==0:
                print("小丁被小屋征服了")
                break
                

                
                
#小丁摸了一把小屋的屁股,小屋掉了10点血,小屋当前血量90
# 小屋咬了一口小丁的小丁丁,小丁掉了5点血,小丁当前血量95
# 小丁给小屋的脸上中了一个草莓,小屋掉了20点血,小屋当前血量70
# 小屋舔了小丁的小脸蛋,小丁掉了20点血,小丁当前血量75
# 小丁给小屋的脸上中了一个草莓,小屋掉了20点血,小屋当前血量50
# 小屋亲小丁了一口小丁丁,小丁掉了10点血,小丁当前血量65
# 小丁给小屋打了一顿,小屋掉了5点血,小屋当前血量45
# 小屋咬了一口小丁的小丁丁,小丁掉了5点血,小丁当前血量60
# 小丁给小屋打了一顿,小屋掉了5点血,小屋当前血量40
# 小屋咬了一口小丁的小丁丁,小丁掉了5点血,小丁当前血量55
# 小丁给小屋打了一顿,小屋掉了5点血,小屋当前血量35
# 小屋亲小丁了一口小丁丁,小丁掉了10点血,小丁当前血量45
# 小丁给小屋的脸上中了一个草莓,小屋掉了20点血,小屋当前血量15
# 小屋咬了一口小丁的小丁丁,小丁掉了5点血,小丁当前血量40
# 小丁给小屋打了一顿,小屋掉了5点血,小屋当前血量10
# 小屋舔了小丁的小脸蛋,小丁掉了20点血,小丁当前血量20
# 小丁给小屋打了一顿,小屋掉了5点血,小屋当前血量5
# 小屋咬了一口小丁的小丁丁,小丁掉了5点血,小丁当前血量15
# 小丁摸了一把小屋的屁股,小屋掉了10点血,小屋当前血量0
# 小屋被你征服了了

第二十二天

标签:攻击   学生   mon   函数   地址   rand   自动调用   过程   while   

原文地址:https://www.cnblogs.com/xueba/p/12452661.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!