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

 C Discussion :

Algorithme de jeu Démineur


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 2
    Par défaut Algorithme de jeu Démineur
    bonsoir tout le monde , je cherche un peu d'aide içi , si svp quelq'un entre vous peut m'aider . je vais connaitre l'algorithme de jeu Démineur (tout qui concerne les procédures et les fonctions possibles svp) . Merci bien tt le monde!!

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Tu cherches à créer un jeu démineur (ce qui implique de connaître génération aléatoire, propagation de cases révélées quand on clique sur une case "vide", etc.) ou une IA qui joue au démineur?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    http://www.linux-france.org/article/...stions-fr.html

    En gros, montre nous que tu as cherché un minimum si tu veux des réponses...

    http://lmgtfy.com/?q=algorithme+d%C3%A9mineur

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par hamdibena Voir le message
    bonsoir tout le monde , je cherche un peu d'aide içi , si svp quelq'un entre vous peut m'aider . je vais connaitre l'algorithme de jeu Démineur (tout qui concerne les procédures et les fonctions possibles svp) . Merci bien tt le monde!!
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ouvrir_case(case)
        si case = mine => boum
        afficher mines situées autour case
        si nb mines autour = mines déjà positionnées par joueur faire
           pour chaque case "x" située autour et pas encore ouverte faire
                  ouvrir_case(x)
           fin pour
       fin si
    fin fonction
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    J'avais fait une réplique de Démineur avec Qt, si ça t'intéresse les sources sont en GPL ici : https://github.com/Bktero/UnMineMe

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Bktero Voir le message
    J'avais fait une réplique de Démineur avec Qt, si ça t'intéresse les sources sont en GPL ici : https://github.com/Bktero/UnMineMe
    Joli. En plus il compile parfaitement avec mingw sous XP.

    Qq petits bémols à la compilation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sources\myboard.cpp: In member function 'void myBoard::mineMyBoard()':
    sources\myboard.cpp:145: warning: comparison between signed and unsigned integer expressions
    sources\myboard.cpp:156: warning: comparison between signed and unsigned integer expressions
    sources\myboard.cpp:164: warning: comparison between signed and unsigned integer expressions
    sources\myboard.cpp: In member function 'void myBoard::winningGameOrNot()':
    sources\myboard.cpp:339: warning: comparison between signed and unsigned integer expressions
    Mais ça n'empêche pas la compil et la création du jeu.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    C'est l'objectif de Qt normalement, d'être portable C'est quand même bien de savoir que ça marche niquel ailleurs, car j'ai codé le truc sous Mac OS X, l'ai mis sur mon GitHub et ne l'ai pas retouché depuis. D'ailleurs, je m'aperçois que ça fait un peu plus d'un an !!! Il y a encore des choses à terminer, quelques commentaires TODO et autres (j'ai relu une bonne partie du code après mon précédent post). Je note tes commit dans le bugtracker de GitHub pour si au cas je faisais une prochaine version ^^

    D'ailleurs, je me demande si je ne t'avais pas déjà passé les sources de cet UnMineMe, Sve@r

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 105
    Par défaut
    Bonjour,
    j'ai très récemment réalisé un jeu du démineur (il y a une semaine),
    a m'a pris environ 5 heures (je 'lai réalisé sous excel en VBA car je suis un flemmard ^^)

    Voici le déroulement basique d'une partie:

    1 - Clic sur commencer (ou sur recommencer)
    Implique:
    -Effacer le jeu précédent (sous excel c'est facile, mais là en C, je sais pas comment tu procède pour générer ta grille)

    -Générer une grille de la taille spécifiée par le joueur( 3 types de grilles + grille personnalisable? c'est toi qui choisis) (idem, aucune idée de ta façon de faire)

    -Implanter un nombre définit de mine dans un nombre définit de cases:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Procédure PoserMines(Entier : NbMines, Entier : NbCases) 
           //tu définit ici le % de chance de poser une mine sur une seule case
           Entier: Chance, ResteAPoser
           ResteAPoser = NbMines
           Chance = (NbMines / NbCases)*100
           Tant Que : ResteAPoser != 0 faire:
                    Pour Chaque Celulle de ta grille faire:
                            Si APoser faire
                                     Si(ResteAPoser != 0) faire
                                            //Ici ton posage de mine, à toi de décider de quelle façon les répérer
                                            ResteAPoser = ResteAPoser - 1
                                     Sinon
                                           Sortir de la boucle Pour //(en C, c'est "break" si je me souviens bien)
                                     finSi
                           FinSi
                    FinPour
           FinTantQue
    FinProcédure
     
     
    Fonction APoser (Entier: Chance) //doit renvoyer un booléen, je ne me souviens plus comment faire sa en C
          Rnd = //Initialisation d'une variable aléatoire
          Si (100 * Rnd) < Chance Faire:
                Retourner Vrai
          Sinon
                Retourner Faux
          FinSi 
    FinFonction

    -Inscrire les nombres de mines adjacentes (aucune idée de la façon de faire, tout dépend de la façon que tu utilise pour réaliser ta grille, voici un algo : )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Procédure MettreNums
          Pour chaque cellule de grille
                //si cellule minée: ne rien faire
                //si cellule vide : 
                       //cellule.valeur = NbMinesAdjacentes(cellule)
               //FinSi
    FinProcédure
     
     
    Fonction NbMinesAdjacentes(cellule ) //renvoie un entier
          //là je n'ai aucune idée de comment tu vas pouvoir t'y prendre... comme je l'ai dit dès le début, vieux maux faire en fonction de ta grille
    FinFonction

    Voilà qui devrais déjà t'aider, quelques petites choses utiles à savoir:


    *Déclare ta grille comme un paramètre global (on à besoin d'y avoir accès quasiment partout)

    *Définit un type de cellule astucieux
    (un minimum serait de faire contenir :
    un entier (nb de mines adjacentes); (éventuellement réserve un nombre inutilisé pour indiquer une mine, exemple: 10)
    un booléen (révélé ou non);
    et éventuellement un booléen supplémentaire (pour indiquer si cette case possède une mine)

Discussions similaires

  1. Algorithme du jeu de Marienbad
    Par dedeu dans le forum Pascal
    Réponses: 4
    Dernier message: 03/06/2009, 23h12
  2. Choix d'algorithmes pour jeu de dames
    Par mick009 dans le forum Débuter
    Réponses: 0
    Dernier message: 12/02/2009, 16h09
  3. Aide pour algorithme sur jeu de dés
    Par fab56 dans le forum Intelligence artificielle
    Réponses: 3
    Dernier message: 29/02/2008, 09h56
  4. probleme avec jeu démineur
    Par wokba dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 16/01/2008, 18h18

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