Esta es mi versión del TicTactoe con los retos hasta el momento
https://github.com/Miguer-dev/tic-tac-toe.git
Prepárate para programar un contrato inteligente
Avanza en el desarrollo de contratos inteligentes
Cómo estructurar un contrato inteligente
Configurando tu entorno de desarrollo
Desarrolla el contrato inteligente de un juego
Desarrollando un juego simple
Completando la lógica del contrato
Definiendo al ganador de la partida
Obtener un achievement
Agregar un token play to earn
Ampliado las capacidades del contrato
Crear un market place de achievements
Resolviendo el modelo de subasta
Agregar aleatoriedad al juego con Chainlink
Revisando la seguridad del contrato
Aleatoriedad: Funcionamiento con Chainlink y Metamask.
Revisión de seguridad
Correcciones y buenas prácticas
Continúa desarrollando contratos inteligentes
Continúa desarrollando contratos inteligentes
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Sebastián Leonardo Perez
Aportes 2
Preguntas 0
Esta es mi versión del TicTactoe con los retos hasta el momento
https://github.com/Miguer-dev/tic-tac-toe.git
En las casillas disponibles tengo otra solución que CREO que puede optimizar el codigo.
struct Partida {
address jugador1;
address jugador2;
address ganador;
uint[4][4] jugadas;
address ultimoTurno;
uint camposDisponibles;
}
Le añadimos un nuevo atributo a Partida llamado “camposDisponibles”, en la funcion crearPartida, hacemos esto:
partida.camposDisponibles = 9;
Le asignamos 9, ya que tictactoe siempre tiene 9 casillas disponibles.
En la funcion jugar, cada, añadimos esta validación, antes de la ejecución del codigo.
require (partida.camposDisponibles > 0, "No ha habido ganador, la partida se cerro");
y al final de esa función anadimos:
if (partida.camposDisponibles > 0) {
partidas[idPartida].camposDisponibles--;
}
al final lo que hice aca es evitar leer constantemente por medio de dos for o while leer el storage y simplemente ir cambiando restando las casillas disponibles por cada jugada exitosa.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?