Ahora tenemos entrenadores y sus pokemones. Como todo fan de Pokémon sabe los entrenadores salen de viaje y luchan contra pokemones salvajes. Si ellos ganan la batalla, pueden atrapar al Pokémon.
Creemos un nuevo contrato con el cual podamos luchar contra pokemones salvajes e intentar atraparlos.
Reutilizaremos algunas partes de nuestro contrato anterior. Ahora, agreguemos algunas variables de estado.
-
Agrega una variable de almacenamiento
constant
uint256
llamadaNAME_MODULUS
, y asigna su valor igual a20
. -
Crea una variable de almacenamiento
uint256
llamadabattleCount
. -
Cree un mapeo con la clave
uint256
y el valorString[32]
, llamadopokemonNames
. -
Realice los siguientes cambios en la función
_generateRandomDNA
:- Elimina el parámetro de entrada
_name
para que_generateRandomDNA
no acepte ningún parámetro. - En el cuerpo de la función
_generateRandomDNA
, remplaza_name
porbattleCount
. Ahora puedes recordar de Lección 1, Capitulo 11, quekeccak256
espera un único parámetro de tipobytes32
,Bytes
oString
. Entonces, necesitamos usarconvert
para castearbattleCount
abytes32
. - Puedes recordar de Lección 1, Capitulo 10 que agregamos el decorador
@pure
a una función que no lee el estado del contrato o las variables de entorno. Pero ahora que_generateRandomDNA
accede abattleCount
(una variable de estado), ya no es una función@pure
. Por lo cual, elimina el decorador de función@pure
.
- Elimina el parámetro de entrada