Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建进化系统 怪物={'Monster 1':{'hp':45,'attack':49,'defence':49,'level':1,'evolution':16}, 怪物2:{'hp':60,'attack':62,'defence':63,'level':1,'evolution':32}, 怪物3:{'hp':80,'attack':82,'defence':83,'level':1,}, 怪物4:{'hp':39,'攻击':52,'防御':43,'等级':1,'进化':16}, 怪物5:{'hp':58,'attack':64,'defence':58,'level':1,'evolution':36}, 怪物6:{'hp':78,'attack':84,'defence':78,'level':1}}_Python_Python 3.x - Fatal编程技术网

Python 创建进化系统 怪物={'Monster 1':{'hp':45,'attack':49,'defence':49,'level':1,'evolution':16}, 怪物2:{'hp':60,'attack':62,'defence':63,'level':1,'evolution':32}, 怪物3:{'hp':80,'attack':82,'defence':83,'level':1,}, 怪物4:{'hp':39,'攻击':52,'防御':43,'等级':1,'进化':16}, 怪物5:{'hp':58,'attack':64,'defence':58,'level':1,'evolution':36}, 怪物6:{'hp':78,'attack':84,'defence':78,'level':1}}

Python 创建进化系统 怪物={'Monster 1':{'hp':45,'attack':49,'defence':49,'level':1,'evolution':16}, 怪物2:{'hp':60,'attack':62,'defence':63,'level':1,'evolution':32}, 怪物3:{'hp':80,'attack':82,'defence':83,'level':1,}, 怪物4:{'hp':39,'攻击':52,'防御':43,'等级':1,'进化':16}, 怪物5:{'hp':58,'attack':64,'defence':58,'level':1,'evolution':36}, 怪物6:{'hp':78,'attack':84,'defence':78,'level':1}},python,python-3.x,Python,Python 3.x,我想要一个系统,让怪物1变为怪物2,然后在“等级”>=“进化”时变为怪物3。 在相同的前提下,分别让怪物4变为怪物5和怪物6 如果可能的话,实现这一目标的最佳方式是什么 monsters = {'Monster 1':{'hp':45, 'attack':49, 'defense':49, 'level':1, 'evolve':16}, 'Monster 2':{'hp':60, 'attack':62, 'defense':63, 'level':1, 'evolve':32},

我想要一个系统,让怪物1变为怪物2,然后在“等级”>=“进化”时变为怪物3。 在相同的前提下,分别让怪物4变为怪物5和怪物6

如果可能的话,实现这一目标的最佳方式是什么

monsters = {'Monster 1':{'hp':45, 'attack':49, 'defense':49, 'level':1, 'evolve':16},
    'Monster 2':{'hp':60, 'attack':62, 'defense':63, 'level':1, 'evolve':32},
    'Monster 3':{'hp':80, 'attack':82, 'defense':83, 'level':1,},
    'Monster 4':{'hp':39, 'attack':52, 'defense':43, 'level':1, 'evolve':16},
    'Monster 5':{'hp': 58, 'attack':64, 'defense':58, 'level':1, 'evolve':36},
    'Monster 6':{'hp':78, 'attack':84, 'defense': 78, 'level':1}}
这是一本嵌套字典。首先,您需要更改级别,然后检查级别是否处于进化点,然后对其进行进化

我在这里看到的问题是,对于这个问题,你需要列表,这样你就可以在这个列表中逐项查看。让我们将其转换为一个列表,将所有花括号转换为方括号,并删除所有字符串和冒号

monsters = [[45, 49, 49, 1, 16],
        [60, 62, 63, 1, 32],
        [80, 82, 83, 1]]
我们如何改变水平和演变?让我们根据你的怪物列表和等级定义一个完成战斗的函数。这使用了无网格ID,如ID 1-3是怪物A进化,4-6是怪物B进化,等等:

def finishbattle(monsterid, ismaxlevel...):
    levelexp=... #What ever you want it to be
    if ismaxlevel == False:
        monsters[monsterid][3] += levelexp #changing the level value
        if monsters[monsterid][3] >= monsters[monsterid][4]: #check level value
            monsterid += 1 #evolved into next id
如果你什么都不懂,请问我

class Monster():                                                                                                            
    mon_dict = {'A':                                                                                                                    
               [{'Name':'Monster 1','hp':45, 'attack':49, 'defense':49, 'level':1, 'evolve':16},                                       
                {'Name':'Monster 2','hp':60, 'attack':62, 'defense':63, 'level':1, 'evolve':32},                                        
                {'Name':'Monster 3','hp':80, 'attack':82, 'defense':83, 'level':1,}]}                                                  
                 #Could continue dictionary with another monster form                                                                                                                                                                              

    def __init__(self,form,stage=0):                                                                                            
        self.form=form                                                                                                          
        self.stage=stage                                                                                                        
        self.traits=Monster.mon_dict[form][stage].copy()                                                                                                                                                                                            

    def level_up(self,increase=1):                                                                                              
        self.traits['level']+=increase                                                                                          
        if self.traits['level']>=self.traits.get('evolve',float("inf")):                                                           
            self.evolution()                                                                                                                                                                                                                        

    def evolution(self):                                                                                                        
        self.traits=Monster.mon_dict[self.form][self.stage+1].copy()                                                                                                                              
这将是一个非常艰难的起点。你可以创造一个特定形态和阶段的怪物,召唤等级来提高它的等级,当等级>=进化时,它就会进化。你可以玩这个游戏,使它更适合你正在寻找的

>>>from somefile import Monster                                                                                      
>>> A=Monster('A')
>>> A.traits
{'Name':'Monster 1','hp':45, 'attack':49, 'defense':49, 'level':1, 'evolve':16}                                                                                
>>> A.level_up(16)                                                                                                    
>>> A.traits                                                                                                           
{'Name': 'Monster 2', 'hp': 60, 'attack': 62, 'defense': 63, 'level': 1, 'evolve': 32} 

嗯,你可以使用字典来存储怪物及其等级的数据,进化所需的hps e等级如下:

waterMonsterData = {'Evolution1': {'hp': 10, 'evolution': 14}, 'Evolution2': {'hp': 25, 'evolution': 21}}
你可以使用另一本代表真实怪物的字典,比如:

fooTheGreatestWaterMonster = {'hp': 10, 'lvl': 1, 'currentEvolution': 'Evolution1'}
因此,您可以检查最伟大的水怪['lvl']的足部和演化水怪数据['EvolutionX']['evolution']所需的级别。如果fooTheGreatestWaterMonster拥有该等级,则您可以更新其进化状态fooTheGreatestWaterMonster['currentEvolution'],更新后将为

fooTheGreatestWaterMonster['currentEvolution'] = 'Evolution2' 
并更新他的HP

fooTheGreatestWaterMonster['hp'] = waterMonsterData[ fooTheGreatestWaterMonster['currentEvolution'] ]['hp']
差不多吧。但我认为采用面向对象的范例并实现类更好

一个粗略的想法:

monsterData = {'m1': {'hp': 10, 'evo': 10}, 'm2': {'hp': 32, 'evo': 17}}
monster = {'hp': 10, 'lvl': 1, 'currentEvolution': 'm1'}

# The monster foo studies hard and obtain 1 lvl

monster['lvl'] = monster['lvl'] + 1


# Has the monster level enought to evolve?
if monster['lvl'] > monsterData[monster['currentEvolution']]['evo']:

    # YES! The monster evolved! Congrats!
    monster['currentEvolution'] = 'm2'
    monster['hp'] = monsterData['m2']['hp']

定义一个Monster类并创建具有这些属性的对象可能会更容易。我如何使用类来实现这一点?我对蟒蛇很陌生,所以我为“初学者问题”道歉。所以我需要每个怪物进化路线的列表?@AustinGray根据我的方法,是的,但回顾一下,我认为你不必使用列表。字典也可以用于此。浮点(“inf”)是做什么的?这是一种廉价的黑客
.get()
对于字典,如果未找到给定的键,则可以返回默认值。如果怪物的字典中没有“进化”,它就不应该进入“进化”。因此,我将infinity(infinity是一个拼写错误)与infinity进行比较,以确保无论级别是什么,if语句都不会为真。