我有一个名为enemyPokemon的词典,其中包含4个敌人的怪物,我有更多的词典,其中包含敌人可以做的动作,其中包括口袋妖怪的名字,然后是“战斗”。
我正在尝试从移动列表中随机移动,具体取决于你正在战斗的敌人,但是,我不知道该怎么做。
这是我写的代码:
x是一个变量,可以选择4个敌人的口袋妖怪中的一个。
enemyPokemon = {
1: 'Slowpoke',
2: 'Eevee',
3: 'Piplup',
4: 'Rattata',
}
SlowpokeFight = {
1:'Water Pulse',
2:'Zen Headbutt',
3:'Tackle',
4:'Rain Dance',
}
EeveeFight = {
1:'Sand Attack',
2:'Bite',
3:'Double-Edge',
4:'Last Resort',
}
PiplupFight = {
1:'Water Sport',
2:'Peck',
3:'Bubble',
4:'Drill Peck',
}
RattataFight = {
1:'Tail Whip',
2:'Quick Attack',
3:'Hyper Fang',
4:'Crunch',
}
randomMove = random.randint(1,4)
whatEnemy = str(enemyPokemon[int(x)])+'Fight')
print (str(whatEnemy[int(randomMove)]))
print (randomMove)
print (whatEnemy[int(x)])
答案 0 :(得分:0)
改为使用嵌套字典,这样您就可以将动作映射到宠物小精灵。
你可以通过将它们分成两个词典来实现这一点。
import random
enemyPokemon = {
1: 'Slowpoke',
2: 'Eevee',
3: 'Piplup',
4: 'Rattata',
}
pokemonMoves = {
'Slowpoke' : {
1:'Water Pulse',
2:'Zen Headbutt',
3:'Tackle',
4:'Rain Dance'
},
'Eevee' : {
1:'Sand Attack',
2:'Bite',
3:'Double-Edge',
4:'Last Resort'
}
# ...
}
randomMove = random.randint(1, 4)
enemy = enemyPokemon[randomMove]
move = pokemonMoves[enemy][randomMove]
print(enemy)
print(move)
您甚至可能倾向于只将一个口袋妖怪名称字典作为键,并将其移动字典作为值。
import random
pokemon = {
'Slowpoke' : {
1:'Water Pulse',
2:'Zen Headbutt',
3:'Tackle',
4:'Rain Dance'
},
'Eevee' : {
1:'Sand Attack',
2:'Bite',
3:'Double-Edge',
4:'Last Resort'
}
# ...
}
# creates a list of all the keys (pokemon names from dict)
allPokemon = list(pokemon)
randomMove = random.randint(1, 4)
enemy = random.choice(allPokemon)
move = pokemon[enemy][randomMove]
print(enemy)
print(move)
答案 1 :(得分:0)
如果你想从字符串中调用变量,这就是你需要的:
whatEnemy = globals()[(str(enemyPokemon[int(x)])+'Fight')]