¿Cómo de difícil es hacer un programa de ajedrez?

Iniciado por 0xFer, 12 Agosto 2015, 22:32 PM

0 Miembros y 1 Visitante están viendo este tema.

0xFer

¿Cómo de difícil es hacer un programa de ajedrez?. Me interesa mucho el tema, ya he intentado hacer uno pero como no tengo mucha experiencia pues no me ha salido del todo bien.

Qué opinan ustedes ¿Cómo de difícil es?
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}

DarK_FirefoX

#1
Lo primero lo primero es aclarar a que te refieres con "difícil".

Pues hacer el programa como tal no es para nada complicada, solo son un conjunto de movimientos predeterminados para cada ficha, verificaciones de posibles movimientos válidos/inválidos, una orientación a objetos puede facilitar todo esto.

¿Qué es lo que causaría más trabajo? Pues la inteligencia artificial, lo cual no es nada trivial. Hay que estudiar algoritmos nada simples para el calculo. Además se puede utilizar técnicas de heurística.

En fin, que hacer un programa de ajedrez para jugar Humano vs. Humano, Si! es sencillo no es complicado! Si quieres jugar Humano vs. PC o incluso PC vs. PC, es complicado, pero no imposible, solo que hay que estudiar, leer y tener ánimos.

Salu2s

ivancea96

Cita de: DarK_FirefoX en 12 Agosto 2015, 22:41 PM
Si quieres jugar Humano vs. PC o incluso PC vs. PC, es complicado, pero no imposible, solo que hay que estudiar, leer y tener ánimos.

O mover piezas aleatorias a posiciones aleatorias en cada movimiento :D! ¿Qué? Es una IA :/ xD

El tema es que estructures bien el programa antes de empezar a hacerlo. ¿Lo harás con POO? ¿Harás una clase por pieza, una clase para todas las piezas...?
¿Lo harás en consola, o gráficamente? ¿De ser gráficamente, con qué librerías?

En fin, estructurarlo todo. Cuando acabes de bocetar mentalmente el ciclo del programa, verás que la dificultad no era tal.

DarK_FirefoX

#3
Cita de: ivancea96 en 13 Agosto 2015, 15:45 PM
O mover piezas aleatorias a posiciones aleatorias en cada movimiento :D! ¿Qué? Es una IA :/ xD

No entendí que quisiste decir!  :-\

Ya entendí! Haha, estoy acabado de levantar y tengo que poner la 3ra velocidad para entender bien las cosas.

En teoría si, sería una IA, bastante chula!! xD  :silbar:

Salu2s

0xFer

¿Inteligentemente tonto? o ¿Tontamente Inteligente?...jaja Bueno gracias por sus respuestas...
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}

Gh057

jajaaa y si, no sabríamos con que movimiento saldrá después... o hace la GRAN jugada, o nos reímos un rato XD

Si, sería una muy buena elección. Clase para el tablero, para cada pieza (para ir ampliando de a poco...) otra para los movimientos que sea derivable... una estructura tipo pila para el control de la partida, la clase control por parte del usuario... y para lo último, el motor de inferencia o IA que nos tire al comienzo jugadas desde una bd y cada x tiempo jugadas "aleatorias" :)

Saludos
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...