Hacer que la computadora juegue estratégicamente

PG: Long and hard.

MF: Project still needs to be wrapped up and updated online

En esta página, implementarás las reglas de estrategia del juego tres en línea para hacer que la computadora juegue estratégicamente.

Crearás un bloque siguiente movimiento para la computadora  puedes enviar un mensaje a todos los clones acerca de la posición en la que la computadora se moverá. Como antes, solo el clon que coincida con el número de posición hará el movimiento.

El código para el siguiente movimiento para la computadora implementará las siguientes tres reglas de estrategia:

  1. Si aún no está abierto, abre el proyecto U5-TresEnLínea.
  2. La descripción de las reglas 1 y 2 es "si ... haz esto ...". Para cambiar esto a código usando el bloque si, necesitarás un predicado para colocar en la ranura de entrada hexagonal de si. Escribe ¿puede el jugador () ganar ahora? cuadrado ganador para jugador que escribiste en la página anterior.
  3. Ahora, crea el siguiente movimiento para la computadora bloque que implemente las reglas de estrategia utilizando estos dos nuevos bloques, y utilízalo como entrada para enviar mensaje en lugar de mejor cuadrado vacío.
  4. Juega una partida contra la computadora y asegúrate que el juego aún funciona.
  1. Modifica el programa para que la computadora pueda jugar X u O. Cuando el juego comience, píofrece al jugador humano que elija X u O.
  2. Crea una forma para que el jugador decida si quiere jugar contra otro humano o contra la computadora.
  1. Juega contra la computadora y encuentra una estrategia que te permita ganar el juego. (Esto no es trivial; solo que las reglas de la computadora que ya tienes son bastante buenas.)
  2. Programa más reglas para que la computadora juegue mejor. Esto implicará mirar más de un movimiento hacia adelante. Hay varias maneras de hacerl; la siguiente es solo una sugerencia.
    1. No es suficiente con buscar una jugada ganadora para ti mismo en dos movimientos a partir de ahora. Si puedes ver un movimiento así, también lo puede hacer tu oponente, que se moverá para bloquearte. Así que lo que debes encontrar es un tenedor: dos triples en los que tú tengas una aparición y tu oponente no tenga ninguna, y que tengan un cuadrado libre en común. Esto es mucho más fácil de ver con una imagen:
      tablero con tenedor
      El jugador X comenzó el juego con el movimiento de apertura estándar, en el centro. El jugador O respondió pobremente, en el borde superior, y por lo tanto está a punto de perder el juego. El jugador X jugó en la esquina superior izquierda. El jugador O tuvo que responder en la esquina inferior derecha para bloquear una victoria inmediata para el jugador X. Es el turno del jugador X. No hay una combinación ganadora con dos X, ni con dos O. Pero jugador X puede encontrar dos combinaciones ganadoras, las marcadas con las líneas rojas, las cuales tienen una X y dos cuadrados libres, con uno de los cuadrados libres en común. En la imagen, el cuadrado común es el 4, el cuadrado del borde izquierdo, y ahí es donde el jugador X debe moverse.
    2. Encuentra todos los triples (es decir, reporta una lista de triples) en la que la computadora tenga un cuadrado y los otros dos están vacíos, y luego guárdalos en una variable llamada individuales.
    3. Haz una lista grande de todas las letras y números de los triples:
      variable de programa(átomos); asignar a (átomos) el valor (combinar con (anexar()()) elementos de (individuales))
      "Átomo" es un término técnico para un valor que no es una lista. Una lista contiene un montón de elementos, al igual que una molécula contiene un montón de átomos.
    4. Ahora encuentra un número que aparezca más de una vez en átomos.
      Need to update page number. --MF, 3/29/19
      Resolviste una situación relacionada en Unidad 5 Laboratorio 1 Página 7: Eliminación de duplicados.