Piedra, papel o tijera: comparar jugadas
Después de estudiar los operadores, vamos a usarlos para decidir quién gana.
Elige piedra, papel o tijera. Piedra gana a tijera; tijera gana a papel; papel gana a piedra.
Gana dos rondas antes que el ordenador. Hay un máximo de siete rondas, incluyendo empates.
Una partida requiere unos pocos clics.
La primera victoria suma 5 puntos. Perder o empatar no consume la recompensa.
Puedes volver a jugar tantas veces como quieras; las victorias siguientes son de práctica.
Inicia sesión para guardar los puntos.
Reglas expresadas con datos #
config.js contiene las opciones y los límites. En game.js, compareChoices() devuelve
0 cuando las elecciones son iguales, 1 si gana el jugador y -1 si gana el rival.
Un objeto llamado beats relaciona cada elección con la que puede vencer.
Así separamos comparar una ronda de actualizar una partida. playRound() cambia el
marcador y determina cuándo termina; renderer.js crea botones y muestra las elecciones.
main.js conecta esas piezas para la versión independiente.
El ordenador elige con Math.random(). No necesita predecir tu jugada: cada ronda
compara dos valores aplicando exactamente las mismas reglas.
Para investigar #
¿Qué devuelve la comparación si ambas elecciones son papel? ¿Por qué los empates no
suman puntos al marcador? Cambia WINNING_SCORE a 3 en tu copia local y observa cómo
cambia la duración. Más adelante estudiarás los objetos y las funciones con detalle.
Ejecutarlo y modificarlo en tu ordenador #
El visor muestra el código que utiliza esta partida. Descarga los archivos respetando
el árbol de carpetas. Para los juegos con archivos ../shared/, guarda esa carpeta junto
a la carpeta del juego. Por ejemplo: games/snake/ y games/shared/.
Sirve la carpeta games con un servidor HTTP local. Si tienes Python 3 instalado,
puedes ejecutar python3 -m http.server 8000 desde esa carpeta y abrir la subcarpeta
del juego en el navegador. La versión independiente funciona sin instalar librerías;
los puntos del curso se guardan únicamente desde la plataforma.