IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Algorithme Min-Max en C appliqué au jeu de Morpion (Tic-Tac-Toe)


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 2
    Par défaut Algorithme Min-Max en C appliqué au jeu de Morpion (Tic-Tac-Toe)
    Bonjour à tous, je dois appliquer l'algorithme Minmax en C à un Morpion (ou Tic Tac Toe)... Le problème est que je ne sais pas du tout comment faire...

    voici une partie de mon programme :

    #include "tictactoe.h"
    #include <iostream>
    #include <stdlib.h>
    #include <time.h>
    #include <math.h>


    // Ask for the user to enter its move using the keyboard
    void HumanPlayer(TicTacToe *Game);

    // Random selection of the move
    void RandomPlayer(TicTacToe *Game);

    void AIPlayer(TicTacToe *Game);

    int MinMax(TicTacToe *Game,char Mark, int *ptBest_Move);




    int main(int argc, char *argv[])
    {
    TicTacToe *Game=new TicTacToe; // Create a po inter on a TicTacToe object
    srand ( time(NULL) ); // Initialyze pseudo random generaor using current time

    // ::: Game core :::

    Game->DrawGame(); // Show the game
    while (Game->GameOver()==0) { // Play until the game is over
    if (Game->CurrentPlayer()==CROSS) { // Current player is player one
    cout << "\n ::: Player 1 (Crosses) :::\n";
    HumanPlayer(Game); // Player 1 is the human player
    Game->DrawGame(); // Draw the game after the move
    }
    else {
    cout << "\n::: Player 2 (Circles) :::\n";
    RandomPlayer(Game); // Player 2 is a random player
    Game->DrawGame(); // Draw the game after the move
    }
    }

    // ::: End of the game :::

    std::cout << "\n ::: Game Over ::: \n\n";
    Game->DrawGame();
    switch (Game->GameOver()) { // Print the result of the game
    case CROSS : cout << "\nPlayer 1 wins (CROSSES)\n"; break; // Player 1 is winning
    case CIRCLE : cout << "\nPlayer 2 wins (CIRCLES)\n"; break; // Player 2 is winning
    case DRAW : cout << "\nDraw !\n"; // Draw game
    }
    }

    // ::: Play randomly a move :::

    void RandomPlayer(TicTacToe *Game)
    {
    int Cell=random()%9+1; // Randomly select a move
    while (Game->Play(Cell)==0) // while the move is not possible...
    Cell=random()%9+1; // ... select a new one
    }

    // ::: Human player :::

    void HumanPlayer(TicTacToe *Game)
    {
    int Cell;
    do
    {
    cout << "Dans quelle case jouez-vous : "; // Print a message for the user
    cin >> Cell; // Read the move to the keyboard
    }
    while (Game->Play(Cell)==0); // Until the move is possible
    }

    void AIPlayer(TicTacToe *Game)
    {
    int Move;
    MinMax(Game,Game->CurrentPlayer(),&Move);
    Game->Play(Move);
    }

    int MinMax(TicTacToe *Game,char Mark, int *ptBest_Move)
    {
    //je dois compléter mais par quoi????
    }




    Merci d'avance pour votre aide...

  2. #2
    Membre Expert
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Par défaut
    1. http://fearyourself.developpez.com/t...morpion/part6/
    2. Ajoute les balises CODE à ton message précédent

  3. #3
    Membre émérite
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Par défaut
    Je vois du code C++ en plein milieu de ton code C, c'est normal ?
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Algorithme Min-Max appliqué au jeu Puissance 4 en C .
    Par hebmaster dans le forum Intelligence artificielle
    Réponses: 17
    Dernier message: 29/10/2012, 07h33
  2. Jeu de grattage / Tic-tac-toe
    Par freegreg dans le forum Téléchargez
    Réponses: 0
    Dernier message: 03/10/2011, 08h38
  3. Parallélisation de l'algorithme Min Max
    Par on2101 dans le forum Intelligence artificielle
    Réponses: 0
    Dernier message: 08/02/2011, 21h08
  4. Algorithme d'élagage alpha-beta en java appliqué au jeu du morpion 3*3
    Par sampaiX dans le forum Intelligence artificielle
    Réponses: 4
    Dernier message: 06/05/2010, 13h38
  5. algorithmes pour morpion/tic tac toe
    Par shirya dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 17/01/2008, 02h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo