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

Free Pascal Discussion :

Enlever une procédure d'un programme


Sujet :

Free Pascal

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Enlever une procédure d'un programme
    Bonjour, je fais un Yahtzee en cours de programmation. Dans les règles, il est dit qu'une procédure ne peut pas être choisie deux fois. Pouvez-vous me dire comment je peux programmer cette règle ?

  2. #2
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 552
    Points : 3 920
    Points
    3 920
    Par défaut
    Salut

    Dans les règles de quoi ? qu'entends-tu par procédure ?

    @+

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Je ne sais si vous connaissez les règles du yahtzee mais on est toujours obligé de remplir une case. Puisque la case est remplie, on ne peut la choisir qu'une fois. C'est pour sa que je demande si c'est possible d'enlever une procédure...
    Si cela peut vous aider voici une partie du programme...
    Ce sont les procédures de 1 à 13 qui peuvent etre susceptible d'être enlevées
    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
    29
    30
    31
    32
    begin
    {1.Déterminer le nom du joueur}
    writeln('Quel est le nom du joueur 1 ?');
    readln (nom);
    {2. Début du jeu}
    writeln (nom,' à votre tour , appuyer sur ENTER pour commencer');
    readln();
    total1:=0;
    total2:=0;
    clrscr;
    LANCEDE;
    CHOIX ;
    Case ChoixP of
    1 : UN;
    2: DEUX;
    3: TROIS;
    4: QUATRE;
    5: CINQ;
    6: SIX;
    7: BRELAN;
    8: CARRE;
    9: FULL;
    10: PSUITE;
    11: GSUITE;
    12: YAHTZEE;
    13: CHANCE;
    End;
    if total1> 63 then total1:=total1+ 35;
    writeln ('Le score total 1 est égal à ',total1,'points');
    writeln ('Le score total 2 est égal à ',total2,'points');
    readln();
    end.
    Merci de votre aide

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Hoe,

    Ok.

    Tu ne peux pas "enlever" de procédures de ton programme.

    Ce qu'il te faut, c'est interdire le les appeler.

    Un tableau de booléens suffira pour ça : chaque case initialisée à false, et devient true après l'utilisation de la procédure.

    Au passage, il serait sympa de changer l'affichage du menu de choix, soit en supprimant les procédures déjà utilisées, soit en en changeant la couleur d'affichage (par exemple vert pour celles qui sont encore accessibles, rouge pour les autres).

    Si les cons volaient, il ferait nuit à midi.

  5. #5
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 552
    Points : 3 920
    Points
    3 920
    Par défaut
    Salut

    Si j'ai à peu près compris ton besoin, le code fourni est assez lacunaire.

    Dans la procédure Choix, l'utilisateur indique ce qu'il veut faire mais sous la contrainte de ne pas pouvoir recommencer une "procédure" (i.e. une forme de lancé) déjà jouée, sachant qu'elles sont toutes permises au départ.

    Une solution simple consiste à créer un tableau d'autant de booléens qu'il y a de procédures (13 en l'occurrence) qui indique si une procédure a été jouée (True) ou non (False). Au départ toutes les procédures sont permises donc toutes les valeurs du tableau sont égales à False. Puis à chaque coup, tu passes le booléen correspondant à True. Dans ta procédure Choix, tu peux alors n'afficher que les choix restants et contrôler aussi la saisie du joueur.

    Cette solution est simple, tout réside dans la procédure Choix, le choix multiple n'est pas remis en question.

    Pour commencer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var
      CoupJoue: array[1..13] of boolean;
    La suite, à toi de chercher un peu...

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  6. #6
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 552
    Points : 3 920
    Points
    3 920
    Par défaut
    Droggo m'a grillé la politesse à qques minutes près

    @+

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

Discussions similaires

  1. [Lazarus] Rendre une procédure accessible au programme utilisant l'unité
    Par Darkyl dans le forum Lazarus
    Réponses: 6
    Dernier message: 11/05/2015, 19h56
  2. Réponses: 4
    Dernier message: 03/05/2008, 11h54
  3. Récupérer les lignes d'une procédure SQL Server dans le programme VB.NET
    Par Mikelester12 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 30/07/2007, 11h33
  4. Réponses: 18
    Dernier message: 04/06/2007, 00h55
  5. Fin de programme dans une procédure
    Par Sinclair dans le forum Langage
    Réponses: 13
    Dernier message: 29/11/2002, 22h30

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