Jeu de gomoku avec ia

Soyez le premier à donner votre avis sur cette source.

Vue 10 223 fois - Téléchargée 806 fois

Description

Voici un jeu de gomoku avec une intelligence artificielle. Le but du jeu est d'aligner 5 pions plus rapidement que son adversaire

Plusieurs interfaces de jeu sont disponibles, et il est possible d'en créer des nouvelles (en réimplémentant plugin.h, comme je le fait avec default_plugin et plugin_01)

L'IA peut-être assez lente (surtout sous Windows XP).

Ce programme utilise Qt 4.4.3, et est compilable sous Windows XP et Linux 2008. Non compilé sur Windows 2000 ou Windows Vista, mais ne devrait pas poser de problèmes.

Sont fournis dans le zip :
-toutes les sources
-l'exécutable compilé sous windows XP
-l'exécutable compilé sous Linux 2008
-les librairies (*.dll, *.so) des plugins d'affichage compilés sous Windows XP et Linux 2008
-quelques images... pour faire joli :D

Merci de me faire parvenir toutes les modifications que vous pourriez apporter au code.

Source / Exemple :


//Voir le zip.

//Si vous souhaitez compiler les sources, n'oubliez pas de compiler également:
// default_plugin (/plugin/default_plugin)
// plugin_01 (/plugin/plugin_01)

//Si vous voulez compiler sous mac, il doit falloir rajouter :

#ifdef Q_OS_MAC
	QSettings settings(this);
#endif

//(ou quelque chose comme ça)
//après chaque occurrence de  :

#ifdef Q_OS_UNIX
	QSettings settings(this);
#endif
#ifdef Q_OS_WIN
	QSettings settings(QString("%1/Settings/Morpion.conf").arg(QCoreApplication::applicationDirPath()), QSettings::IniFormat);
#endif

// Et rajouter à la ligne 798 (ou environ) de mainwindow.cpp :
#ifdef Q_OS_MAC	
	if(!grille->setPlugin("Plugin", /*"Nom du plugin sous mac"*/, "Default"))
        {
		QMessageBox::critical(this, trUtf8("Erreur"), trUtf8("Impossible de charger le plugin d'affichage par defaut.\nL'application va quitter."), QMessageBox::Ok, QMessageBox::Ok);
		qApp->exit(1);
	}
#endif
//(ou quelque chose comme ça)

// Également, rajouter à la ligne 362 (ou environ) de options.cpp) :
#ifdef Q_OS_MAC
	QStringList plugin = pluginDir.entryList(QStringList() << /*"*.extension des librairie dynamiques sous mac"*/, QDir::Files);
#endif
//(où quelque chose comme ça)

// Il faut également modifier 'main.cpp' :
// rajoutez :
#ifdef Q_OS_MAC
	QCoreApplication::setOrganizationName("Morpion");
	QCoreApplication::setApplicationName("Morpion");
#endif

Conclusion :


Bon jeu à tous !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

baboulinet054
Messages postés
3
Date d'inscription
vendredi 10 avril 2009
Statut
Membre
Dernière intervention
10 avril 2009
-
Est-ce que c'est sur C ou sur C++. Tu peut me le dire stp?
baboulinet054
Messages postés
3
Date d'inscription
vendredi 10 avril 2009
Statut
Membre
Dernière intervention
10 avril 2009
-
Tu as eu faux sur tes codes-sources ils faut que tu corrige stp
Crownless00
Messages postés
5
Date d'inscription
dimanche 13 avril 2008
Statut
Membre
Dernière intervention
22 mai 2010
-
C'est du C++ ça se voit assez rapidement je pense.

C'est à dire j'ai "eu faux sur mes codes sources ?"
matovitch
Messages postés
31
Date d'inscription
jeudi 2 août 2007
Statut
Membre
Dernière intervention
19 avril 2009
-
Bonjour à tous !
J'ai mis un 10 bien que je ne connaisse pas vraiment le c++, mais parce que le code est propre (bien indenté et très bien commenté), qu'il n'y a pas de bug (du moins je n'en ai pas trouvé), et parce que l'ia est vraiment forte !
Je n'ai pas réussi à gagner une seule partie même si j'ai un niveau assez faible au gomoku.
Les améliorations que je propose :
-Afficher la défaite ou la victoire dans une fenêtre (ça se voit difficilement en bas à droite).
-pouvoir exporter ses parties en fichiers texte.
-améliorer la vitesse de l'ia (environ 4 secondes sous windows).
-...voilà je ne trouve rien d'autre...

Bonne continuation pour les nouvelles versions ! ;-)
Crownless00
Messages postés
5
Date d'inscription
dimanche 13 avril 2008
Statut
Membre
Dernière intervention
22 mai 2010
-
Accélérer l'IA reviendrait... à baisser son niveau, ce qui n'est pas forcement un but.
Je peux par contre proposer plusieurs niveaux de difficulté...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.