Précédent   Forum du club des développeurs et IT Pro > Autres langages > Pascal > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, FAQ, quizz et autres ressources
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 13/05/2012, 11h36   #1
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 687
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 687
Points : 1 001
Points : 1 001
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
Type de fichier : png P4.png (6,2 Ko, 14 affichages)
__________________
L'Art est long et le Temps est court.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/05/2012, 13h18   #2
Alcatîz
Responsable Pascal

 
Avatar de Alcatîz
 
Homme Jean-Luc Gofflot
Ressources humaines
Inscription : mars 2003
Messages : 5 507
Détails du profil
Informations personnelles :
Nom : Homme Jean-Luc Gofflot
Âge : 46
Localisation : Belgique

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

Informations forums :
Inscription : mars 2003
Messages : 5 507
Points : 39 326
Points : 39 326
Envoyer un message via ICQ à Alcatîz Envoyer un message via MSN à Alcatîz Envoyer un message via Yahoo à Alcatîz Envoyer un message via Skype™ à Alcatîz
Bonjour,

Je l'ai battu !

La difficulté proposée est très correcte. Très beau programme, bravo !
__________________
Règles du forum
Tutoriels, exercices, FAQ, sources, compilateurs, outils, livres Pascal
Mes tutoriels et sources Pascal
FAQ Assembleur

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]
Alcatîz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2012, 14h56   #3
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 687
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 687
Points : 1 001
Points : 1 001
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 :
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.
__________________
L'Art est long et le Temps est court.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2012, 18h26   #4
Paul TOTH
Expert Confirmé Sénior
 
Avatar de Paul TOTH
 
Homme Paul TOTH
Freelance
Inscription : novembre 2002
Messages : 4 395
Détails du profil
Informations personnelles :
Nom : Homme Paul TOTH
Âge : 43
Localisation : Réunion

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

Informations forums :
Inscription : novembre 2002
Messages : 4 395
Points : 10 736
Points : 10 736
à quand la version FlashPascal ?
__________________
Developpez.com: Mes articles, forum FlashPascal
Entreprise: Execute SARL
Produits : UPnP, RemoteOffice, FlashPascal
Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%
Paul TOTH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2012, 09h43   #5
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 687
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 687
Points : 1 001
Points : 1 001
Citation:
Envoyé par Paul TOTH Voir le message
à quand la version FlashPascal ?
J'y pense et même j'y travaille.
__________________
L'Art est long et le Temps est court.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2012, 20h51   #6
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 687
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 687
Points : 1 001
Points : 1 001
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
__________________
L'Art est long et le Temps est court.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/06/2012, 12h22   #7
Paul TOTH
Expert Confirmé Sénior
 
Avatar de Paul TOTH
 
Homme Paul TOTH
Freelance
Inscription : novembre 2002
Messages : 4 395
Détails du profil
Informations personnelles :
Nom : Homme Paul TOTH
Âge : 43
Localisation : Réunion

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

Informations forums :
Inscription : novembre 2002
Messages : 4 395
Points : 10 736
Points : 10 736
Excellent
__________________
Developpez.com: Mes articles, forum FlashPascal
Entreprise: Execute SARL
Produits : UPnP, RemoteOffice, FlashPascal
Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%
Paul TOTH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2012, 12h01   #8
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 687
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 687
Points : 1 001
Points : 1 001
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.
__________________
L'Art est long et le Temps est court.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2012, 21h49   #9
Archimède
Membre émérite
 
Avatar de Archimède
 
Homme anthony
Enseignant
Inscription : avril 2005
Messages : 1 026
Détails du profil
Informations personnelles :
Nom : Homme anthony
Localisation : France, Charente Maritime (Poitou Charente)

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : avril 2005
Messages : 1 026
Points : 975
Points : 975
Excellent
__________________
Citation:
tout développeur plongé dans son code subit une poussée d'urticaire de bas en haut égale au poids du volume d'unités qu'il ajoute.
Archimède est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2012, 18h11   #10
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 687
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 687
Points : 1 001
Points : 1 001
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
Type de fichier : zip Quatre.zip (17,4 Ko, 4 affichages)
__________________
L'Art est long et le Temps est court.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2012, 23h04   #11
dany135
Invité régulier
 
Homme dany
Inscription : septembre 2012
Messages : 15
Détails du profil
Informations personnelles :
Nom : Homme dany
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : septembre 2012
Messages : 15
Points : 9
Points : 9
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
dany135 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h36.


 
 
 
 
Partenaires

Hébergement Web