homework commit
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
import json
|
||||
import random
|
||||
import pandas as pd
|
||||
#load moves from json file
|
||||
#eclude moves with power equal to null,
|
||||
# do not consider the effect,effects or changes fields
|
||||
available_moves = dict()
|
||||
|
||||
keys_to_skip = ['effect','effects','changes']
|
||||
with open('moves.json', 'r') as file:
|
||||
for line in file:
|
||||
m = json.loads(line)
|
||||
|
||||
if m['power'] == None or m['accuracy'] == None:
|
||||
continue
|
||||
else:
|
||||
|
||||
available_moves[m['name']] = {}
|
||||
m_keys = list(m.keys())
|
||||
for k in m_keys:
|
||||
if k in keys_to_skip:
|
||||
continue
|
||||
else:
|
||||
available_moves[m['name']][k] = m[k]
|
||||
continue
|
||||
available_moves_df = pd.DataFrame.from_dict(available_moves,orient='index')
|
||||
|
||||
#loading pokemons from json file
|
||||
#assume levell = 1 for all
|
||||
pokemons_dict = dict()
|
||||
with open('pokemons.json', 'r') as file:
|
||||
for line in file:
|
||||
p = json.loads(line)
|
||||
p['level'] = 1
|
||||
pokemons_dict[p['name']] = p
|
||||
#pokemons_dict[p['name']]['level'] = 1
|
||||
|
||||
current_pokemon_types = p['types'] + ['normal']
|
||||
compatible_moves = []
|
||||
for m in available_moves.keys():
|
||||
if available_moves[m]['type'] in current_pokemon_types:
|
||||
compatible_moves.append(m)
|
||||
#select two random moves
|
||||
selected_moves = [random.choice(compatible_moves) for _ in range(2)]
|
||||
pokemons_dict[p['name']]['moves'] = selected_moves
|
||||
pokemons_df = pd.DataFrame.from_dict(pokemons_dict,orient='index')
|
||||
|
||||
|
||||
available_pokemon_names = list(pokemons_dict.keys())
|
||||
available_starters = ['bulbasaur', 'charmander', 'squirtle']
|
||||
|
||||
#type effectiveness
|
||||
type_effectiveness = []
|
||||
with open('type_effectiveness.json', 'r') as file:
|
||||
for line in file:
|
||||
type_effectiveness.append(json.loads(line))
|
||||
type_effectiveness_df = pd.DataFrame.from_dict(type_effectiveness)
|
||||
#NOTE: from a practical point of view, since type_effectiveness is accessed many times
|
||||
#in the main code, using pandas DataFrame is not efficient. I decided to keep using dictionaries
|
||||
#for the type effectiveness. The justification arises especially if we consider
|
||||
#how long data generation will take.
|
||||
Reference in New Issue
Block a user