2016-12-08 6 views
-2

У меня есть словарь под названием enemyPokemon, который содержит 4 врагаPokemon, и у меня есть больше словарей, содержащих ходы, которые могут сделать враги, которые являются именами покемонов, а затем «Бой» ».Как добавить переменную и строку вместе, чтобы получить другую переменную

Я пытаюсь выбрать случайное перемещение из списка ходов в зависимости от того, с каким врагомПокемона вы сражаетесь, однако я не знаю, как это сделать.

Это код, который я написал:

х является переменной, которая выбирает один из 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

что ошибка здесь? обновление: 2-я строка кода 'whatEnemy = str (enemyPokemon [int (x)]) + 'Fight'' –

+1

Возможно, вам было бы полезно, если бы вы могли редактировать свое сообщение, чтобы включить словари, которые вы используете, чтобы мы могли видеть как вы это настроили и что вам нужно изменить, чтобы сделать это. – coralvanda

ответ

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) 
0

Если вы хотите вызвать переменную из строки это то, что вам нужно:

whatEnemy = globals()[(str(enemyPokemon[int(x)])+'Fight')] 
Смежные вопросы