Detectar empates

En esta página, comprobarás si hay un empate, es decir, cuando no quedan más casillas vacías, pero ningún jugador ha ganado.

  1. Desarrolla una forma de determinar si los jugadores han empatado y, de ser así, haz que el programa notifique a los jugadores.

    Snap! tiene una función de orden superior primer elemento donde () en 'ranura de entrada' que funciona de manera similar a mantener, pero reporta solo el primer elemento que se encuentra, por lo que puede ser más rápido. Primer elemento donde es equivalente a elemento (1) de (mantener).

    Primer elemento donde es una función de orden superior como mantener, mapear y combinar porque toma una función (un predicado) como entrada.

    Haz clic para obtener una sugerencia sobre el uso de primer elemento donde para detectar empates.

    primer elemento donde (¿es() un número?) en ()
  2. Juega un par de veces para probar la función de verificación de empates y corrige cualquier error.
  3. ¿Por qué es importante el orden de las pruebas (para victorias o empates)? Habla con tu compañero
  4. Guarda tu trabajo. Lo usarás más adelante.
  1. Hay muchas pequeñas mejoras que podrías hacer. Por un lado, cuando un jugador gana, es posible que necesites evitar que realice más movimientos. ¿Qué más te gustaría cambiar o mejorar?
Actividades desafiantes
  1. Tu programa puede ser más inteligente a la hora de detectar empates. Si solo hay un cuadrado vacío en el tablero y llenar ese cuadrado con el jugador cuyo turno es el siguiente no causaría una victoria, entonces los jugadores ya han empatado. El desafío aquí es que tendrás que probar para ganar en un tablero que no es el tablero actual.
  2. En lugar de que el objeto diga algo como "X gana", sería más satisfactorio para los jugadores dibujar una línea gruesa a través de los tres cuadrados que generan una victoria. Esto es un poco complicado porque cuando te das cuenta que hay una victoria, ya no sabes qué triple la generó. Asegúrate que tu código se mantenga legible para otro programador.