Ajout de tout le code

This commit is contained in:
Lea
2025-11-21 12:22:29 -05:00
parent 1c7df22efd
commit 977dd5ae9a
7 changed files with 300 additions and 1 deletions

View File

@@ -130,6 +130,9 @@
<ClCompile Include="fonctions.cpp" /> <ClCompile Include="fonctions.cpp" />
<ClCompile Include="main.cpp" /> <ClCompile Include="main.cpp" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<ClInclude Include="fonctions.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">
</ImportGroup> </ImportGroup>

View File

@@ -30,4 +30,9 @@
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup>
<ClInclude Include="fonctions.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project> </Project>

View File

@@ -1 +1,204 @@
ok /*====================================
AUTEURS : L<>a Dezothez et Sol<6F>ne Baillargeon
PROJET : Final
NOM DU FICHIER : fonctions.cpp
DATE : 2025-11-14
BUT : Fichier de fonctions Tic Tac Toe
====================================*/
#include "fonctions.h"
#include <iostream>
#include <conio.h>
#include <Windows.h>
#include <iomanip>
#include <fstream>
using namespace std;
extern const int LARGTIC;
fstream monFlux;
HANDLE hconsole = GetStdHandle(STD_OUTPUT_HANDLE);
char carre = 219, choix;
void ouvrirFichier(std::fstream& monFlux, std::string nomFichier) {
monFlux.open(nomFichier, ios::in);
if (!monFlux) //On v<>rifie si le flux est "faux"/non fonctionnel.
{
cout << "ERREUR: Impossible d'ouvrir le fichier!" << endl;
system("PAUSE>0");
exit(1); //On quitte imm<6D>diatement le programme
}
}
void fermerFichier(std::fstream& monFlux) {
monFlux.close();
}
void afficherImageMenu(std::fstream& monFlux) {
int repet = 0;
if (monFlux) {
while (!monFlux.eof()) {
monFlux >> repet;
if (repet == 99) {
cout << endl;
}
else if (repet == 0) {
cout << " ";
}
else {
SetConsoleTextAttribute(hconsole, 15);
cout << carre << carre;
}
}
monFlux.close();
cout << endl;
}
else {
cout << "ERREUR : Impossible d<>ouvrir le fichier! " << endl;
exit(1);
}
}
void afficherImageTableau(std::string grid[][LARGTIC]) {
SetConsoleOutputCP(CP_UTF8);
string emoteUp,
emoteLine,
emoteDown;
ouvrirFichier(monFlux, "themes/themeSea.txt");
if (monFlux) {
while (!monFlux.eof()) {
monFlux >> emoteUp >> emoteLine >> emoteDown;
}
monFlux.close();
cout << endl;
}
else {
cout << "ERREUR : Impossible d<>ouvrir le fichier! " << endl;
exit(1);
}
fermerFichier(monFlux);
cout << " ";
for (int i = 0; i < LARGTIC; i++) {
cout << " " << i + 1 << " ";
}
cout << " " << endl << " ";
for (int k = 0; k < LARGTIC; k++) {
for (int i = 0; i < LARGTIC; i++) {
for (int j = 0; j < 2; j++) {
cout << emoteUp << " ";
}
}
cout << endl << " ";
for (int i = 0; i < LARGTIC; i++) {
cout << emoteLine;
for (int j = 0; j < 3; j++) {
cout << " ";
}
}
cout << emoteLine << endl << " " << k + 1 << " ";
for (int i = 0; i < LARGTIC; i++) {
cout << emoteLine << " " << grid[k][i] << " ";
}
cout << emoteLine << endl << " ";
for (int i = 0; i < LARGTIC; i++) {
cout << emoteLine;
for (int j = 0; j < 3; j++) {
cout << " ";
}
}
cout << emoteLine << endl << " ";
}
for (int i = 0; i < LARGTIC; i++) {
for (int j = 0; j < 2; j++) {
cout << emoteDown << " ";
}
}
cout << endl;
}
bool verifFinMatch(std::string grid[][LARGTIC]) {
bool fin = true;
// Valide horizontales
for (int i = 0; i < 2; i++) {
fin = true;
for (int j = 0; j < 2; j++) {
fin = fin && grid[i][j] == grid[i][j + 1];
}
if (fin == true) {
return fin;
}
}
// Valide verticales
for (int i = 0; i < 2; i++) {
fin = true;
for (int j = 0; j < 2; j++) {
fin = fin && grid[i][j] == grid[i + 1][j];
}
if (fin == true) {
return fin;
}
}
// Valide diagonale de 00, 11, 22
fin = true;
for (int i = 0; i < 2; i++) {
fin = fin && grid[i][i] == grid[i + 1][i + 1];
if (fin == true) {
return fin;
}
}
// Valide diagonale 02, 11, 20
for (int i = 2; i > 0; i--) {
fin = fin && grid[i][i] == grid[i - 1][i - 1];
if (fin == true) {
return fin;
}
}
}
//Menu
void afficherMenu(char& choix) {
system("cls");
//T I C T A C T O E
ouvrirFichier(monFlux, "menuTitre.txt");
afficherImageMenu(monFlux);
fermerFichier(monFlux);
// Menu
cout << endl << "MENU" << endl << "----------------------------------" << endl
<< "A) 1 joueur" << endl
<< "B) 2 joueurs" << endl
<< "C) Montrer l'historique des scores" << endl
<< "D) Changer le style du jeu" << endl
<< "Q) Quitter" << endl << endl
<< "Quel est votre choix? ";
choix = toupper(_getche());
cout << endl;
}
void initialiserGrid(string grid[][LARGTIC]) {
}
void jeuDeuxJoueurs(string grid[][LARGTIC]) {
bool fin;
cout << endl << "Deux joueurs a ete choisi. Les tours seront l'un a la suite de l'autre." << endl << endl;
do {
cout << "Tour du joueur" << endl;
afficherImageTableau(grid);
system("PAUSE");
fin = verifFinMatch(grid);
// la condition doit <20>tre une s<>rie de 3 chiffres
} while (fin = true);
}

26
TicTacToe/fonctions.h Normal file
View File

@@ -0,0 +1,26 @@
/*====================================
AUTEURS : L<>a Dezothez et Sol<6F>ne Baillargeon
PROJET : Final
NOM DU FICHIER : fonctions.h
DATE : 2025-11-14
BUT : D<>claration fonctions pour le jeu Tic Tac Toe
====================================*/
#include <iostream>
#include <fstream>
#pragma once
const int LARGTIC = 3;
void afficherMenu(char& choix);
void afficherImageMenu(std::fstream& monFlux);
void ouvrirFichier(std::fstream& monFlux, std::string nomFichier);
void fermerFichier(std::fstream& monFlux);
void initialiserGrid(std::string grid[][LARGTIC]);
void afficherImageTableau(std::string grid[][LARGTIC]);
void jeuDeuxJoueurs(std::string grid[][LARGTIC]);
bool verifFinMatch(std::string grid[][LARGTIC]);

View File

@@ -0,0 +1,51 @@
/*====================================
AUTEURS : L<>a Dezothez et Sol<6F>ne Baillargeon
PROJET : Final
NOM DU FICHIER : main.cpp
DATE : 2025-11-14
BUT : Main pour le jeu Tic Tac Toe
====================================*/
#include <iostream>
#include "fonctions.h"
using namespace std;
extern const int LARGTIC;
int main() {
char choix;
string grid[LARGTIC][LARGTIC] = { "x", "o","x", "x", "o","x" , "x", "o","x" };
do {
afficherMenu(choix);
switch (choix) {
case 'A':
break;
case 'B':
system("cls");
jeuDeuxJoueurs(grid);
break;
case 'C':
break;
case 'D':
break;
case 'Q':
cout << "Au revoir!";
break;
default:
cout << endl << "Saisissez un choix valide." << endl;
break;
}
system("PAUSE>0");
} while (choix != 'Q');
}

8
menuTitre.txt Normal file
View File

@@ -0,0 +1,8 @@
2 2 2 2 2 0 2 2 2 2 2 0 2 2 2 2 0 0 2 2 2 2 2 0 0 2 2 2 0 0 2 2 2 2 0 0 2 2 2 2 2 0 0 2 2 2 0 0 2 2 2 2 99
0 0 2 0 0 0 0 0 2 0 0 0 2 0 0 0 0 0 0 0 2 0 0 0 2 0 0 0 2 0 2 0 0 0 0 0 0 0 2 0 0 0 2 0 0 0 2 0 2 0 0 0 99
0 0 2 0 0 0 0 0 2 0 0 0 2 0 0 0 0 0 0 0 2 0 0 0 2 0 0 0 2 0 2 0 0 0 0 0 0 0 2 0 0 0 2 0 0 0 2 0 2 0 0 0 99
0 0 2 0 0 0 0 0 2 0 0 0 2 0 0 0 0 0 0 0 2 0 0 0 2 0 0 0 2 0 2 0 0 0 0 0 0 0 2 0 0 0 2 0 0 0 2 0 2 2 2 2 99
0 0 2 0 0 0 0 0 2 0 0 0 2 0 0 0 0 0 0 0 2 0 0 0 2 2 2 2 2 0 2 0 0 0 0 0 0 0 2 0 0 0 2 0 0 0 2 0 2 0 0 0 99
0 0 2 0 0 0 0 0 2 0 0 0 2 0 0 0 0 0 0 0 2 0 0 0 2 0 0 0 2 0 2 0 0 0 0 0 0 0 2 0 0 0 2 0 0 0 2 0 2 0 0 0 99
0 0 2 0 0 0 2 2 2 2 2 0 2 2 2 2 0 0 0 0 2 0 0 0 2 0 0 0 2 0 2 2 2 2 0 0 0 0 2 0 0 0 0 2 2 2 0 0 2 2 2 2 99

3
themes/themeSea.txt Normal file
View File

@@ -0,0 +1,3 @@
🌊
🔹
🪸