OTHELLO EN MODE GRAPHIQUE (CMUGRAPHICS)+IA (3 NIVEAUX)

Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 - 3 nov. 2004 à 21:53
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 - 6 nov. 2004 à 15:01
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/27311-othello-en-mode-graphique-cmugraphics-ia-3-niveaux

cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
6 nov. 2004 à 15:01
C'est juste pour rendre la main au système, çà ne bloque pas l'appli et çà permet à Windows de faire autre chose... Le 1 durera en fait bien plus longtemps, le temps que le système change de processus et en exécute éventuellement d'autres. C'est un peu comme appeler yield(), sauf que y'a pas sous Windows, à ma connaissance (d'où la bidouille avec Sleep).
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
6 nov. 2004 à 14:46
Sleep(1) me parait court...je sé pas si ca changea qqch. 100 serait mieux non?
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
6 nov. 2004 à 13:32
un minimax, pour une ia de ce style, c'ets vrai qu'il y a bcps de coups...

selon ce que j'ai compris c'est un minimax sur 3... c'ets pas bon faut toujours un nombre pair de coups... et 3 c'est vraiment peu...

sinon une fonction d'éval se ferait plutot comme ceci :
+1 point par pion de sa couleur
-1 point par pion ennemi
-5 points par pion de ca couleur sur les lignes et colones 2 et 7
+5 points par pion ennemi dur les lignes et colones 2 et 7
+10 points par pions de sa couleur sur les bords
-10 points par pions ennemi sur les bords
+500 points ennemis aux coins
-500 points par pion ennemi aux coins
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
6 nov. 2004 à 13:09
Tu mets Sleep(1) dans ta boucle principale (j'ai vu pas mal de while dans ton code, j'ai fait que survoler)... Il est déclaré dans windows.h mais y'a des équivalents sous les autres systèmes.
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
6 nov. 2004 à 12:15
exacte Nbula j'ai oublier le cas ou personne ne peut jouer je vais le rajouter mais tu peut me dire comment tu veux reduire la consommation prosseseur avec un "sleep" ?
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
6 nov. 2004 à 12:09
Oui coucou t'a en partie raison : au niveau 1 c'est la case qui peut en retourner le plus qui est choisi SAUF si il peut jouer un angle.

Au niveau 3 -j'ai enlever des points aux trois cases pres des angles(5 et 7)
-j'ai enlever 1 point pour toutes les cases pres des bords
-j'ai ajouter 1 point pour les cases des bords
-et bien sur +700 point pour les angles(comme au niveau 1)
Et j'ai fait tourner l'IA contre le'Ia pour optimiser les points.
Bon maintenant vous ne pouvez plus perdre contre mon IA
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
4 nov. 2004 à 18:48
"(trois parties se sont terminées à zéro pions pour elle)"=> ça m'est aussi arrivé contre un humain...
t'as fait quoi comme IA ? (selon ce que j'ai compis, tu joue la case ou tu as le plus de pions, or c'est pas terrible car les coins et les bors sont très importants, et il faut éviter de jouer les coups à deux cases des bords... sauf quand on a les bords...) sinon, si t'es pret a faire un pti truc plus compliqué (IA imbatable...) alros cherches AB....
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
4 nov. 2004 à 18:33
Bon après avoir fait des tests plus poussés :
-> le coup de la fenêtre blanche est très frustrant ;-)
-> une fois qu'on a saisi l'IA, on l'anihile en deux coups de cuiller à pot (trois parties se sont terminées à zéro pions pour elle)
-> faudrait gérer le cas ou plus personne ne peut jouer, sinon le jeu reste bloqué

Niveau code, j'ai pas tout bien regardé mais tu peux remplacer le moche while(2==2) par un while(1). Il faudrait aussi voir si on peut caser un Sleep(1) dans la boucle principale, pour réduire la consommation processeur (mais c'est crade, le mieux serait d'adapter le jeu avec une WinMain et une vraie fenêtre, et de traiter les messages Windows).

Début encourageant, j'espère qu'il y aura des mises à jour ! ;-)
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
4 nov. 2004 à 17:41
Hum un truc auquel je n'avais pas fait gaffe, c'est sa fantastique utilisation processeur... 80% sur mon PC ! :(
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
4 nov. 2004 à 17:39
Salut, l'IA est assez forte en effet (testé en level 3). Un truc de dommage : si une autre fenêtre recouvre la fenêtre de jeu, elle ne se repeint pas (on a donc une grosse zone blanche)... Et pourquoi avoir gardé la fenêtre console ?

Sinon c'est un bon petit jeu, j'adore Othello ;-)
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
4 nov. 2004 à 11:44
tout d'abord merci pour tes compliments. Ca me fait plaisir de voir que mon IA pose des problemes.Mais je sais qu'elle n'utilise pas toutes les possibilites d'un PC. L'IA joue instentanement...
CMUGRAPHICS est une lib que j'ai eu par mon école mais je sais que l'on peut la trouver sur le net.
En fait c'est quoi la version "release"

Et Pistol-Pete c'est le surnom du meilleur joueur de tennis du monde PETE SAMPRAS (bande d'ignorant lol)
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
3 nov. 2004 à 21:54
et dis voir, pistol pete c'est pas un gars dans Mafia?
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
3 nov. 2004 à 21:53
géniale, l'IA!! bravo!! j'ai eu du mal a la battre
(mais je l'ai qd meme eue, niark niark)
C'st quoi CMU graphics? jamais entendu parler...ca fait partie de windows'apparement non ca VC++ ne trouve pas le header.
Par contre tu devrait te dépécher de mettre la version release au lieu de la debug, moi je me suis déja fait rebrousser le poil par brunews ;)
Et, encore une fois, je ne comprend pas comment on peut gére une source de 600 lignes... enfin ya pire.
Rejoignez-nous