diff --git a/TicTacToe/TicTacToe.vcxproj b/TicTacToe/TicTacToe.vcxproj
index c70ca2c..5cd7403 100644
--- a/TicTacToe/TicTacToe.vcxproj
+++ b/TicTacToe/TicTacToe.vcxproj
@@ -130,6 +130,9 @@
+
+
+
diff --git a/TicTacToe/TicTacToe.vcxproj.filters b/TicTacToe/TicTacToe.vcxproj.filters
index 34c81d4..6da88d3 100644
--- a/TicTacToe/TicTacToe.vcxproj.filters
+++ b/TicTacToe/TicTacToe.vcxproj.filters
@@ -30,4 +30,9 @@
Source Files
+
+
+ Header Files
+
+
\ No newline at end of file
diff --git a/TicTacToe/fonctions.cpp b/TicTacToe/fonctions.cpp
index b5754e2..2d27b70 100644
--- a/TicTacToe/fonctions.cpp
+++ b/TicTacToe/fonctions.cpp
@@ -1 +1,204 @@
-ok
\ No newline at end of file
+/*====================================
+AUTEURS : Léa Dezothez et Solène Baillargeon
+PROJET : Final
+NOM DU FICHIER : fonctions.cpp
+DATE : 2025-11-14
+BUT : Fichier de fonctions Tic Tac Toe
+====================================*/
+
+#include "fonctions.h"
+#include
+#include
+#include
+#include
+#include
+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é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 être une série de 3 chiffres
+ } while (fin = true);
+}
\ No newline at end of file
diff --git a/TicTacToe/fonctions.h b/TicTacToe/fonctions.h
new file mode 100644
index 0000000..3c229ed
--- /dev/null
+++ b/TicTacToe/fonctions.h
@@ -0,0 +1,26 @@
+/*====================================
+AUTEURS : Léa Dezothez et Solène Baillargeon
+PROJET : Final
+NOM DU FICHIER : fonctions.h
+DATE : 2025-11-14
+BUT : Déclaration fonctions pour le jeu Tic Tac Toe
+====================================*/
+
+#include
+#include
+#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]);
diff --git a/TicTacToe/main.cpp b/TicTacToe/main.cpp
index e69de29..4ecc1d0 100644
--- a/TicTacToe/main.cpp
+++ b/TicTacToe/main.cpp
@@ -0,0 +1,51 @@
+/*====================================
+AUTEURS : Léa Dezothez et Solène Baillargeon
+PROJET : Final
+NOM DU FICHIER : main.cpp
+DATE : 2025-11-14
+BUT : Main pour le jeu Tic Tac Toe
+====================================*/
+
+#include
+#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');
+
+}
\ No newline at end of file
diff --git a/menuTitre.txt b/menuTitre.txt
new file mode 100644
index 0000000..9d061a1
--- /dev/null
+++ b/menuTitre.txt
@@ -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
+
diff --git a/themes/themeSea.txt b/themes/themeSea.txt
new file mode 100644
index 0000000..cc332be
--- /dev/null
+++ b/themes/themeSea.txt
@@ -0,0 +1,3 @@
+🌊
+🔹
+🪸
\ No newline at end of file