Pages: [1] 2   Bas de page
Imprimer
Auteur Fil de discussion: [NDS/Jeu] ManyChessDS  (Lu 23309 fois)
0 Membres et 1 Invité sur ce fil de discussion.
Sephiroth_FF7 Hors ligne
Full Member
***
Messages: 109


Voir le profil
« 25 Juillet 2008, 12:22:43 »

ManyChessDS
Des échecs sur DS
BETA

Version 1.3

Présentation :

ManyChessDS est un jeu supportant de multiples variantes d'échecs, jouable à 2 sur la même DS ou par wifi ou à un contre l'IA.

Galerie d'images :

http://sephirothff7.free.fr/ManyChessDS/Screens/1.PNGhttp://sephirothff7.free.fr/ManyChessDS/Screens/2.PNGhttp://sephirothff7.free.fr/ManyChessDS/Screens/3.PNG
http://sephirothff7.free.fr/ManyChessDS/Screens/4.PNGhttp://sephirothff7.free.fr/ManyChessDS/Screens/5.PNGhttp://sephirothff7.free.fr/ManyChessDS/Screens/6.PNG
http://sephirothff7.free.fr/ManyChessDS/Screens/7.PNGhttp://sephirothff7.free.fr/ManyChessDS/Screens/8.PNG

Historique :
16/08/08 Version 1.3
Correction d'un bug en wifi et ajout d'infos sur l'écran du haut

15/08/08 Version 1.2
Ajout du wifi

14/08/08 Version 1.1
Ajout du mode IA contre IA et de toutes les reges ingame.

11/08/08 Version 1.0
Ajout du janggi et des règles ingame (que pour les échecs pour le moment).

10/08/08 Version 0.9
IA plus rapide
Ajour du Xiangqi

07/08/08 Version 0.8
Ajout de Mini shogi, Judkins shogi, unasgogi
L'IA ne se suicide plus quand elle sait qu'elle va perdre dans n tours.

02/08/08 Version 0.7
Adition de Chess 480 et du Shogi
IA 1.6 fois plus rapide

30/07/08 Version 0.6
Correction du Shatranj
Ajout de:Makruk,Minichess

29/07/08 Version 0.5
Les pions peuvent se promouvoir en une pièce de chacune des deux armées si les armées sont différentes.
Ajout des armées Forward FIDEs et All-Around Allstars et du Shatranj.

28/07/08 Version 0.4
-Ajout des armées Colorbound Cloberers I et II et Nutty Knights.
-Ajout des variantes Gothic chess, Bird's chess et Embassy chess.

27/07/08 Version 0.3
-Ajout du mode contre un humain (même DS)
-Ajout des variantes Pawns game, Peasant's revolt, Peasant's revolt II, Weak, Chess with different armies (pour l'instant il n'y en a que deux).

26/07/08 Version 0.2
-Meilleure IA
-Ajout de Omega Chess
-Ajout du mode contre la machine

25/07/08 Version 0.1
-Premiève verion, training mode presque fini il manque plus qu'a améliorer l'IA.

Comment jouer :
Touches directionelles + A,B : utiliser les menus
Stylet:déplacer les pièces, éditer l'échiquier.
« Dernière édition: 16 Août 2008, 15:28:48 par Sephiroth_FF7 » Journalisée

Cid2Mizard Hors ligne
Super Mega Member
****
Messages: 4064


Voir le profil WWW
Disciple Kukulcanien

« Réponse #1 : 25 Juillet 2008, 22:55:39 »

C'est quoi ce plateau à 10 cases ?
Journalisée

Ludo6431 Hors ligne
Administrateur
*****
Messages: 903


Voir le profil WWW
It flies !

« Réponse #2 : 25 Juillet 2008, 23:02:08 »

http://en.wikipedia.org/wiki/Capablanca_chess Wink
Journalisée

Mon matériel : DS Lite blanche flashée v8 | DSi noire | SCLite | SCDS ONE v2 | SCDS TWO | DSerial EDGE | MK-R6 gold | rumble pack | R4(r4ds.cn) | M3i Zero | Acekard 2i | iTouch DS | CycloPS' iEvolution
Cid2Mizard Hors ligne
Super Mega Member
****
Messages: 4064


Voir le profil WWW
Disciple Kukulcanien

« Réponse #3 : 25 Juillet 2008, 23:04:34 »

ouep mais il bouge comment ce nouveau cheval  Azn ? Je ne connaissais pas du tout
Journalisée

thoduv Hors ligne
Sr. Member
****
Messages: 364


Voir le profil WWW
Hello world...

« Réponse #4 : 25 Juillet 2008, 23:48:48 »

Ah ouais, j'avais découvert les variantes sur Wikipédia y'a pas longtemps... Ca peut être marrant. T'as déjà eu l'occasion de "pratiquer" ces variantes ?

Cette page recense les "pièces féeriques", dont certaines paraissent particulièrement intéressantes et amusantes à jouer: http://fr.wikipedia.org/wiki/Pi%C3%A8ce_f%C3%A9erique (j'aime bien la "Rose" par exemple).

Bon allez... déjà que je suis mauvais aux échecs "normaux" ... Azn
Journalisée

Bobiwan Hors ligne
Full Member
***
Messages: 184


Voir le profil
Core

« Réponse #5 : 29 Juillet 2008, 09:42:03 »

On pourrait avoir des précisions sur le jeu ?

genre
-Quels type d'IA est utilisé ?
-Quel type de generateur de coup ?
- Quel fonction de cout ?

voila juste par curiosité
Journalisée

--
std::cout << "Zbob" << std::endl
Sephiroth_FF7 Hors ligne
Full Member
***
Messages: 109


Voir le profil
« Réponse #6 : 29 Juillet 2008, 12:05:20 »

Pour info,
l'IA anticipe les coups suivants, si elle est niveau 1, elle regarde le meilleur coup à faire en tenant compte du meilleur coup que ferait son adversaire.
Si elle est de niveau 2, elle tient en plus compte ce ce quelle pourrait faire aprés que son adversaire ait joué.
Niveau 3: en tenant compte en plus de ce que l'adversaire pourrait joué aprés ce que l'IA pourrait joué aprés son premier coup...
Chaque niveau elle anticipe un coup de plus.
C'est une fonction qui s'appele elle-même.
Pour chaque coup possible, la valeur est attribué:
Si niveau 0-->déterminer la valeur du coup par la somme des valeurs des pièces (Pion:2/Fou et cavalier:6, Tour:10,Reine:18,Roi:255), +1/4 par ligne avancé. Les pièces adverses comptent en négatif.
si niveau >0 -->déterminer la valeur du coup en rappelant la fonction avec un niveau de moins, la matrice aprés que le coup ait été joué et en changeant de joueur.
Sauf si la cible est le roi dans ce cas valeur maximale et on ne cherche pas plus loin.
l'IA considère que si un pion arrive sur la dernière ligne il est promu en la pièce ayant la plus de valeur (la reine généralement).
La fonction retourne un u32 contenant les coordonés de départ et d'arrivé du coup et la valeur du coup.
En gros c'est un algo minmax.

Pour les fonctions:
F_Getbestmove pour déterminer le meilleur coup,
F_Domove pour faire un coup donnée tout ça à cause des pions et du roi, vu que ces deux pièces ne se contentent pas de juste "on bouge et voila", sinon ça prend 2 lignes.

Voila. Pour essayer de mater le roi, il faut que ce soit déja trop dans le nombre de tour qu'anticipe l'IA, il ne le verra pas venir.
L'IA est tactique, elle est parfaite si on se projeté dans n coups, mais n'est pas stratégique, c'est dans le long-terme qu'on peut la battre.
« Dernière édition: 29 Juillet 2008, 12:25:14 par Sephiroth_FF7 » Journalisée

Bobiwan Hors ligne
Full Member
***
Messages: 184


Voir le profil
Core

« Réponse #7 : 30 Juillet 2008, 08:17:04 »

Ok, pour l'IA, je vois assez bien,
Apres pour la génération de coup, le probleme est pas le nombre de ligne pour coder mais le temps d'execution .
car pour chacun des coup de ton minmax, tu est obilgé de voir tous les coup possibles de tes piece, et ca ca deviens long, surtout quand tu tente des profondeur a plus de  3,4 niveaux.

Tous les mouvement sont potentiellement couteux car il ne doivent pas laisser le roi en echec (pour un roc toute les case parcouru par le roi ne doivent pas etre prenable) . Bref y a des gens qui ont trouve comment faire avec des tableau de bit et des mask, pour faire ca ultra rapidement
Journalisée

--
std::cout << "Zbob" << std::endl
Sephiroth_FF7 Hors ligne
Full Member
***
Messages: 109


Voir le profil
« Réponse #8 : 30 Juillet 2008, 14:31:46 »

Question a ceux qui ont déja joué contre l'IA:
Est-elle assez rapide pour vous ?
A quel niveau jouez vous ?
A quel niveau vous évaluez-vous aux échecs (pas une valeur numérique rapport à l'IA, quelque chose du style 'Nul','Assez bon','Imbattable'...) ?
Journalisée

Cid2Mizard Hors ligne
Super Mega Member
****
Messages: 4064


Voir le profil WWW
Disciple Kukulcanien

« Réponse #9 : 30 Juillet 2008, 15:27:59 »

Moi j'ai joué au niveau 1 et ça va, on dirait je joue contre un vrai novice qui fonce dans le lards Azn
Journalisée

Sephiroth_FF7 Hors ligne
Full Member
***
Messages: 109


Voir le profil
« Réponse #10 : 31 Juillet 2008, 11:23:56 »

Autre question:
Quel est le plus rapide entre variable%2 et variable&1 ?
Journalisée

Ludo6431 Hors ligne
Administrateur
*****
Messages: 903


Voir le profil WWW
It flies !

« Réponse #11 : 31 Juillet 2008, 11:42:36 »

Autre question:
Quel est le plus rapide entre variable%2 et variable&1 ?
Je pense que variable&1 est plus rapide, mais ça ne t'inquiète pas, le compilateur se charge de l'optimiser je pense Wink

Sinon pour en être sûr, fait un -s sur le compilo avec chaque solution est fait un diff des deux sources asm récupéres, pour voir lequel utilise le moins d'opcodes Wink
Journalisée

Mon matériel : DS Lite blanche flashée v8 | DSi noire | SCLite | SCDS ONE v2 | SCDS TWO | DSerial EDGE | MK-R6 gold | rumble pack | R4(r4ds.cn) | M3i Zero | Acekard 2i | iTouch DS | CycloPS' iEvolution
Sephiroth_FF7 Hors ligne
Full Member
***
Messages: 109


Voir le profil
« Réponse #12 : 31 Juillet 2008, 12:25:52 »

En testant, avant la modif %2-->&1 l'IA fasait 9min55s, maintenant elle fait 9min53s soit un gain de vitesse de 0,003%. J'ai changé les %2 de tous les if de mon P_Getmoves, je peux encore en changer quelque uns.
EDIT: Et une seconde de plus de gagné!
« Dernière édition: 31 Juillet 2008, 12:51:40 par Sephiroth_FF7 » Journalisée

Ludo6431 Hors ligne
Administrateur
*****
Messages: 903


Voir le profil WWW
It flies !

« Réponse #13 : 31 Juillet 2008, 12:30:17 »

Ok, et moi qui croyais le compilo intelligent !! Wink
Journalisée

Mon matériel : DS Lite blanche flashée v8 | DSi noire | SCLite | SCDS ONE v2 | SCDS TWO | DSerial EDGE | MK-R6 gold | rumble pack | R4(r4ds.cn) | M3i Zero | Acekard 2i | iTouch DS | CycloPS' iEvolution
Bobiwan Hors ligne
Full Member
***
Messages: 184


Voir le profil
Core

« Réponse #14 : 31 Juillet 2008, 20:36:39 »

ben cest deux instruction unitaire

par contre 9 minute pour deux niveau, c'est achtement long

je commencais a conter les seconde  apres le niveau 3 et 4 de memoire.
je pense donc qu'il y a d'autre endrois plus important a optimiser avant les % et &
Journalisée

--
std::cout << "Zbob" << std::endl
Pages: [1] 2   Haut de page
Imprimer

Aller à: