Tic-tac-toe élaboré

Soyez le premier à donner votre avis sur cette source.

Vue 5 450 fois - Téléchargée 202 fois

Description

Tic-Tac-Toe pour 2 joueurs.

Source / Exemple :


#include <iostream>
#include <cstdlib>
#include <string>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <Windows.h>
#include <Winbase.h>
#include <conio.h>
#include <dos.h>
#include <time.h>
	
CONSOLE_SCREEN_BUFFER_INFO csbiInfo;				// structure dans laquelle on va stocker les infos
                                                    // sur le cmd avant de les changes.

void Rouge()
{
    HANDLE  HCmd = GetStdHandle(STD_OUTPUT_HANDLE); //on se creer un
                                                    // handle de sortie sur le cmd.
    GetConsoleScreenBufferInfo(HCmd, &csbiInfo);    //on choppe les infos du cmd
												    // et on les stocks
												    // on change la couleur du text, pour le fond c'est le meme principe.
    SetConsoleTextAttribute(HCmd, FOREGROUND_RED|FOREGROUND_INTENSITY);
} 

void Bleu()
{
	HANDLE  HCmd = GetStdHandle(STD_OUTPUT_HANDLE); 												
    GetConsoleScreenBufferInfo(HCmd, &csbiInfo);	
	SetConsoleTextAttribute(HCmd, FOREGROUND_BLUE|FOREGROUND_INTENSITY);
}

void Vert()
{
	HANDLE  HCmd = GetStdHandle(STD_OUTPUT_HANDLE); 
    GetConsoleScreenBufferInfo(HCmd, &csbiInfo);	
	SetConsoleTextAttribute(HCmd, FOREGROUND_GREEN|FOREGROUND_INTENSITY);
}
   
void Chargement1()
{	
	using std::cin;
	using std::cout;
	Rouge();
	int Temps=5;
	cout<<"Chargement [";
		while(Temps!=0)
		{
		Temps--;
		Sleep(100);
		cout<<"#";
		}
	cout<<"]";
}
                  
int main()
{
	using std::cin;
	using std::cout;
	using namespace std;

	char SiteWeb='o';
	
	Rouge(); 
	cout<<"Les * represente des cases vides, les X appartiennent au premier joueur et les Oau deuxieme joueur";
	cout<<"\n\nVoulez-vous visiter ma page web ? entrez \'o\'pour oui et \'n\' pour non : ";
	SiteWeb=getch();
	cout<<"\n";
	
	if(SiteWeb=='o'){ShellExecute(NULL, NULL, "http://www.chez.com/neon2001/TicTacToe.htm", NULL, NULL, SW_SHOWNORMAL); system("cls");}
	
		else
		{
		system("cls");

		Chargement1();

		system("cls");
		}

	
	char case1   ='*';
	char case2   ='*';
	char case3   ='*';
	char case4   ='*';
	char case5   ='*';
	char case6   ='*';
	char case7   ='*';
	char case8   ='*';
	char case9   ='*';
	int  ChoixCase1=0;
	int  ChoixCase2=0;
	int  TicTacToe =0;
	int  Chargement=8;
	string Joueur1="Joueur1";
	string Joueur2="Joueur2";
	
	Bleu();
	cout<<"Veuillez entrer le nom du Joueur 1 : ";
	cin >>Joueur1;
	
	Vert();
	cout<<"Veuillez entrer le nom du Joueur 2 : ";
	cin >>Joueur2;

	system("cls");

	Rouge();
	cout<<"Chargement du jeu en cours ... [";
		while(Chargement!=0)
		{
		Chargement--;
		Sleep(500);
		cout<<"#";
		}
	cout<<"]";

	system("cls");
    
		while(TicTacToe!=1)
		{
		Bleu();
		cout<<"\n\n"<<Joueur1<<" - X :";

		cout<<"\n\n             |           |";
		cout<<"\n       "<<case1<<" 1   |     "<<case2<<" 2   |     "<<case3<<" 3";
		cout<<"\n             |           |";
		cout<<"\n----------------------------------------";
		cout<<"\n             |           |";
		cout<<"\n       "<<case4<<" 4   |     "<<case5<<" 5   |     "<<case6<<" 6";
		cout<<"\n             |           |";
		cout<<"\n----------------------------------------";
		cout<<"\n             |           |";
		cout<<"\n       "<<case7<<" 7   |     "<<case8<<" 8   |     "<<case9<<" 9";
		cout<<"\n             |           |";
		cout<<"\n\nQuelle case voulez-vous cocher - X? ";
		ChoixCase1=getche();
		ChoixCase1=ChoixCase1-48;
		
		system("cls");	Chargement1();	system("cls");

			switch(ChoixCase1)
			{
			case 1: {if(case1!='*'){cout<<"\nN'essayez pas de tricher\n";getch();return 0;}else{case1='X';}} break;
			case 2: {if(case2!='*'){cout<<"\nN'essayez pas de tricher\n";getch();return 0;}else{case2='X';}} break;
			case 3: {if(case3!='*'){cout<<"\nN'essayez pas de tricher\n";getch();return 0;}else{case3='X';}} break;
			case 4: {if(case4!='*'){cout<<"\nN'essayez pas de tricher\n";getch();return 0;}else{case4='X';}} break;
			case 5: {if(case5!='*'){cout<<"\nN'essayez pas de tricher\n";getch();return 0;}else{case5='X';}} break;
			case 6: {if(case6!='*'){cout<<"\nN'essayez pas de tricher\n";getch();return 0;}else{case6='X';}} break;
			case 7: {if(case7!='*'){cout<<"\nN'essayez pas de tricher\n";getch();return 0;}else{case7='X';}} break;
			case 8: {if(case8!='*'){cout<<"\nN'essayez pas de tricher\n";getch();return 0;}else{case8='X';}} break;
			case 9: {if(case9!='*'){cout<<"\nN'essayez pas de tricher\n";getch();return 0;}else{case9='X';}} break;
				default:
				{
				Rouge();
				cout<<"\nVous n'avez pas entr\x82 un numero de case valide";
				cout<<"\nEn raison de cela, le programme se termine automatiquement pour eviter un bug";
				cout<<"\nMerci de votre comprehension\n\n";
				cout<<"\nCopyright Simon Lavoie - 2003";
				getch();
				return 0;
				}
			}
		Vert();
		cout<<"Jeux actuel :";

		cout<<"\n\n       "<<case1<<"    |     "<<case2<<"    |     "<<case3;
		cout<<"\n-------------------------------------";
		cout<<"\n       "<<case4<<"    |     "<<case5<<"    |     "<<case6;
		cout<<"\n-------------------------------------";
		cout<<"\n       "<<case7<<"    |     "<<case8<<"    |     "<<case9;
	   
			if(case1!='*' && case2!='*' && case3!='*' && case4!='*' && case5!='*' && case6!='*' && case7!='*' && case8!='*' && case9!='*')
			{
			Rouge();
			cout<<"\n\nLa partie s'est fini nulle, pour rejouer : recommencez le programme\n\n";
			cout<<"Vous etes vraiment looser vous autres \x1 \x2 ???\n";
			cout<<"\nCopyright Simon Lavoie - 2003";
			getch();
			return 0;
			}
			if((case1=='X' && case4=='X' && case7=='X')||(case2=='X' && case5=='X' && case8=='X')||(case3=='X' && case6=='X' && case9=='X')||(case1=='X' && case2=='X' && case3=='X')||(case4=='X' && case5=='X' && case6=='X')||(case7=='X' && case8=='X' && case9=='X')||(case1=='X' && case5=='X' && case9=='X')||(case3=='X' && case5=='X' && case7=='X'))
			{
			Rouge();
			cout<<"\n\n!!! "<<Joueur1<<" a gagne - X!!!\n\n";
			cout<<"Ah! Ah! Ah! "<<Joueur2<<" tu es vraiment looser \x1 \x2 !!!\n";			
			cout<<"\nCopyright Simon Lavoie - 2003";
			getch();
			return 0;
			}
			if((case1=='O' && case4=='O' && case7=='O')||(case2=='O' && case5=='O' && case8=='O')||(case3=='O' && case6=='O' && case9=='O')||(case1=='O' && case2=='O' && case3=='O')||(case4=='O' && case5=='O' && case6=='O')||(case7=='O' && case8=='O' && case9=='O')||(case1=='O' && case5=='O' && case9=='O')||(case3=='O' && case5=='O' && case7=='O'))
			{
			Rouge();
			cout<<"\n\n!!! "<<Joueur2<<" a gagne - O!!!\n\n";
			cout<<"Ah! Ah! Ah! "<<Joueur1<<" tu es vraiment looser \x1 \x2 !!!\n";
			cout<<"\nCopyright Simon Lavoie - 2003";
	        getch();
			return 0;
			}
		
		Vert();
		cout<<"\n\n"<<Joueur2<<" - O:";

		cout<<"\n\n             |           |";
		cout<<"\n       "<<case1<<" 1   |     "<<case2<<" 2   |     "<<case3<<" 3";
		cout<<"\n             |           |";
		cout<<"\n----------------------------------------";
		cout<<"\n             |           |";
		cout<<"\n       "<<case4<<" 4   |     "<<case5<<" 5   |     "<<case6<<" 6";
		cout<<"\n             |           |";
		cout<<"\n----------------------------------------";
		cout<<"\n             |           |";
		cout<<"\n       "<<case7<<" 7   |     "<<case8<<" 8   |     "<<case9<<" 9";
		cout<<"\n             |           |";
		cout<<"\n\nQuelle case voulez-vous cocher - O? ";
		ChoixCase2=getche();
		ChoixCase2=ChoixCase2-48;
		
		system("cls");	Chargement1();	system("cls");
	 
			switch(ChoixCase2)
			{
			case 1: {if(case1!='*'){cout<<"\nN'essayez pas de tricher\n";getch();return 0;}else{case1='O';}} break;
			case 2: {if(case2!='*'){cout<<"\nN'essayez pas de tricher\n";getch();return 0;}else{case2='O';}} break;
			case 3: {if(case3!='*'){cout<<"\nN'essayez pas de tricher\n";getch();return 0;}else{case3='O';}} break;
			case 4: {if(case4!='*'){cout<<"\nN'essayez pas de tricher\n";getch();return 0;}else{case4='O';}} break;
			case 5: {if(case5!='*'){cout<<"\nN'essayez pas de tricher\n";getch();return 0;}else{case5='O';}} break;
			case 6: {if(case6!='*'){cout<<"\nN'essayez pas de tricher\n";getch();return 0;}else{case6='O';}} break;
			case 7: {if(case7!='*'){cout<<"\nN'essayez pas de tricher\n";getch();return 0;}else{case7='O';}} break;
			case 8: {if(case8!='*'){cout<<"\nN'essayez pas de tricher\n";getch();return 0;}else{case8='O';}} break;
			case 9: {if(case9!='*'){cout<<"\nN'essayez pas de tricher\n";getch();return 0;}else{case9='O';}} break;
				default:
				{
				Rouge();
				cout<<"\nVous n'avez pas entr\x82 un numero de case valide";
				cout<<"\nEn raison de cela, le programme se termine automatiquement pour eviter un bug";
				cout<<"\nMerci de votre comprehension\n\n";
				cout<<"\nCopyright Simon Lavoie - 2003";
				getch();
				return 0;
				}
			}
		system("cls");
		Bleu();
		cout<<"Jeux actuel :";

		cout<<"\n\n       "<<case1<<"    |     "<<case2<<"    |     "<<case3;
		cout<<"\n-------------------------------------";
		cout<<"\n       "<<case4<<"    |     "<<case5<<"    |     "<<case6;
		cout<<"\n-------------------------------------";
		cout<<"\n       "<<case7<<"    |     "<<case8<<"    |     "<<case9;
	  
			if(case1!='*' && case2!='*' && case3!='*' && case4!='*' && case5!='*' && case6!='*' && case7!='*' && case8!='*' && case9!='*')
			{
			Rouge();
			cout<<"\n\nLa partie s'est fini nulle, pour rejouer, recommencer le programme\n\n";
			cout<<"Vous etes vraiment looser vous autres \x1 \x2 ???\n";
			cout<<"\nCopyright Simon Lavoie - 2003";
			getch();
			return 0;
			}
			if((case1=='X' && case4=='X' && case7=='X')||(case2=='X' && case5=='X' && case8=='X')||(case3=='X' && case6=='X' && case9=='X')||(case1=='X' && case2=='X' && case3=='X')||(case4=='X' && case5=='X' && case6=='X')||(case7=='X' && case8=='X' && case9=='X')||(case1=='X' && case5=='X' && case9=='X')||(case3=='X' && case5=='X' && case7=='X'))
			{
			Rouge();
			cout<<"\n\n!!! "<<Joueur1<<" a gagne - X !!!\n\n";
			cout<<"Ah! Ah! Ah! "<<Joueur2<<" tu es vraiment looser \x1 \x2 !!!\n";
			cout<<"\nCopyright Simon Lavoie - 2003";
			getch();
			return 0;
			}
			if((case1=='O' && case4=='O' && case7=='O')||(case2=='O' && case5=='O' && case8=='O')||(case3=='O' && case6=='O' && case9=='O')||(case1=='O' && case2=='O' && case3=='O')||(case4=='O' && case5=='O' && case6=='O')||(case7=='O' && case8=='O' && case9=='O')||(case1=='O' && case5=='O' && case9=='O')||(case3=='O' && case5=='O' && case7=='O'))
			{
			Rouge();
			cout<<"\n\n!!! "<<Joueur2<<" a gagne - O !!!\n\n";
			cout<<"Ah! Ah! Ah! "<<Joueur1<<" tu es vraiment looser \x1 \x2 !!!\n";
			cout<<"\nCopyright Simon Lavoie - 2003";
			getch();
			return 0;
			}

		}

	  return 0;
}

Conclusion :


J'espere que vous apprécierez, pour de plsu amples informations, allez sur mon site : http://www.chez.com/neon2001/TicTacToe.htm

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
4
Date d'inscription
samedi 13 février 2010
Statut
Membre
Dernière intervention
6 novembre 2011

Bravo mais le chargement ?
Messages postés
1
Date d'inscription
mardi 2 mai 2006
Statut
Membre
Dernière intervention
5 avril 2007

C'est bien je trouve, le seul truc que je n'ai pas trop compris c'est le coup du chargement qui ne sert qu'a faire perdre du temps (en fait, ca ne charge rien) :/
Messages postés
527
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
6 octobre 2008
3
ouh là là que c'est compliqué ! Utilise un tableau 2D de char pour les cases

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.

Du même auteur (neon2001)