Karoshi MSX Community

MSX Actualidad => General => Mensaje iniciado por: mars2000you en 26 de Enero de 2012, 09:56:37 pm



Título: MSXdev'11 : ExChess
Publicado por: mars2000you en 26 de Enero de 2012, 09:56:37 pm
The fourth finished game for MSXdev'11 contest !   ::qbiqsbeam::

ExChess

by Garlic Soft (Jos’b)

 ::qbiqsray:: ::qbiqsray:: ::qbiqsray::

http://msxdev.msxblue.com/


Título: Re: MSXdev'11 : ExChess
Publicado por: theNestruo en 26 de Enero de 2012, 10:31:31 pm
¡Ese Jos'b! :D

Yo no puedo entrar a valorar la calidad de juego del juego porque soy un paquete jugando (movimiento de las fichas y poco más :( ) pero en una práctica de la carrera hicimos un ajedrez: para dos jugadores, versión normal y también algunas variantes SICO (http://"http://snoot.org/toys/sico/variations.html"). Era para PC; teníamos memoria y procesador de sobra... ¡Y aún así aquello fue un infierno de estructuras de datos y punteros! ¡No me quiero ni imaginar lo que tiene que haber sido conseguir meterlo en 32Kb! ¡Y que juegue! :o ¡Enhorabuena!

Haz extensiva mi felicitación a Sutchan (no sé si es miembro de este foro), que ha "vestido" muy bien lo que hay por debajo :D


Título: Re: MSXdev'11 : ExChess
Publicado por: S0Y en 27 de Enero de 2012, 12:57:24 am
Pues está muy interesante, la verdad. Tiene una forma muy particular de jugar (no significa que sea malo jugando, yo tampoco soy una maravilla en ello), pero es que en 32 Kb no creo que se pueda pedir más. Lo malo es el tiempo que se tira pensando las jugadas, tuve que poner nlMSX a una burrada de MHz para que la respuesta fuera decente sin forzarlo a mover, pero insisto, está muy bien. Seguro que tiene tela marinera hacer un ajedrez para MSX, aunque esté basado en un código en C.

Me están entrando ganas de picarlo con Colossus 4 Chess... Ya veremos si lo hago, lo mismo nos sorprende ExChess...  ;)

Saludos!!


Título: Re: MSXdev'11 : ExChess
Publicado por: Jos'b en 27 de Enero de 2012, 08:01:11 pm
gracias por el feedback :D

Al final he conseguido hacer realidad uno de mis sueños, ese era el objetivo principal.

y ahora de momento, a disfrutar  :magicalstones:



 


Título: Re: MSXdev'11 : ExChess
Publicado por: Iggy Rock en 27 de Enero de 2012, 08:27:58 pm
Jos'b ... eres MUY grande! un juego de ajedrez no se lo trabaja cualquiera, enhorabuena!


Título: Re: MSXdev'11 : ExChess
Publicado por: Jos'b en 29 de Enero de 2012, 12:03:03 pm
Jos'b ... eres MUY grande! un juego de ajedrez no se lo trabaja cualquiera, enhorabuena!
todavía me falta mucho para alcanzarte :D


Título: Re: MSXdev'11 : ExChess
Publicado por: mesiasmsx en 29 de Enero de 2012, 12:58:00 pm
!Enhorabuena! Pero hasta que no finalice la fecha del Dev no me descargo nada  :)

De todas maneras me gusta ver que hay un juego nuevo de ajedrez para el standar, yo nunca he sabido jugar demasiado, mas bien poco, pero aun recuerdo las partidas que me pegaba hace años con algunos titulos de MSX , eso si para acabar siemrpe perdiendo  :'( .

Pues nada que felicidades y adelante.


Título: Re: MSXdev'11 : ExChess
Publicado por: Jon_Cortazar en 30 de Enero de 2012, 07:35:17 am
Esta es la diferencia de quienes saben programar y quienes, como yo, lo intentan :). Yo no sabría ni como empezar a plantearme un juego así: enhorabuena Jos'b, valiente! ;)


Título: Re: MSXdev'11 : ExChess
Publicado por: S0Y en 30 de Enero de 2012, 01:26:40 pm
Jos'b ... eres MUY grande! un juego de ajedrez no se lo trabaja cualquiera, enhorabuena!

Ratifico el comentario de Iggy Rock: ¡eres MUY grande!  :) :) :)

Saludos!!


Título: Re: MSXdev'11 : ExChess
Publicado por: phsoft en 31 de Enero de 2012, 11:00:53 pm
me encanta este juego. la parte gráfica.. sobria, funcional, elegante... es estupenda. en cuanto a la programación pues como no tengo ni idea :magicalstones: me atrevo a preguntar si un librillo muymuymuy básico de tres o cuatro mov iniciales típicos de alguna aperturas, las más normales, no hubiera entrado en 48kb? no sé.. lo digo porque no diese la sensación de que tarda mucho en mover desde las primeras jugadas.. en fin, no me hagáis caso. me parece una proeza plantearse un ajedrez para un z80, tíos
mi enhorabuena a los autores

saludos,
- paco



Título: Re: MSXdev'11 : ExChess
Publicado por: Jos'b en 01 de Febrero de 2012, 11:40:59 am
Pues si. Se podría haber metido un pequeño libro de aperturas, aunque no hubiera supuesto una mejora en el juego.  En realidad solo le he metido unas cuantas opciones iniciales para evitar el determinismo del programa a hacer siempre las mismas jugadas.

Para mí, lo más importante es el medio juego (al que por cierto ya le he detectado algunos pequeños defectos) y el tema de los finales que es bastante complicado (que tambien es mejorable).

De todas formas quiero sacar otra ROM con algunas mejoras en el juego (siempre dentro de sus limitaciones)


Título: Re: MSXdev'11 : ExChess
Publicado por: Mortimer en 01 de Febrero de 2012, 09:18:05 pm
Yo estoy lejos de jugar bien al ajedrez, pero por si te sirve de algo he echado un par de partidas sin tomármelo muy en serio, y a veces me ha sorprendido que cambiaba piezas por otras de menor valor, sin que luego aprovechara la situación.

En cuanto al a detalles técnicos, ¿Puedes comentarnos cuántas líneas tiene el código C, si tiene algo de ASM inline y con qué lo has compilado?

Saludos


Título: Re: MSXdev'11 : ExChess
Publicado por: Jos'b en 01 de Febrero de 2012, 10:10:53 pm
Yo estoy lejos de jugar bien al ajedrez, pero por si te sirve de algo he echado un par de partidas sin tomármelo muy en serio, y a veces me ha sorprendido que cambiaba piezas por otras de menor valor, sin que luego aprovechara la situación.

Efectivamente, ese es uno de los pequeños defectos que le he encontrado en la versión que he mandado al concurso (porque en versiones previas no tenía ese defecto).

La cuestión es un poco larga de explicar, pero intentaré resumirlo un poco. La última semana estuve actualizado una gran parte del motor al detectar algunos errores muy graves en el código y que, yo, achacaba a una mala valoración de la posición. Me dí cuenta cuando incruste el código en otro para poder compilarlo en un PC y poder testear valor por valor. Desgraciadamente, esto me hizo que no pudiera testear el programa lo suficiente como para detectar algunos fallos antes de enviarlo a la DEV.

De hecho, lo más dificil que he encontrado al hacer este juguecillo ha sido precisamente ese, el testeo, hay infinidad de posibilidades que por una cosa u otra se te terminan escapando, y son muy dificiles de controlar. El defecto que has encontrado estaba resuelto, como digo en versiones anteriores, y dí por hecho que seguía perfecto después de modificar el motor.

Basícamente, todo deriva de que el programa es capaz de detecta cuantas piezas propias y contrarias dominan un determinado punto. Calcula que, SI tiene mayoría de piezas en ese punto, debe conseguir ventaja, y procede a la captura. Esto se hace muy fácil con una pequeña formulita que hace que coma con la pieza de menor valor, pero se ve que al tocar el código (esta última semana como he dicho) tambien he tocado algo que ha hecho que en vez de tomar con la pieza de menor valor lo haga con la de mayor valor. :( En definitiva, es algo que se dónde está, se como resolver, y lo haré.

Tambien quiero hacer mucho hincapié en que es un programa que calcula a tan solo 1/2 jugada (si el programa tuviera una previsión de 3, 4 o 5 jugadas no caería en esos errores)

En cuanto al a detalles técnicos, ¿Puedes comentarnos cuántas líneas tiene el código C, si tiene algo de ASM inline y con qué lo has compilado?
Pues líneas no son muchas, sobre unas 2500 en puro C, solo tiene pequeñas rutinillas en ASM para el trato directo con el Hardware del MSX, y esta compilado con el SDCC.

En realidad el programa realiza muy pocos cálculos, basicamente cada posición la valora en función de unos criterios muy pero que muy sencillos. Simplemente apoyados por una función que es capaz de detectar la dominación por bando de los escaques (solo en cantidad, lo ideal hubiera sido también en calidad y ordenarlos de menor a mayor, pero no me daba para más).

En fin, he intentado hacer algo que sea medianamente jugable. Cuando hize las primeras pruebas, a una previsión de 2 jugadas, ejecutaba cada movimiento cada 5 minutos, y aún así no era lo suficientemente bueno, así que opté por cambiar de criterio y meterle solo a media jugada con criterios reales de valoración de la posición, con la idea final de trasladar el código para un ajedrez para  PC pero aumentando los criterios de valoración y la profundidad, así, si con tan solo media jugada se defiende medianamente bien, al aumentar la profundidad de cálculo con los mismos criterios debería jugar francamente bien.

El código es muy mejorable, y posiblemente si pudiera transformar alguna función a ensamblador, a lo mejor se ganaría en velocidad, pero en principio la idea era hacer programa de ajedrez, y las mejoras si tienen que venir ya vendrán poco a poco. 

Despues de todo este rollo, lo que más me gustaría que se valorase es que juega a media jugada y hace jugadas más o menos coherentes, que no es poco, y que cualquiera, sepa más de ajedrez o sepa menos, pueda echar un rato agradable con él. 
 
En fin, me alegra tu sinceridad respecto al programa porque eso me ayudará a mejorarlo, sin duda :).


Título: Re: MSXdev'11 : ExChess
Publicado por: Mortimer en 02 de Febrero de 2012, 10:30:30 pm
¡Gracias por la superexplicación  :D! muy muy interesante todo. Quizás mi mensaje quedó un poco seco porque sólo te dije algo negativo, pero  me parece un proyecto genial, lástima de las prisas de última hora. Cuando haya otra versión la probaré y te comentaré

Un saludo



Título: Re: MSXdev'11 : ExChess
Publicado por: pitpan en 03 de Febrero de 2012, 12:07:50 am
...apoyados por una función que es capaz de detectar la dominación por bando de los escaques...

Me ha encantado esta frase. No la he entendido, pero me ha encantado. ;)

Y ahora en serio: lo que has hecho es toda una gesta. Nada más y nada menos que un motor de juego de ajedrez para MSX...


Título: Re: MSXdev'11 : ExChess
Publicado por: Darth_Fistro en 03 de Febrero de 2012, 09:58:36 am
¿Un ajedrez para MSX?

Analicemos... ¿no tienes otros hobbies, amigos, novias o algo que mínimamente se pueda calificar como una vida sexual plena y saludable?  ;D

¡Joder, vaya curroooo!  :o Ya de entrada es muy agradable gráficamente, mostrando sólo lo que importa, un tablero elegante y sin barroquismos ni distracciones. Y en cuanto empiezas a jugar te das cuenta de la maravilla que es hacer funcionar este tipo de programas por el trabajazo que tienen. Es cierto que incluso al principio de la partida es muy lento, pero si dices que una librería de aperturas no hubiera mejorado mucho la cosa, sea. No importa mucho si es el precio que hay que pagar por tener un ajedrez de calidad para MSX. De todas formas deja esa opción para el futuro. Porque veo que es la versión 0.17... ¿qué nos deparará la 1.0?  :D

En consecuencia, caballero, me quito el sombrero...  :o


Título: Re: MSXdev'11 : ExChess
Publicado por: Jos'b en 03 de Febrero de 2012, 05:08:53 pm
Me estoy quedando perplejo  :o no esperaba tan buena reacción en general  :D

¡Gracias por la superexplicación  :D! muy muy interesante todo. Quizás mi mensaje quedó un poco seco porque sólo te dije algo negativo, pero  me parece un proyecto genial, lástima de las prisas de última hora. Cuando haya otra versión la probaré y te comentaré
El juego es lo que es, tiene algunas virtudes y muchos defectos ;D

...apoyados por una función que es capaz de detectar la dominación por bando de los escaques...

Me ha encantado esta frase. No la he entendido, pero me ha encantado. ;)
;D
ha sido un frase chorra... y hubiera sido lo mismo que decir "que hay una función que dice cuantas piezas(por bando) se pueden mover a un cuadrado"

Analicemos... ¿no tienes otros hobbies, amigos, novias o algo que mínimamente se pueda calificar como una vida sexual plena y saludable?  ;D
Pues si... aunque no se si son más saludables que el MSX  ;D ;D

Porque veo que es la versión 0.17... ¿qué nos deparará la 1.0?  :D
si para llegar a la versión 0.17 he tardado más de un año, para llegar a la 1.0 ....dejame pensar....uhmm... yo creo que dentro de seis o siete años ;D espero que el MSX no se haya quedado obsoleto ;D


Título: Re: MSXdev'11 : ExChess
Publicado por: Imanok en 04 de Febrero de 2012, 11:22:02 am
Por fin he podido probar los juegos del MSXDev! ;-)

Enhorabuena por conseguir llevar a cabo la gesta de hacer un juego de ajedrez! :D

Gráficamente sencillo, pero bien resuelto... las piezas han quedado cucas y lo de poder cambiar el color del tablero mola :)

Siento no poderte dar una opinión sobre el nivel del juego, porque no entiendo mucho de ajedrez, pero estoy seguro que te has esforzado y te ha costado lo tuyo... enhorabuena de nuevo!  ;)


Título: Re: MSXdev'11 : ExChess
Publicado por: MsxKun en 04 de Febrero de 2012, 06:10:31 pm
A diferencia del Imanoko, a mi si me gusta el ajedrez, aunque habre perdido practica y paciencia :D

Lo probe el otro dia muy poco, porque es un juego que requiere tiempo. Hay que ponerse. Poder aligerar el tiempo que la maquina piensa, con alguna rutina ASM seria genial. Especialmente al principio.

Y eso, que hacer un juego de ajedrez es bien complicado y por eso que enhorabuena por el esfuerzo. Este si que tendre que probarlo en emulador con la CPU al 300% para poder realmente comprobar que tal juega la maquina. Ahora probandolo un ratico en el MSX poco podre opinar. Eso o esperar a tener un dia realmente tiempo para jugar de verdad, cosa que ahora no tengo, lo siento :(

La ultima partida de ajedrez la jugue en la GP2X y realmente vi como habia perdido la paciencia de jugar :D Movia sin apenas pensar y la maquina me dio una paliza :P


Título: Re: MSXdev'11 : ExChess
Publicado por: KNM en 06 de Febrero de 2012, 07:06:50 pm
Holas :

Me he pasado el finde echando buena cuenta de los juegos de la DEV de éste año, y una de las mayores sorpresas me la he llevado con Experimental Chess.

¡¡ Me ha venido fenomenal para reencontrarme con el ajedrez !! Sólo se mover las piezas, pero he encontrado el juego desafiante, con una presentación correcta, y con muy buenas maneras, más entrañando la tremenda dificultad que tiene elaborar un motor de ajedrez en el sufrido z80.

Mi hermano está más ducho que yo en estas lides del ajedrez, pero tambien ha disfrutado con el juego. Eso si, el muy jodido pudo deshacerse del MSX en menos de 12 movimientos...

Es un gran principio, y mi enhorabuena al padre de la criatura. :D

KNM