Soyez le premier à donner votre avis sur cette source.
Snippet vu 6 149 fois - Téléchargée 38 fois
#include <iostream.h> #include <conio.h> #include <windows.h> const char NOIR = '\xb0', BLANC = '\xb2'; bool Case_Blanc[4][4]; bool Case_Noir[4][4]; char Afficher(char Couleur); bool Empiler(int Pile, int Col, char Couleur); bool Nulle(int Pile1, int Pile2, int Pile3, int Pile4, bool Win); void Boite(); void initialisation(); void main(void) { char Jeton_Blanc, Jeton_Noir; int Pile1, Pile2, Pile3, Pile4, Reponse, Col; bool Gagnant, Gagnant_B, Gagnant_N, Pleine; const string PHRASE_BLANC = "Au tour des blancs a jouer! "; const string PHRASE_NOIR = "Au tour des noirs a jouer! "; const string PLEINE = "Cette Colonne est pleine, choisissez en une autre! (Appuyez sur ENTER)"; do { initialisation(); clrscr(); Pile1=0, Pile2=0, Pile3=0, Pile4=0; Gagnant = false, Gagnant_B = false, Gagnant_N = false; Boite(); while(!Gagnant) { gotoxy(1,1); cout << PHRASE_BLANC; gotoxy(1,2); cout << "Dans quelle colonne voulez-vous laisser tomber le jeton? ( 1 a 4 ): "; do { Pleine = false; gotoxy(10,5); clreol(); gotoxy(69,2); Jeton_Blanc = getche(); switch(Jeton_Blanc) { case '1': if(Pile1 < 4) { Gagnant_B = Empiler(Pile1, 27, BLANC); Pile1++; } else { gotoxy(10,5); cout << PLEINE; Pleine = true; getch(); } break; case '2': if(Pile2 < 4) { Gagnant_B = Empiler(Pile2, 34, BLANC); Pile2++; } else { gotoxy(10,5); cout << PLEINE; Pleine = true; getch(); } break; case '3': if(Pile3 < 4) { Gagnant_B = Empiler(Pile3, 41, BLANC); Pile3++; } else { gotoxy(10,5); cout << PLEINE; Pleine = true; getch(); } break; case '4': if(Pile4 < 4) { Gagnant_B = Empiler(Pile4, 48, BLANC); Pile4++; } else { gotoxy(10,5); cout << PLEINE; Pleine = true; getch(); } break; } } while(Pleine); if(Gagnant_B) { Gagnant = true; gotoxy(30,5); cout <<" Les Blancs sont GAGNANT!!!"; } if(!Gagnant) Gagnant = Nulle(Pile1, Pile2, Pile3, Pile4, Gagnant); if(!Gagnant) { gotoxy(1,1); cout << PHRASE_NOIR; gotoxy(1,2); cout << "Dans quelle colonne voulez-vous laisser tomber le jeton? ( 1 a 4 ): "; do { Pleine = false; gotoxy(10,5); clreol(); gotoxy(69,2); Jeton_Noir = getche(); switch(Jeton_Noir) { case '1': if(Pile1 < 4) { Gagnant_N = Empiler(Pile1, 27, NOIR); Pile1++; } else { gotoxy(10,5); cout << PLEINE; Pleine = true; getch(); } break; case '2': if(Pile2 < 4) { Gagnant_N = Empiler(Pile2, 34, NOIR); Pile2++; } else { gotoxy(10,5); cout << PLEINE; Pleine = true; getch(); } break; case '3': if(Pile3 < 4) { Gagnant_N = Empiler(Pile3, 41, NOIR); Pile3++; } else { gotoxy(10,5); cout << PLEINE; Pleine = true; getch(); } break; case '4': if(Pile4 < 4) { Gagnant_N = Empiler(Pile4, 48, NOIR); Pile4++; } else { gotoxy(10,5); cout << PLEINE; Pleine = true; getch(); } break; } } while(Pleine); if(Gagnant_N) { Gagnant = true; gotoxy(30,5); cout <<" Les Noirs sont GAGNANT!!!"; } if(!Gagnant) Gagnant = Nulle(Pile1, Pile2, Pile3, Pile4, Gagnant); } } Reponse = MessageBox(NULL, "Voulez-vous continuer?", "Puissance 4", MB_YESNO|MB_ICONQUESTION|MB_SYSTEMMODAL); } while(Reponse == IDYES); } char Afficher(char Couleur) { cout << Couleur << Couleur << Couleur << Couleur << Couleur << Couleur; return 0; } bool Nulle(int Pile1, int Pile2, int Pile3, int Pile4, bool Win) { if(Pile1 == 4 && Pile2 == 4 && Pile3 == 4 && Pile4 == 4 && !Win) { gotoxy(30, 5); cout << "La partie est NULLE!!!"; return 1; } else return 0; } void Boite() { int i; gotoxy(26,9); for(i=1; i<=29; i++) cout << "-"; gotoxy(26,10); for(i=1; i<=5; i++) cout << "| "; gotoxy(26,11); for(i=1; i<=5; i++) cout << "| "; gotoxy(26,12); for(i=1; i<=5; i++) cout << "| "; gotoxy(26,13); for(i=1; i<=29; i++) cout << "-"; gotoxy(26,14); for(i=1; i<=5; i++) cout << "| "; gotoxy(26,15); for(i=1; i<=5; i++) cout << "| "; gotoxy(26,16); for(i=1; i<=5; i++) cout << "| "; gotoxy(26,17); for(i=1; i<=29; i++) cout << "-"; gotoxy(26,18); for(i=1; i<=5; i++) cout << "| "; gotoxy(26,19); for(i=1; i<=5; i++) cout << "| "; gotoxy(26,20); for(i=1; i<=5; i++) cout << "| "; gotoxy(26,21); for(i=1; i<=29; i++) cout << "-"; gotoxy(26,22); for(i=1; i<=5; i++) cout << "| "; gotoxy(26,23); for(i=1; i<=5; i++) cout << "| "; gotoxy(26,24); for(i=1; i<=5; i++) cout << "| "; gotoxy(26,25); for(i=1; i<=29; i++) cout << "-"; } void initialisation() { for(int i=0; i<4; i++) for(int j=0; j<4; j++) Case_Blanc[i][j] = false; for(int i=0; i<4; i++) for(int j=0; j<4; j++) Case_Noir[i][j] = false; } bool Empiler(int Pile, int Col, char Couleur) { switch(Pile) { case 0: gotoxy(Col,22); Afficher(Couleur); gotoxy(Col,23); Afficher(Couleur); gotoxy(Col,24); Afficher(Couleur); if(Couleur == BLANC) { switch(Col) { case 27: Case_Blanc[3][0] = true; break; case 34: Case_Blanc[3][1] = true; break; case 41: Case_Blanc[3][2] = true; break; case 48: Case_Blanc[3][3] = true; break; } } else { switch(Col) { case 27: Case_Noir[3][0] = true; break; case 34: Case_Noir[3][1] = true; break; case 41: Case_Noir[3][2] = true; break; case 48: Case_Noir[3][3] = true; break; } } break; case 1: gotoxy(Col,18); Afficher(Couleur); gotoxy(Col,19); Afficher(Couleur); gotoxy(Col,20); Afficher(Couleur); if(Couleur == BLANC) { switch(Col) { case 27: Case_Blanc[2][0] = true; break; case 34: Case_Blanc[2][1] = true; break; case 41: Case_Blanc[2][2] = true; break; case 48: Case_Blanc[2][3] = true; break; } } else { switch(Col) { case 27: Case_Noir[2][0] = true; break; case 34: Case_Noir[2][1] = true; break; case 41: Case_Noir[2][2] = true; break; case 48: Case_Noir[2][3] = true; break; } } break; case 2: gotoxy(Col,14); Afficher(Couleur); gotoxy(Col,15); Afficher(Couleur); gotoxy(Col,16); Afficher(Couleur); if(Couleur == BLANC) { switch(Col) { case 27: Case_Blanc[1][0] = true; break; case 34: Case_Blanc[1][1] = true; break; case 41: Case_Blanc[1][2] = true; break; case 48: Case_Blanc[1][3] = true; break; } } else { switch(Col) { case 27: Case_Noir[1][0] = true; break; case 34: Case_Noir[1][1] = true; break; case 41: Case_Noir[1][2] = true; break; case 48: Case_Noir[1][3] = true; break; } } break; case 3: gotoxy(Col,10); Afficher(Couleur); gotoxy(Col,11); Afficher(Couleur); gotoxy(Col,12); Afficher(Couleur); if(Couleur == BLANC) { switch(Col) { case 27: Case_Blanc[0][0] = true; break; case 34: Case_Blanc[0][1] = true; break; case 41: Case_Blanc[0][2] = true; break; case 48: Case_Blanc[0][3] = true; break; } } else { switch(Col) { case 27: Case_Noir[0][0] = true; break; case 34: Case_Noir[0][1] = true; break; case 41: Case_Noir[0][2] = true; break; case 48: Case_Noir[0][3] = true; break; } } break; } if(Case_Blanc[3][0] && Case_Blanc[3][1] && Case_Blanc[3][2] && Case_Blanc[3][3] || Case_Blanc[2][0] && Case_Blanc[2][1] && Case_Blanc[2][2] && Case_Blanc[2][3] || Case_Blanc[1][0] && Case_Blanc[1][1] && Case_Blanc[1][2] && Case_Blanc[1][3] || Case_Blanc[0][0] && Case_Blanc[0][1] && Case_Blanc[0][2] && Case_Blanc[0][3] ) return 1; else if(Case_Noir[3][0] && Case_Noir[3][1] && Case_Noir[3][2] && Case_Noir[3][3] || Case_Noir[2][0] && Case_Noir[2][1] && Case_Noir[2][2] && Case_Noir[2][3] || Case_Noir[1][0] && Case_Noir[1][1] && Case_Noir[1][2] && Case_Noir[1][3] || Case_Noir[0][0] && Case_Noir[0][1] && Case_Noir[0][2] && Case_Noir[0][3] ) return 1; else if(Case_Noir[0][0] && Case_Noir[1][0] && Case_Noir[2][0] && Case_Noir[3][0] || Case_Noir[0][1] && Case_Noir[1][1] && Case_Noir[2][1] && Case_Noir[3][1] || Case_Noir[0][2] && Case_Noir[1][2] && Case_Noir[2][2] && Case_Noir[3][2] || Case_Noir[0][3] && Case_Noir[1][3] && Case_Noir[2][3] && Case_Noir[3][3] ) return 1; else if(Case_Blanc[0][0] && Case_Blanc[1][0] && Case_Blanc[2][0] && Case_Blanc[3][0] || Case_Blanc[0][1] && Case_Blanc[1][1] && Case_Blanc[2][1] && Case_Blanc[3][1] || Case_Blanc[0][2] && Case_Blanc[1][2] && Case_Blanc[2][2] && Case_Blanc[3][2] || Case_Blanc[0][3] && Case_Blanc[1][3] && Case_Blanc[2][3] && Case_Blanc[3][3] ) return 1; else if(Case_Blanc[3][0] && Case_Blanc[2][1] && Case_Blanc[1][2] && Case_Blanc[0][3] || Case_Blanc[3][3] && Case_Blanc[2][2] && Case_Blanc[1][1] && Case_Blanc[0][0] ) return 1; else if(Case_Noir[3][0] && Case_Noir[2][1] && Case_Noir[1][2] && Case_Noir[0][3] || Case_Noir[3][3] && Case_Noir[2][2] && Case_Noir[1][1] && Case_Noir[0][0] ) return 1; else return 0; }
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.