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 :

Initialiser le jeu Apagos


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 14
    Points : 13
    Points
    13
    Par défaut Initialiser le jeu Apagos
    Bonjour,

    Je suis actuellement en L1 Maths Info et notre prof d'algo nous a remis un algorithme à écrire pour le partiel. C'est un algorithme pour jouer au jeu Apagos, dont les règles se trouvent ici :

    http://fr.wikipedia.org/wiki/Apagos

    J'ai fini de rédiger l'algorithme, du coup maintenant je cherche à le rendre moins complexe au niveau de l'écriture, notamment pour initialiser les différentes pièces qui composent le jeu. Actuellement, l'algorithme qui s'en occupe est le suivant :

    ALGO INIT
    
    ENTREES
     | a, b, c, d : NUMERIQUES          } nb d'emplacements totaux sur chaque pièce
    ENTREES / SORTIES
     | piece1, piece2, piece3, piece4 : tableaux de i*j cases          } Avec i les colonnes
     | reserve : tableau de i*i cases                                          } et j les lignes
     | espace : NUMERIQUE          } reste de la place sur pièces ? test de victoire si non
    VARIABLES
     | i, j : NUMERIQUES
    DEBUT
     | Pour i de 1 à 2 faire
     |  | Pour j de 1 à 3 faire
     |  |  | Si i = 1 alors
     |  |  |  | piece1[i,j] <= 0          }
     |  |  |  | piece2[i,j] <= 0          } Initialisation du nombre de 
     |  |  |  | piece3[i,j] <= 0          } billes et d'emplacements 
     |  |  |  | piece4[i,j] <= 0          } sur chaque pièce et sur la réserve
     |  |  |  | reserve[i,j] <= 0        }
     |  |  | Sinon
     |  |  |  | Si j = 1 alors
     |  |  |  |  | piece1[i,j] <= « NOIR(S) »          }
     |  |  |  |  | piece2[i,j] <= « NOIR(S) »          } La première ligne des tableaux
     |  |  |  |  | piece3[i,j] <= « NOIR(S) »          } indiquera le nombre de billes
     |  |  |  |  | piece4[i,j] <= « NOIR(S) »          } noires
     |  |  |  |  | reserve[i,j] <= « NOIR(S) »        }
     |  |  |  | Sinon
     |  |  |  |  | Si j = 2 alors
     |  |  |  |  |  | piece1[i,j] <= « BLANC(S) »          }
     |  |  |  |  |  | piece2[i,j] <= « BLANC(S) »          }
     |  |  |  |  |  | piece3[i,j] <= « BLANC(S) »          } 2° colonne => billes blanches
     |  |  |  |  |  | piece4[i,j] <= « BLANC(S) »          }
     |  |  |  |  |  | reserve[i,j] <= « BLANC(S) »        }
     |  |  |  |  | Sinon
     |  |  |  |  |  | piece1[i,j] <= « VIDE(S) »          }
     |  |  |  |  |  | piece2[i,j] <= « VIDE(S) »          } La troisième uniquement pour les pièces
     |  |  |  |  |  | piece3[i,j] <= « VIDE(S) »          } nb d'emplacements vides
     |  |  |  |  |  | piece4[i,j] <= « VIDE(S) »          }
     |  |  |  |  | FinSi
     |  |  |  | FinSi
     |  |  | FinSi
     |  | FinPour
     | FinPour
     | piece1[1,3] <= a          }
     | piece2[1,3] <= b          } Les emplacements sur
     | piece3[1,3] <= c          } chaque pièce du jeu
     | piece4[1,3] <= d          }
     | reserve[1,2] <= 10          } Le nombre de billes noires disponibles
     | reserve[2,2] <= 10          } Le nombre de billes blanches disponibles
     | espace <= a+b+c+d
    FIN
    Seulement il est un peu long et pour le raccourcir, j'ai pensé utiliser les structures comme me l'a conseillé le prof, mais malgré ses explications, je ne parviens pas à réaliser ces structures. Je requiers donc votre aide pour parvenir à mes fins ^^.

    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Si tu passe à l'utilisation de structure, c'est que tu as un problématique d'implémentation. Et il me semble que ton algorithme est déjà correct par rapport à ce que tu veux faire.


    Pour ce qui est de son écriture :
    1. Tu peux utiliser des sous fonction. (Cela aide beaucoup à la lisibilité)

    Par exemple :
    | | | | piece1[i,j] <= 0 }
    | | | | piece2[i,j] <= 0 } Initialisation du nombre de
    | | | | piece3[i,j] <= 0 } billes et d'emplacements
    | | | | piece4[i,j] <= 0 } sur chaque pièce et sur la réserve
    | | | | reserve[i,j] <= 0 }
    Peut-être remplacer par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     |  |  |  | initilisationPieceEtReserve(i,j,0);
    avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ALGO initilisationPieceEtReserve
    ENTREES
     | i, j, couleur :
    DEBUT
     | piece1[i,j] <= couleur;
     | piece2[i,j] <= couleur;
     | piece3[i,j] <= couleur;
     | piece4[i,j] <= couleur;
     | reserve[i,j] <= couleur;
    FIN
    Après il est important que tu sache ce que représente i et j (potentiellement un renommage ou un commentaire)

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

Discussions similaires

  1. [LG] Jeu mémory : initialisation de tableau
    Par DarkLords dans le forum Langage
    Réponses: 1
    Dernier message: 19/10/2005, 15h13
  2. Quel style de DirectX pour un jeu 2D ?
    Par delire8 dans le forum DirectX
    Réponses: 34
    Dernier message: 31/07/2003, 00h47
  3. Initialisation de XMLModule
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 10
    Dernier message: 01/04/2003, 10h08
  4. initialisation Directinput avec delphi
    Par Madmaxx dans le forum DirectX
    Réponses: 1
    Dernier message: 21/02/2003, 17h37
  5. Une déclaration pour la survie du jeu vidéo en France
    Par Freakazoid dans le forum DirectX
    Réponses: 1
    Dernier message: 30/10/2002, 14h31

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