Accueil > > > PUISSANCE 4
PUISSANCE 4
Information sur la source
Description
Le célèbre jeu Puissance 4 Ceci est ma première source C++ donc j'aimerai bien avoir quelques critiques et corrections. Ceci est aussi un de mes premiers jeux dans la programmation. Il y a un bug, mais je n'ai toujours pas trouvé qu'est-ce qui ce passe ni pourquoi, en général, c'est quand on arrive tout en haut, il dit qu'un es joueurs a gagné, ce qui n'est pas le cas.
Source
- //Test si gagnant
- private: void CheckGrid(int X, int Y)
- {
- Libres -= 1;
- //Match nul
- if(Libres == 0){
- MessageBox::Show("Match nul !!","Gagné",MessageBoxButtons::OK);
- Restart();
- return;
- }
-
- // Haut et bas
- int YPlus = 1; //Le pion qu'on vient de placer
- for(int i=Y+1;i<7;i++){
- if(Pions[X][i] == Pions[X][Y])
- YPlus += 1;
- else
- i = 7; //quitte la boucle
- }
- for(int i=Y-1;i>-1;i--){
- if(Pions[X][i] == Pions[X][Y])
- YPlus += 1;
- else
- i = -1; //quitte la boucle
- }
- if(YPlus >= 4){
- if(Pions[X][Y] == 1)
- MessageBox::Show("Jaune a gagné !!","Gagné",MessageBoxButtons::OK);
- else
- MessageBox::Show("Rouge a gagné !!","Gagné",MessageBoxButtons::OK);
- Restart();
- return;
- }
-
- //Gauche et droite
- int XPlus = 1; //Le pion qu'on vient de placer
- for(int i=X+1;i<6;i++){
- if(Pions[i][Y] == Pions[X][Y])
- XPlus += 1;
- else
- i = 6; //quitte la boucle
- }
- for(int i=X-1;i>-1;i--){
- if(Pions[i][Y] == Pions[X][Y])
- XPlus += 1;
- else
- i = -1; //quitte la boucle
- }
- if(XPlus >= 4){
- if(Pions[X][Y] == 1)
- MessageBox::Show("Jaune a gagné !!","Gagné",MessageBoxButtons::OK);
- else
- MessageBox::Show("Rouge a gagné !!","Gagné",MessageBoxButtons::OK);
- Restart();
- return;
- }
-
- //Diagonale 1
- int XY1Plus = 1; //Le pion qu'on vient de placer
- for(int i=X+1, i2=Y+1;i<7 && i2<6;i++, i2++){
- if(Pions[i][i2] == Pions[X][Y])
- XY1Plus += 1;
- else
- i = 6; //quitte la boucle
- }
- for(int i=X-1, i2=Y-1;i>-1 && i2>-1;i--, i2--){
- if(Pions[i][i2] == Pions[X][Y])
- XY1Plus += 1;
- else
- i = -1; //quitte la boucle
- }
- if(XY1Plus >= 4){
- if(Pions[X][Y] == 1)
- MessageBox::Show("Jaune a gagné !!","Gagné",MessageBoxButtons::OK);
- else
- MessageBox::Show("Rouge a gagné !!","Gagné",MessageBoxButtons::OK);
- Restart();
- return;
- }
-
- //Diagonale 2
- int XY2Plus = 1; //Le pion qu'on vient de placer
- for(int i=X-1, i2=Y+1;i<7 && i2>-1;i++, i2--){
- if(Pions[i][i2] == Pions[X][Y])
- XY1Plus += 1;
- else
- i = 6; //quitte la boucle
- }
- for(int i=X-1, i2=Y+1;i>-1 && i2<7;i--, i2++){
- if(Pions[i][i2] == Pions[X][Y])
- XY2Plus += 1;
- else
- i = -1; //quitte la boucle
- }
- if(XY2Plus >= 4){
- if(Pions[X][Y] == 1)
- MessageBox::Show("Jaune a gagné !!","Gagné",MessageBoxButtons::OK);
- else
- MessageBox::Show("Rouge a gagné !!","Gagné",MessageBoxButtons::OK);
- Restart();
- return;
- }
- }
//Test si gagnant
private: void CheckGrid(int X, int Y)
{
Libres -= 1;
//Match nul
if(Libres == 0){
MessageBox::Show("Match nul !!","Gagné",MessageBoxButtons::OK);
Restart();
return;
}
// Haut et bas
int YPlus = 1; //Le pion qu'on vient de placer
for(int i=Y+1;i<7;i++){
if(Pions[X][i] == Pions[X][Y])
YPlus += 1;
else
i = 7; //quitte la boucle
}
for(int i=Y-1;i>-1;i--){
if(Pions[X][i] == Pions[X][Y])
YPlus += 1;
else
i = -1; //quitte la boucle
}
if(YPlus >= 4){
if(Pions[X][Y] == 1)
MessageBox::Show("Jaune a gagné !!","Gagné",MessageBoxButtons::OK);
else
MessageBox::Show("Rouge a gagné !!","Gagné",MessageBoxButtons::OK);
Restart();
return;
}
//Gauche et droite
int XPlus = 1; //Le pion qu'on vient de placer
for(int i=X+1;i<6;i++){
if(Pions[i][Y] == Pions[X][Y])
XPlus += 1;
else
i = 6; //quitte la boucle
}
for(int i=X-1;i>-1;i--){
if(Pions[i][Y] == Pions[X][Y])
XPlus += 1;
else
i = -1; //quitte la boucle
}
if(XPlus >= 4){
if(Pions[X][Y] == 1)
MessageBox::Show("Jaune a gagné !!","Gagné",MessageBoxButtons::OK);
else
MessageBox::Show("Rouge a gagné !!","Gagné",MessageBoxButtons::OK);
Restart();
return;
}
//Diagonale 1
int XY1Plus = 1; //Le pion qu'on vient de placer
for(int i=X+1, i2=Y+1;i<7 && i2<6;i++, i2++){
if(Pions[i][i2] == Pions[X][Y])
XY1Plus += 1;
else
i = 6; //quitte la boucle
}
for(int i=X-1, i2=Y-1;i>-1 && i2>-1;i--, i2--){
if(Pions[i][i2] == Pions[X][Y])
XY1Plus += 1;
else
i = -1; //quitte la boucle
}
if(XY1Plus >= 4){
if(Pions[X][Y] == 1)
MessageBox::Show("Jaune a gagné !!","Gagné",MessageBoxButtons::OK);
else
MessageBox::Show("Rouge a gagné !!","Gagné",MessageBoxButtons::OK);
Restart();
return;
}
//Diagonale 2
int XY2Plus = 1; //Le pion qu'on vient de placer
for(int i=X-1, i2=Y+1;i<7 && i2>-1;i++, i2--){
if(Pions[i][i2] == Pions[X][Y])
XY1Plus += 1;
else
i = 6; //quitte la boucle
}
for(int i=X-1, i2=Y+1;i>-1 && i2<7;i--, i2++){
if(Pions[i][i2] == Pions[X][Y])
XY2Plus += 1;
else
i = -1; //quitte la boucle
}
if(XY2Plus >= 4){
if(Pions[X][Y] == 1)
MessageBox::Show("Jaune a gagné !!","Gagné",MessageBoxButtons::OK);
else
MessageBox::Show("Rouge a gagné !!","Gagné",MessageBoxButtons::OK);
Restart();
return;
}
}
Conclusion
Peut-être que dans une version future, je rajouterai la possibilité réseau.
Historique
- 07 décembre 2008 21:33:37 :
- Test de gagnants seulement par rapport au dernier pion placé
- 07 décembre 2008 21:33:59 :
- Test de gagnants seulement par rapport au dernier pion placé
Toujours bug lors des tests
- 07 décembre 2008 22:10:37 :
- Test match nul + correction du code affiché sur la page
- 07 décembre 2008 22:16:32 :
- Encore oublié des détails à la fin du test "Diagonale 2" :s !! Désolé, je commence a fatiguer :P
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
jeux d'echecs en c++ [ par ptitlouis68 ]
Je dois realiser un projet de jeu d'echecs en c++ avec microsoft visual studio c++.Je recherche un code source de ce jeux ayant comme bibliotheque gra
jeux de dame en language C++ (TURBO C) avis aux pros!!!!! [ par saitek ]
salut a toi si tu es 1 pro du C++ pourrais tu faire ce programme je suis trop mauvais pour le faire alors si tu te sens capable de le faire je ne dema
question pour logiciel sur jeux video [ par glash ]
lut,J'ai créé une sorte de répertoire pour les serveurs de jeux et j'aimerai y mettre un fonction qui permettent de rejoindre le serveur rien qu'en ta
Lire un fichier texte ! [ par arconius ]
Voilà j'ai créer un jeux galaxian dans lequel je marque des points en tuant des ennemis. J'arrive à eccrire mon score dans un fichier texte mais je n'
Jeux [ par skone007 ]
SKone007 c'est moi je travaille avec 2 autres programeurs, 2 designer, 1 bruiteur et je charche d'autre personne pour faire ce jeux de voiture, il nou
jeux [ par dahu111 ]
Je cherche un jeu de mini golf en c++ !!!!merci de me repondre : dahu111@free.fr
le programme du jeux taquin en c [ par mbodj ]
Merci de me faire part un bout de programme taquin en c
jeux d'echec [ par jawad75 ]
salut tous le mondeje voulais juste savoir si qlq un a deja developpe un simple jeux d'echec en c++ et qui peu me donne un coup de mainmerci d'avance
jeux [ par dahu111 ]
je recherche un programme de minin golf en c++ pour devc++ ou turbo c , merci d'avance
CONTRÔLE DU PORT PARRALLÈLE ET JEUX DE LUMIÈRE [ par re12 ]
Bonjourje suis un novice(mais vraiment!!!) en programation, en gros je sais pas faire(a part le html)ce programme me plait (http://www.cppfrance.com/a
|
Derniers Blogs
[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010!LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010! par MPOWARE
Toutes les vidéos de ce lancement sont en ligne!
Partie I - Intro
http://www.youtube.com/watch?v=LkQzTQ8T6CA
Partie II - Démo 1
http://www.youtube.com/watch?v=drAhYQ7lqvo
Partie III - Démo 2
http://www.youtube.com/watch?v=c8KM_1Gqybc...
Cliquez pour lire la suite de l'article par MPOWARE
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|