• 基于面向对象设计一个游戏


    1.什么是对象?什么是类?

    对象:是特征与技能的结合体

    类:是一系列对象相同的特征与技能的结合体

    2.绑定方法的有什么特点

    由对象来调用称之为对象的绑定方法,不同对象调用该绑定方法,则会将不停的对象传入该绑定方法中。

    对象的绑定方法是由对象来调用的,特殊之处就是把对象当作第一个参数传入该方法中。

    3.基于面向对象设计一个对战游戏

    # 仿制英雄联盟英雄角色
    
    # 锐雯
    class Riven:
        camp='Noxus'
        def __init__(self,username,
                     aggressivity=54,
                     life_value=414,
                     money=1001,
                     armor=3):
            self.username=username
            self.aggressivity=aggressivity
            self.life_value=life_value
            self.money=money
            self.armor=armor
        def attack(self,enemy):
            damage_value=self.aggressivity-enemy.armor
            enemy.life_value-=damage_value
    
    
    # 盖亚
    class Garen:
        camp='Demacia'
        def __init__(self,username,
                     aggressivity=58,
                     life_value=455,
                     money=100,
                     armor=10):
            self.username=username
            self.aggressivity=aggressivity
            self.life_value=life_value
            self.money=money
            self.armor=armor
        def attack(self,enemy):
            damage_value=self.aggressivity-enemy.armor
            enemy.life_value-=damage_value
    
    
    # 武器装备
    class BlackCleaver:
        def __init__(self,price=475,aggrev=9,life_value=100):
            self.price=price
            self.aggrev=aggrev
            self.life_value=life_value
        def update(self,obj):
            obj.money-=self.price
            obj.aggressivity+=self.aggrev
            obj.life_value+=self.life_value
    
    
    
    # 对战
    r1=Riven('锐雯')
    g1=Garen('盖文')
    b1=BlackCleaver()
    
    print(r1.aggressivity,r1.life_value,r1.money)
    
    if r1.money > b1.price:
        r1.b1=b1
        b1.update(r1)
    
    while True:
        r1.attack(g1)
        g1.attack(r1)
        if r1.life_value <= 0:
            print(f'{r1.username}死亡')
            break
    
        if g1.life_value <= 0:
            print(f'{g1.username}死亡')
            break
    
  • 相关阅读:
    JVM(二)JVM内存布局
    JVM(一) OpenJDK1.8源码在Ubuntu16.04下的编译
    阿里面试
    npm run dev/npm run start报错
    vue 项目报错 You may use special comments to disable some warnings.
    ES6模块化
    jQuery中的动画
    jsonp的封装
    ajax中get,post,以及二合一的封装
    小案例之刮奖
  • 原文地址:https://www.cnblogs.com/whkzm/p/11644575.html
Copyright © 2020-2023  润新知