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

Contribuez Pascal Discussion :

Puissance 4 mode texte


Sujet :

Contribuez Pascal

  1. #1
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut Puissance 4 mode texte
    Bonjour !

    Je vous présente mon essai d'un Puissance 4.

    L'algorithme utilisé pour les coups de l'ordinateur est tout simple. Il se base sur trois principes : le score maximal de l'adversaire au coup suivant, le nombre de réalisations de ce score maximal et enfin une prime pour les coups au centre.

    Vous me direz si vous arrivez à le battre.

    L'interface est en mode texte et ne contient que le strict minimum. Je n'ai pas le courage de faire mieux pour le moment ! En fait, c'est surtout la représentation interne du jeu et l'évaluation qui m'intéressaient.

    Je n'ai testé la compilation qu'avec TP7. J'ai un doute concernant les autres compilateurs à cause d'une fonction en assembleur que j'ai utilisée pour rendre le curseur invisible.

    Images attachées Images attachées  
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 415
    Points
    59 415
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Je l'ai battu !

    La difficulté proposée est très correcte. Très beau programme, bravo !
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut Type Object
    Citation Envoyé par Alcatîz Voir le message
    La difficulté proposée est très correcte. Très beau programme, bravo !
    Merci Alcatîz !

    J'ai supprimé la fonction qui servait à cacher le curseur. C'est moins joli comme ça, mais on peut compiler avec Free-Pascal ou Virtual-Pascal.

    C'est bien comme jeu, "Puissance-4". Plus facile que les échecs...

    Voici le début d'une nouvelle version. La grille de jeu est désormais un objet.

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
     
    { Programme Turbo Pascal
     
      Grille pour le jeu Puissance-4
     
      Exemple d'emploi du type OBJECT
    }
     
    program p4;
     
    uses crt;
     
    {$B-}
     
    const
      rouge = -1;
      neant =  0;
      jaune =  1;
     
    type
      tPion = rouge .. jaune;
     
      tGrille = object
        contenu: array [0..6, 0..5] of tPion;
        trait: tPion; { à qui le tour }
        procedure nouvelle;
        procedure represente;
        function ajoute(x: byte): boolean;
        { x est la colonne choisie, de 0 à 6 }
      end;
     
    procedure tGrille.nouvelle;
     
      var x,y: byte;
     
      begin
     
        for x:=0 to 6 do
          for y:=0 to 5 do
            contenu[x,y]:=neant;
     
        trait:=jaune;
     
      end;
     
    procedure tGrille.represente;
     
      var x,y: byte;
     
      begin
     
        for y:=5 downto 0 do
          begin
            for x:=0 to 6 do
              begin
                write('[');
                case contenu[x,y] of
                  rouge: textcolor(lightred);
                  neant: textcolor(black);
                  jaune: textcolor(yellow);
                end;
                write('*');
                textcolor(lightgray);
                write(']');
              end;
            writeln;
          end;
        writeln;
      end;
     
    function tGrille.ajoute(x: byte): boolean;
     
      var y: byte;
     
      begin
        if contenu[x,5]<>neant then ajoute:=false else
     
        { Si la colonne x est pleine, la fonction renvoie la valeur "false".
          Dans le cas contraire, le pion est ajouté, et la fonction renvoie
          la valeur "true".
        }
          begin
     
            y:=5;
     
            ajoute:=true;
     
            while ( y > 0 ) and ( contenu[x,y-1] = neant ) do dec(y);
     
            { Avec la directive de compilation $B+, cette ligne produirait
              une erreur dans un certain cas. Quelle erreur, et quel cas ?
            }
     
            contenu[x,y]:=trait;
     
            trait:= -1 * trait;
     
          end;
      end;
     
    var
      courante: tGrille;
     
    begin
      clrscr;
      courante.nouvelle;
      courante.represente;
      courante.ajoute(3);
      courante.represente;
      courante.ajoute(4);
      courante.represente;
      readkey;
    end.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    à quand la version FlashPascal ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    à quand la version FlashPascal ?
    J'y pense et même j'y travaille.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  6. #6
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Un confrère russe a fait un joli "Puissance-4" qui fonctionne avec mon algorithme. Je l'avais réécrit en Basic, et c'est cette version qui a été utilisée. Je sais que je ne devrais pas en parler ici, puisque ce n'est pas un programme en Pascal. Je vais sûrement me faire gronder.

    Mais je n'ai pas d'autre endroit où en parler (en français). Et puis, vous comprendrez que ça me fasse plaisir de vous le montrer.

    L'archive contient un exécutable.

    Discussion
    Téléchargement
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  7. #7
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Excellent
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  8. #8
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    Excellent
    N'est-ce pas?

    C'est l'un des côtés que j'aime bien dans le Basic, et dans FreeBasic en particulier. L'activité sur le forum anglais est impressionnante, la qualité et la variété des contributions également.

    Pour revenir au Pascal et à "Puissance-4", j'ai commencé à travailler sur une version Flash-Pascal, à partir de ton démineur. Je ne sais si j'y arriverai de cette façon-là, mais j'ai au moins appris des choses en étudiant ton code.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  9. #9
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    Excellent

  10. #10
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    Je vous présente une nouvelle version de mon "Puissance 4", en mode console et "orienté objet". Il n'y a quasiment pas d'interface, parce que mon idée était d'écrire du code qui puisse être utilisé pour différents projets. Le programme se compile aussi bien avec TP7 qu'avec Delphi XE2. (Avec ce dernier toutefois vous n'aurez que des pions en noir et blanc, puisqu'à ma connaissance il n'y a pas de Crt disponible pour cette version de Delphi.)

    L'archive ci-jointe inclut les fichiers (ico, rc, bat, res) dont je me suis servi pour joindre une icône à mon application console.

    Pour jouer, entrez une lettre de a à g. Toute autre saisie est interprétée comme un ordre d'arrêter le programme.
    Fichiers attachés Fichiers attachés
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  11. #11
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    hello!

    très bien ton puissance 4
    J'en avait fait un en 2006 mais source perdu ...

    et le score contre moi j'ai perdu 2fois , et une égalité

    Et tu as raison : plus facile que les échecs

    bonne soirée

Discussions similaires

  1. affichage de tabulations en mode texte à partir de XSL
    Par closo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 24/02/2004, 16h36
  2. [TP]Optimiser le rafraîchissement de l'écran en mode texte?
    Par Ponytear dans le forum Turbo Pascal
    Réponses: 8
    Dernier message: 15/02/2004, 11h12
  3. Probleme d'ecriture dans un fichier en mode Text
    Par bbozet dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/01/2004, 13h46
  4. Retour au mode texte par défaut
    Par coca dans le forum x86 16-bits
    Réponses: 6
    Dernier message: 12/12/2002, 17h22
  5. Réponses: 5
    Dernier message: 11/12/2002, 12h31

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