Construir un tablero de “tres en línea”

En este proyecto, desarrollarás un programa que juegue al tres en línea tan bien como tú.

En esta primera página, usarás clones para mostrar un tablero de tres en línea y permite que dos jugadores humanos ingresen movimientos.

Tres estados de tres en línea: en progreso, victoria, empate

El proyecto se distribuye en unidades diferentes porque hay mucho que hacer y porque algunos pasos requieren técnicas que aún no has aprendido. En esta página, aprenderás sobre la clonación de un objeto (es como copiarlo, pero mejor). En el futuro, extenderás el proyecto para detectar victorias y empates y, en última instancia, para permitir que la computadora sea uno de los jugadores.

Un enfoque para construir este juego es usar múltiples objetos; cada cuadrado del tablero es un objeto separado. Cada objeto sabe dónde está en el tablero y, una vez posicionados, los objetos nunca se mueven. El jugador hace clic en uno de los nueve cuadrados y ese objeto cambia su disfraz para mostrar el movimiento.

  1. Haz clic para cargar un proyecto nuevo. Entonces guárdalo.
  2. El primer objeto ya está configurado. Tiene tres disfraces: Vacío, X y O. Haz clic siguiente disfraz varias veces para verlos todos.
    Disfraces de cuadrado: vacío, X y O

Utilizarás clones para crear el tablero 3×3 de tres en línea. 

Un clon (clone) es una copia de un objeto que comparte información con su objeto padre (el objeto original). Por ejemplo, los clones tienen copias de cualquier secuencia de comandos del padre, y si se cambia la secuencia de comandos del padre, entonces las secuencias de comandos de los clones también cambian. Sin embargo, los cambios que realiza en un clon no se comparten con el padre, por lo que puede hacer cosas como mover cada clon a una posición diferente.

Los clones comienzan con la misma posición, disfraces y guiones de sus padres. Pero los clones hechos por un programa...

(También puede haber clones permanentes, que se crean de manera diferente, pero no se usan en este proyecto).

En este proyecto, necesitarás nueve clones, uno para cada cuadrado del tablero de tres en línea. Entonces, necesitarías algo como:
repetir (9){crear un clon de (mí mismo)}
El código real que escribas será un poco más que esto, pero esta es la idea central. Necesitarás hacer nueve clones y ocultar al padre. Esto te permitirá controlar los cuadrados de la cuadrícula con bloques como:
Cuando comienzo como clon
  1. Antes de hacer clic en cualquier otra cosa, lee este guion de demostración con tu compañero. Discutan lo que sucederá cuando hagas clic en el objeto.
    Este guion te ayudará a aprender acerca de los clones, pero no será parte de tu proyecto final.
    cuando me (hagan clic){ crear un clon de (mí mismo); decir(Soy el padre.); deslizar en (1) segs a x: (número al azar entre (-200) y (200)) y: (número al azar entre (-150) y (150)); decir()}
  2. Luego haz clic en el objeto en el escenario y compara lo que sucede con lo que esperabas.
    • Observa que el objeto principal (no el clon) se mueve a la nueva posición aleatoria después de clonarse. Vuelve a mirar el código; ¿Por qué esto tiene sentido?
    • Ten en cuenta que tanto los clones como el padre son objetos. Se puede hacer clic en ambos (pruébalo) y arrastrar (pruébalo también). Esto es diferente del efecto del bloque de lápiz sellar, que solo deja una imagen del objeto en el escenario.
    • El bloque crear un clon toma una entrada porque puede copiar cualquier objeto. En este proyecto, solo hay un objeto al principio, por lo que tus opciones son mí mismo o cuadrado (el nombre del objeto), que en este caso significa lo mismo.
  3. Prepárate para crear tu proyecto:
    1. Elimina el guion de demostración cuando me hagan clic del ejercicio 3.
    2. Conecta el bloque cuando se pulse hacia la parte inferior del área de guiones con el guion justo debajo.
      hacerTablero, asignar a (¿turno de X?) el valor de (verdadero) [Comentario: X juega primero.]
    3. Lee ese guion y observa...
      • El bloque hacerTablero está vacío. Lo escribirás en el siguiente problema.
      • La variable ¿Turno de X? será verdadero cuando sea el turno de X o falso cuando sea el turno de O.
        Al alternar entre dos valores, es conveniente usar valores booleanos porque puedes usar no para cambiar entre ellos y puedes usar si para probar la variable. (Recuerde que si requiere una entrada verdadero/falso).
        asignar a (¿turno de X?) el valor de (no (¿turno de X?)) si (¿turno de X?){}
  4. Edita el bloque hacerTablero para configurar nueve clones en tres filas de tres.
    Una fila de cuadrados Dos filas de cuadrados Tres filas de cuadrados
    Consejos:
    • Todos los disfraces miden 50 pasos de alto y 50 pasos de ancho.
    • Asegúrate que los clones comiencen con el disfraz cuadrado vacío.
    • Asegúrate mostrar el objeto original antes de clonarlo, para que los clones sean visibles. Después de clonar nueve veces para crear el tablero, oculta el objeto original para que no interfiera con el juego como un décimo cuadrado.
    • Haz clic si necesitas una pista adicional sobre hacerTablero.
      para (fila) = 1 a 3 {para (columna) = 1 a 3 {} }
  5. Ahora termina:
    1. Escribe un guion cuando me hagan clic que hará que cada clon use el disfraz adecuado cuando se haga clic: X u O dependiendo de quién sea el turno.
    2. Decide cómo debe comportarse un cuadrado cuando se hace clic en él mientras ya llevas puesto un disfraz de X u O.
    3. Haz que el objeto principal no se pueda arrastrar para que los cuadrados clonados no se muevan accidentalmente cuando el jugador haga clic.
      cuadrado con la casilla de arrastrable sin marcar
  6. Juega uno o dos juegos de tres en línea con tu compañero y corrige cualquier error. Luego, piensa qué más te gustaría agregar al proyecto.
  7. Puedes dejar comentarios en el archivo del proyecto para recordar cosas que quizás desees hacer más adelante.

    Guarda tu trabajo. Lo usarás más adelante.