Se le proporciona una red Connect 4 parcialmente llena (7x6).
O X
O X
X O X O O
X O X O X X
O X X X O O X
O O O X X O X
(La entrada se puede proporcionar como una matriz 1D o 2D y como letras o números, etc.)
Asumir que
- X comenzó el juego.
- Nadie ha ganado todavía.
- Los jugadores pueden no haber jugado bien hasta ahora, pero ahora en adelante ambos emplearán estrategias óptimas.
- La cuadrícula de entrada no es defectuosa.
Debe generar un único valor que indique qué jugador gana (o un empate)
Código de desafío de golf; entonces el código más corto gana. Su programa no tiene que calcular la salida real en un período de tiempo razonable, pero debe poder demostrar que la salida se obtendrá correctamente en un período de tiempo limitado.
code-golf
game
grid
board-game
fantasmas_en_el_código
fuente
fuente

Respuestas:
Perl,
119118117 bytesIncluye +4 para
-0pDé el tablero girado acolchado con espacios en STDIN (la gravedad tira piedras a la derecha)
connect4.pl:Imprime
3si el jugador que se mueve gana,1si el jugador que se mueve pierde y2para un empate.En perls anteriores, puede usar un literal
^Spara obtener un byte. Si no le importa la ineficiencia extrema , puede omitir la$$_||=(tabla de transposición) y ganar 6 bytes más. Si deja de lado$_=, le mostrará dónde jugar en lugar del resultado (juegue1y gane si hay uno, juegue2y dibuje si hay uno o juegue en alguno3y pierda)Construye y evalúa un árbol minimax completo. Se le acabará la memoria y el tiempo a menos que el tablero ya esté razonablemente bien lleno.
fuente