begin process at 2010 02 09 05:13:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > PUISSANCE 4

PUISSANCE 4


 Information sur la source

Note :
Aucune note
Catégorie :Jeux Source .NET ( DotNet ) Classé sous :Puissance 4, Jeux, Célèbre Niveau :Débutant Date de création :07/12/2008 Date de mise à jour :07/12/2008 22:16:32 Vu / téléchargé :8 279 / 357

Auteur : XelectroX

Ecrire un message privé
Site perso
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 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

Source avec Zip Source avec une capture PLUS OU MOINS par antho974
Source avec Zip Source avec une capture TETRIS EN C++ AVEC SDL par Marmalus
Source avec une capture DÉMINEUR SOUS TERMINAL par aom333
Source avec Zip JEU: MARIO SOKOBAN par astro53
Source avec Zip JEU PUISSANCE IV par ElendilAranwe

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture TETRIS EN C++ AVEC SDL par Marmalus
Source avec Zip JEU: MARIO SOKOBAN par astro53
Source avec Zip TOUR DE HANOI EN C par astro53
Source avec Zip Source avec une capture 2D GAME DIRECT X 9 par nanonavich
Source avec Zip Source avec une capture JEUX DU DÉMINEUR POUR DÉBUTANT par phenix22000

Commentaires et avis

Commentaire de Adeon le 07/12/2008 20:16:31

à vu de nez ( je me trompe peut etre ) a chaque tour, tu fais une vérif sur l'ensemble du plateau, pourquoi ne pas verifier juste sur la ligne, colonne et diagonales, passant par le pion rajouté ?

Commentaire de XelectroX le 07/12/2008 20:18:28

Pas bête :D
Je n'y avais pas pensé ^^

Commentaire de XelectroX le 07/12/2008 21:03:22

J'ai déjà écrit le code horizontal et vertical, mais comment peut-on tester les diagonales en ayant les paramètres X et Y du pion que l'on vient de placer ?

Commentaire de Adeon le 07/12/2008 21:19:59

j'ai jamais fait de ^4 mais à ta place, je ferai partir une boucle du point le plus en haut à gauche de la diagonale concerné et je ferai les test pions apres pions

Commentaire de XelectroX le 07/12/2008 21:35:40

Voilà, j'avais utilisé une autre technique pour les diagonales mais elle est a revérifier, je n'arrive pas à me concentrer pour vérifier mes calculs :p

Commentaire de XelectroX le 07/12/2008 21:42:38

Et à propos, j'ai oublié de changer l'ancien code affiché sur la page, mais celui du fichier est correct

Commentaire de steven38110 le 26/07/2009 19:19:37

comment on fait pour l'avoir?

Commentaire de XelectroX le 29/07/2009 18:38:38

En cliquant sur "Télécharger le ZIP" en dessous de la liste des fichiers

 Ajouter un commentaire


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


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,201 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales