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
TECHDAYS PARIS 2010 : LES SERVICES D'APPLICATIONS DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LES SERVICES D'APPLICATIONS DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Xavier Moreels et Julien Bakmezdjian Ce sujet est lié au partage des applications comme services dans SharePoint 2010, ceci représente la possibilité de créer sa propre application qui sera utilisable comme ceux en standard : Search...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA GED ET SHAREPOINT 2010TECHDAYS PARIS 2010 : LA GED ET SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Etienne Lacour Cette session a commencé par un rappel de la gestion de contenu et surtout une résumé des points ayant été amélioré avec 2010. Accompagné d'un point sur le cycle de vie des documents. Un rappel du fonctionnement de S...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : SHAREPOINT 2010 ET LES RéSEAUX SOCIAUXTECHDAYS PARIS 2010 : SHAREPOINT 2010 ET LES RéSEAUX SOCIAUX par ROMELARD Fabrice
Animé par: Olivier Lepeltier et Karim Manar Cette session commence par la présentation du concept de réseau social, mais surtout de la particularité de du réseau social dans une entreprise. La vision du réseau social est donc une extension du MyS...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : SHAREPOINT 2010 - DESCRIPTION ET NOUVEAUTéSTECHDAYS PARIS 2010 : SHAREPOINT 2010 - DESCRIPTION ET NOUVEAUTéS par ROMELARD Fabrice
Animé par: Karim Manar et Laurent Beaudouin Cette session a pour but de revenir sur ce qu'est SharePoint globalement, mais aussi de voir les évolutions liées avec l'avènement de la version 2010. A partir de la marguerite de...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE LUNDITECHDAYS PARIS 2010 : PLEINIèRE LUNDI par ROMELARD Fabrice
Comme chaque année, c'est le grand rassemblement autour des technologies Microsoft qui se déroule donc à Paris au Palais des Congrès. Cette année est riche pour Microsoft en terme de livraison produit, paris l...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|