Puissance 4

Soyez le premier à donner votre avis sur cette source.

Vue 8 521 fois - Téléchargée 616 fois

Description

jeu du puissance 4 pour 2 joueurs

Source / Exemple :



  • Déclaration des différentes librairies utilisées:
notamment iostream pour "cout" , "cin", ... stdio pour "gets"
  • /
#include<iostream.h> #include<stdio.h> void main() { // Déclaration des differentes variables utilisées pour le programme : char nom1[20], nom2[20] ; int i,j,num; int h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,num1; int jeu[10][10]; int gagne , gagne2; //initialisation de certaines variables: gagne=0;gagne2=0; h0=0;h1=0;h2=0;h3=0;h4=0;h5=0;h6=0;h7=0;h8=0;h9=0; //Affichage de la premiere page: cout<<" \02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\n"; cout<<" \02 \02\n"; cout<<" \02 \02\n"; cout<<" \02 BIENVENUE DANS LE PUISSANCE 4 \02\n"; cout<<" \02 \02\n"; cout<<" \02 DE LA FAB's COMPAGNIE \02\n"; cout<<" \02 \02\n"; cout<<" \02 !!!!!!!!!!!!!!!! \02\n"; cout<<" \02 \02\n"; cout<<" \02 \02\n"; cout<<" \02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\n"; //Saisie des noms des deux joueurs: cout<<"\n\n\n\nQuel est votre nom?\n"; gets (nom1); cout<<"Quel est votre nom?\n"; gets (nom2); //initialisation du tableau, toutes les cases ont pour valeur 0, soit cases vides for(i=0;i<10;i++) { for(j=0;j<10;j++) { jeu[i][j]=0; } } //Affichage du plateau de jeu vide cout<<"0 1 2 3 4 5 6 7 8 9\n\n"; for(j=9;j>=0;j--) { for(i=0;i<10;i++) { cout<<jeu[i][j]<<" "; } cout<<"\n"; } cout<<"\n0 1 2 3 4 5 6 7 8 9\n"; //Tant qu' un joueur n'a pas gagné le pgm demande de jouer do { do { //Saisie de la colonne à jouer: cout<<"a vous de jouer "<<nom1<<",donner un numero de colonne (de 0 a 9):"; cin>> num; cout<<"\n"; //Test sur la hauteur des colonnes , si elles sont remplioes ou non: if(( num==0 && h0>9 )|| (num==1 && h1>9) || (num==2 && h2>9) || (num==3 && h3>9) || (num==4 && h4>9 )||( num==5 && h5>9) || (num==6 && h6>9 )|| (num==7 && h7>9 )|| (num==8 && h8>9 )||( num==9 && h9>9) ) { cout<<"la colonne "<<num<<" est pleine, "<<nom1<<" donner un numero de colone autre que "<<num<<"\n"; //Dans le cas ou la colonne est pleine, numvaut -1 ainsi retour à la demande grace aux " do while" num = -1; } // Test sur valeur donnée par le joueur, demande de rejouer si la valeur est inférieure à 0: }while(num<0 || num>9); //Donne la valeur 1 à la case jouée par le joueur 1: if(num==0) jeu[num][h0]=1; if(num==1) jeu[num][h1]=1; if(num==2) jeu[num][h2]=1; if(num==3) jeu[num][h3]=1; if(num==4) jeu[num][h4]=1; if(num==5) jeu[num][h5]=1; if(num==6) jeu[num][h6]=1; if(num==7) jeu[num][h7]=1; if(num==8) jeu[num][h8]=1; if(num==9) jeu[num][h9]=1; //Vérification horizontale pour savoir si le joueur a gagné: //On balaye toutes les lignes de 0 à 9 en vérifiant 4 cases à chaque fois //Si 4 cases qui se suivent valent 1 alors gagne vaut 1 for(i=0;i<7;i++) { for(j=0;j<10;j++) { if(jeu[i][j]==1 && jeu[i+1][j]==1 && jeu[i+2][j]==1 && jeu[i+3][j]==1) gagne=1; } } //Vérification verticale pour savoir si le joueur a gagné: //On balaye toutes les colonnes de 0 à 9 en vérifiant 4 cases à chaque fois //Si 4 cases qui se suivent valent 1 alors gagne vaut 1 for(i=0;i<10;i++) { for(j=0;j<7;j++) { if(jeu[i][j]==1 && jeu[i][j+1]==1 && jeu[i][j+2]==1 && jeu[i][j+3]==1) gagne=1; } } //Vérification diagonale (en bas à gauche vers en haut à droite) pour savoir si le joueur a gagné: //On balaye toutes les diagonales de cette direction en vérifiant 4 cases à chaque fois //Si 4 cases qui se suivent valent 1 alors gagne vaut 1 for(i=0;i<10;i++) { for(j=0;j<10;j++) { if(jeu[i][j]==1 && jeu[i+1][j+1]==1 && jeu[i+2][j+2]==1 && jeu[i+3][j+3]==1) gagne=1; } } //Vérification diagonale (en bas à droite vers en haut à gauche) pour savoir si le joueur a gagné: //On balaye toutes les diagonales de cette direction en vérifiant 4 cases à chaque fois //Si 4 cases qui se suivent valent 1 alors gagne vaut 1 for(j=0;j<10;j++) { for(i=9;i>=0;i--) { if(jeu[i][j]==1 && jeu[i-1][j+1]==1 && jeu[i-2][j+2]==1 && jeu[i-3][j+3]==1) gagne=1; } } //Affichage: cout<<"0 1 2 3 4 5 6 7 8 9\n\n"; for(j=9;j>=0;j--) { for(i=0;i<10;i++) { cout<<jeu[i][j]<<" "; } cout<<"\n"; } cout<<"\n0 1 2 3 4 5 6 7 8 9\n"; //on incrémente la hauteur d'une colonne à chaque fois que celle si est jouée: if(num==0) jeu[num][h0++]; if(num==1) jeu[num][h1++]; if(num==2) jeu[num][h2++]; if(num==3) jeu[num][h3++]; if(num==4) jeu[num][h4++]; if(num==5) jeu[num][h5++]; if(num==6) jeu[num][h6++]; if(num==7) jeu[num][h7++]; if(num==8) jeu[num][h8++]; if(num==9) jeu[num][h9++]; //test pour savoir si le joueur 1 a gagné , si c est le cas alors arret du pgm grace au break: if(gagne==1) { cout<<"\01"<<nom1<<" a gagne!!!\01\n"; break; } do { cout<<"a vous de jouer "<<nom2<<",donner un numero de colonne (de 0 a 9):"; cin>> num1; cout<<"\n"; if(( num==0 && h0>9 )|| (num==1 && h1>9) || (num==2 && h2>9) || (num==3 && h3>9) || (num==4 && h4>9 )||( num==5 && h5>9) || (num==6 && h6>9 )|| (num==7 && h7>9 )|| (num==8 && h8>9 )||( num==9 && h9>9) ) { cout<<"la colonne "<<num<<" est pleine, "<<nom2<<" donner un numero de colone autre que "<<num<<"\n"; num=-1; } }while(num<0 || num>9 ); if(num1==0) jeu[num1][h0]=2; if(num1==1) jeu[num1][h1]=2; if(num1==2) jeu[num1][h2]=2; if(num1==3) jeu[num1][h3]=2; if(num1==4) jeu[num1][h4]=2; if(num1==5) jeu[num1][h5]=2; if(num1==6) jeu[num1][h6]=2; if(num1==7) jeu[num1][h7]=2; if(num1==8) jeu[num1][h8]=2; if(num1==9) jeu[num1][h9]=2; for(i=0;i<7;i++) { for(j=0;j<10;j++) { if(jeu[i][j]==2 && jeu[i+1][j]==2 && jeu[i+2][j]==2 && jeu[i+3][j]==2) gagne2=2; } } for(i=0;i<10;i++) { for(j=0;j<7;j++) { if(jeu[i][j]==2 && jeu[i][j+1]==2 && jeu[i][j+2]==2 && jeu[i][j+3]==2) gagne2=2; } } for(i=0;i<10;i++) { for(j=0;j<10;j++) { if(jeu[i][j]==2 && jeu[i+1][j+1]==2 && jeu[i+2][j+2]==2 && jeu[i+3][j+3]==2) gagne2=2; } } for(j=0;j<10;j++) { for(i=9;i>=0;i--) { if(jeu[i][j]==2 && jeu[i-1][j+1]==2 && jeu[i-2][j+2]==2 && jeu[i-3][j+3]==2) gagne2=2; } } cout<<"0 1 2 3 4 5 6 7 8 9\n\n"; for(j=9;j>=0;j--) { for(i=0;i<10;i++) { cout<<jeu[i][j]<<" "; } cout<<"\n"; } cout<<"\n0 1 2 3 4 5 6 7 8 9\n"; if(gagne2==2) { cout<<"\01"<<nom2<<" a gagne!!!\01\n"; break; } if(num1==0) jeu[num1][h0++]; if(num1==1) jeu[num1][h1++]; if(num1==2) jeu[num1][h2++]; if(num1==3) jeu[num1][h3++]; if(num1==4) jeu[num1][h4++]; if(num1==5) jeu[num1][h5++]; if(num1==6) jeu[num1][h6++]; if(num1==7) jeu[num1][h7++]; if(num1==8) jeu[num1][h8++]; if(num1==9) jeu[num1][h9++]; //le programme s arrete qd un des deux joueur à gagner: }while(gagne!=1 || gagne2!=2); }

Conclusion :


desolé pas de fonctions!!!!
mais ya un peu de commentaires!!! ;)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cmarsc
Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003
-
on peut utiliser cin pour saisir les entrées de textes gets n'est pas indispensable
de plus des couleurs permettront de mieux comprendre les positions des joueurs et si possble gotoxy pour avoir les textes fixes.

cout<<"0 1 2 3 4 5 6 7 8 9

"; faire plus d'espaces pour la lisibilité du jeu
un if trop long peut être coupé en plusieurs parties sans problème
NeoWerner
Messages postés
11
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
1 juillet 2004
-
cmarsc : le probleme est que la fonction gotoxy n'est pas une fonction c/c++ mais une fonction particuliere a Borland. (idem pour les fonctions des couleurs)
supervegeta76
Messages postés
1
Date d'inscription
dimanche 4 décembre 2005
Statut
Membre
Dernière intervention
11 juillet 2006
-
c'est du javascript?
darwyn008
Messages postés
5
Date d'inscription
lundi 19 novembre 2007
Statut
Membre
Dernière intervention
30 janvier 2008
-
c est du C ^^
cppmaster93
Messages postés
4
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
23 mai 2008
-
Bonjour,

un jeu excellent qui vient de nous procurer à moi et à mes amis des heures de plaisir fou :-)
Bravo pour cette source, il y a bien deux ou trois choses à améliorer mais pour un programme aussi complexe ce n'est pas étonnant.
Tu devrais ajouter un lien paypal pour faire un don à la Fab's Compagnie, au moins on saurait que notre argent est dépensé à bon escient ;-)

Encore merci, tu as illuminé ma soirée.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.