3votos

Analizar un tablero de tres en raya en Other

por josejuan hace 6 años

La mejor, sea el lenguaje que sea es ésta XD

Devuelve, dado un tablero de tres en raya quien es el ganador, si lo hay.

1
2
3
4
5
6
7
8
// se representa el tablero con dos máscaras de 9 bits 
// una máscara para un juegador y la otra para el otro 
// si a..i son los 9 bits de una máscara dada, entonces 
// gana si la siguiente expresión es True 
 
abc+def+ghi+adg+beh+cfi+aei+gec 
 
// NOTA: no puede minimizarse 
4 comentarios
0votos

Escrito por jneira hace 6 años

estos programadores low-level siempre arreglandolo todo con mascaras de bit y expresiones regulares :-P
0votos

Escrito por foo(l) hace 6 años

Lo de hacerlo con una expresión matemática, me recuerda un "juego del quince" que describía Martin Gardner en el libro "A-há!". Es un juego que luego se revela isomórfico al tres en raya (a la versión en que cada jugador tiene 3 fichas y una vez puestas se pueden mover, no la de este ejercicio).

( En Wikipedia lo comentan en las "variaciones" http://en.wikipedia.org/wiki/Tic-tac-toe#Variations )
0votos

Escrito por josejuan hace 6 años

XD XD, matemática es, pero la expresión booleana que planteo es muy común en programación

(a && b && c) || (d && e && f) || etc...

quizás escribo demasiado ligeramente y no me hago entender ¡ups!
0votos

Escrito por foo(l) hace 6 años

Se entendía, sí :)

Pero vamos, que la idea es parecida. En el juego ese (dejando otras cosas) se hacía un cuadrado mágico de suma 15. Tienes 3 en raya <=> la suma es 15. En fin, simplemente me recordó aquello.

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.