Python:在精灵宝可梦游戏中创建小火龙角色,对给出的个属性进行迭代化和私有化

1.训练要点
(1)掌握游戏角色的数据属性的设置,以及相应类方法的创建。
(2)掌握类和对象的创建,以及对象属性的私有化方法。
(3)掌握迭代函数的使用,让角色在升级时提升各个属性。
2.需求说明
游戏角色的数据属性:名字(name)、性别( gender)、等级( level).能力( status、HP、攻击,防御,特攻,特防、速度、属性(type)。

在能力中,除了HP为level*2+10之外,其他能力均为level+5。
类方法有getName雨数(获取角色的名字,返回类型:str )、getGender 丽数(获取角色的性别,返回类型!:str )、getStatus函数(返回角色的能力,返回类型:list )、

getType函数(返回角色的属性)。
迭代升级变化: level_ up 函数,每升- -级,HP 增加2点,其他属性增加1点。
迭代函数:_ _iter_ 函数, 输出“名字属性性别等级能力”。
逐一访问属性: next 函数,当迭代到最后-一个属性时,返回结果。
3.实训思路及步骤
(1 )创建类Charmander, 设置各个属性。
(2)定义类的方法返回属性值。
(3)根据等级进行迭代,改变相应的属性值。
(4)调用类Charmander,创建对象并命名为pokemonl,访问对象属性,调用iter函数,
输出结果。
____________________________________________________________________________

class Charmander:
    def __init__(self,name,gender,level,type):
        self.name=name
        self.gender=gender
        self.level=level
        self.HP=level*2+10#HP
        self.status=level+5#status
        self.g=level+5#攻击
        self.f = level + 5#防御
        self.t1 = level + 5#特攻
        self.t2=level+5#特防
        self.s=level+5#速度
        self.type=type
        self.N=[self.HP,self.status,self.g,self.f,self.t1,self.t2,self.s]
        self.index=-1
    def getName(self):
        return self.name
    def getGender(self):
        return self.gender
    def getType(self):
        return self.type
    def getstatus(self):
        return self.status
    def level_up(self):
        self.level+=1
        self.HP+=2
        self.status+=1
        self.g+=1
        self.f+=1
        self.t1+=1
        self.t2+=1
        self.s+=1
        self.N=[self.HP,self.status,self.g,self.f,self.t1,self.t2,self.s]
        return self.N
    def __iter__(self):
        print('名字:',self.getName(),end='')
        print('性别:',self.getGender(),end='')
        print('属性:',self.getType(),end='')
        print('等级:',self.level,end='')
        print('能力:',self.N,end='')
        return self
    def next(self):
        if self.index==len(self.N)-1:
            raise StopIteration
        self.index+=1
        self.level_up()
pokemonl = Charmander('小火龙','男',1,'属性')
print('名字:',pokemonl.getName())
print('性别:',pokemonl.getGender())
print('等级:',pokemonl.level)
print('属性:',pokemonl.getType())
print('能力:',pokemonl.N)

MAD(Move-Avoidance-Detection)是一种基于地图的游戏辅助工具,可以帮助玩家自动移动、避开障碍物、检测精灵并自动捕捉。下面是一个简单的 MAD Python 实现: ```python import requests import json import time # 设置 API 地址和密钥 api_url = 'https://your-api-url.com/rpc' api_key = 'your-api-key' # 设置起点和终点坐标 start_lat = 40.7127 start_lon = -74.0059 end_lat = 40.7589 end_lon = -73.9851 # 设置移动速度和步长 speed = 10 # 单位:千米/小时 step = 0.001 # 单位:经纬度 # 计算移动距离和时间 distance = ((end_lat - start_lat)**2 + (end_lon - start_lon)**2)**0.5 time_in_sec = distance / (speed / 3.6) # 计算移动方向和步数 direction = (end_lat - start_lat) / distance, (end_lon - start_lon) / distance steps = int(distance / step) # 移动并检测 for i in range(steps): # 计算新坐标 lat, lon = start_lat + i * step * direction[0], start_lon + i * step * direction[1] # 发送请求 payload = {"location": {"latitude": lat, "longitude": lon}} headers = {"Content-Type": "application/json", "X-Access-Token": api_key} response = requests.post(api_url, data=json.dumps(payload), headers=headers) # 解析响应 data = json.loads(response.text) if data['responses'] and 'GET_MAP_OBJECTS' in data['responses'][0]: map_objects = data['responses'][0]['GET_MAP_OBJECTS'] for map_cell in map_objects['map_cells']: for wild_pokemon in map_cell['wild_pokemons']: # 捕捉精灵 catch_pokemon(wild_pokemon) time.sleep(1) # 等待 1 秒后继续移动 for catchable_pokemon in map_cell['catchable_pokemons']: # 捕捉精灵 catch_pokemon(catchable_pokemon) time.sleep(1) # 等待 1 秒后继续移动 for nearby_pokemon in map_cell['nearby_pokemons']: # 检测附近的精灵 detect_pokemon(nearby_pokemon) time.sleep(1) # 等待 1 秒后继续移动 # 等待一段时间后再次移动 time.sleep(time_in_sec / steps) ``` 这段代码,我们首先设置了 API 地址和密钥,以及起点和终点的坐标。然后计算了移动距离、时间、方向和步数。在移动过程,我们向 API 发送请求,获取当前位置的地图信息,并检测是否有精灵出现或附近有精灵。如果有,就进行捕捉或检测操作。最后,我们等待一段时间后再次移动,直到到达终点为止。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C.果栗子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值