Mentosan

Game: Tic tac Toe (vector)

May 29th, 2018
71
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "stdafx.h"
  2. #include "stdlib.h"
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. char Tabla[9] = { '0', '1', '2', '3', '4', '5', '6', '7', '8' };
  8. char Jucator = 'X';
  9. int castigator;  // 1 - X,  2 - 0, 3 - EQUAL
  10.  
  11. void Culoare_Consola();
  12. void Linii();
  13.  
  14. void Afisare_Tabla(char t[9], char Player) {
  15.  
  16.     system("CLS");
  17.     for (int i = 0; i < 3; i++) {
  18.         cout <<  t[i];
  19.  
  20.         if (i != 2)
  21.             cout << " | ";
  22.     }
  23.     Linii();
  24.    
  25.     for (int i = 3; i < 6; i++) {
  26.         cout<< t[i];
  27.  
  28.         if (i != 5)
  29.             cout << " | ";
  30.     }
  31.     Linii();
  32.  
  33.     for (int i = 6; i < 9; i++) {
  34.         cout << t[i];
  35.  
  36.         if (i != 8)
  37.             cout << " | ";
  38.     }
  39.  
  40.     cout << "\n Randul lui " << Player << ": (0-8) ";
  41. }
  42.  
  43. bool Joc_Terminat(char t[9], char Jucator) {
  44.     int tablaPlina = 0;
  45.     if (Jucator == 'X') {
  46.         if ((t[0] == 'X' && t[4] == 'X' && t[8] == 'X') || (t[2] == 'X' && t[4] == 'X' && t[6] == 'X')) {
  47.             castigator = 1;
  48.             return true;
  49.         }
  50.         else if ((t[0] == 'X' && t[1] == 'X' && t[2] == 'X') || (t[3] == 'X' && t[4] == 'X' && t[5] == 'X') || (t[6] == 'X' && t[7] == 'X' && t[8] == 'X')) {
  51.             castigator = 1;
  52.             return true;
  53.         }
  54.         else if ((t[0] == 'X' && t[3] == 'X' && t[6] == 'X') || (t[1] == 'X' && t[4] == 'X' && t[7] == 'X') || (t[2] == 'X' && t[5] == 'X' && t[8] == 'X')) {
  55.             castigator = 1;
  56.             return true;
  57.         }
  58.         else {
  59.  
  60.             for (int i = 0; i < 9; i++) {
  61.                 if (t[i] == 'X' || t[i] == 'O') tablaPlina++;
  62.             }
  63.  
  64.             if (tablaPlina == 9) {
  65.                 castigator = 3;
  66.                 return true;
  67.             }
  68.             else
  69.                 return false;
  70.         }
  71.     }else if (Jucator == 'O') {
  72.         if ((t[0] == 'O' && t[4] == 'O' && t[8] == 'O') || (t[2] == 'O' && t[4] == 'O' && t[6] == 'O')) {
  73.             castigator = 2;
  74.             return true;
  75.         }
  76.         else if ((t[0] == 'O' && t[1] == 'O' && t[2] == 'O') || (t[3] == 'O' && t[4] == 'O' && t[5] == 'O') || (t[6] == 'X' && t[7] == 'O' && t[8] == 'O')) {
  77.             castigator = 2;
  78.             return true;
  79.         }
  80.         else if ((t[0] == 'O' && t[3] == 'O' && t[6] == 'O') || (t[1] == 'O' && t[4] == 'O' && t[7] == 'O') || (t[2] == 'O' && t[5] == 'O' && t[8] == 'O')) {
  81.             castigator = 2;
  82.             return true;
  83.         }
  84.         else {
  85.  
  86.             for (int i = 0; i < 9; i++) {
  87.                 if (t[i] == 'X' || t[i] == 'O') tablaPlina++;
  88.             }
  89.  
  90.             if (tablaPlina == 9) {
  91.                 castigator = 3;
  92.                 return true;
  93.             }
  94.             else
  95.                 return false;
  96.         }
  97.     }
  98. }
  99.  
  100. int main(void) {
  101.  
  102.     Culoare_Consola();
  103.     Afisare_Tabla(Tabla, Jucator);
  104.  
  105.     while (Joc_Terminat(Tabla, Jucator) == false) {
  106.  
  107.         int miscare;
  108.         cin >> miscare;
  109.         while (miscare > 9) {
  110.             cout << "(!) Sunt doar 9  mutari!\n R: "; cin >> miscare;
  111.         }
  112.            
  113.         if (miscare >= 0 || miscare <= 9) {
  114.             if (Tabla[miscare] == 'X' || Tabla[miscare] == 'O') {
  115.                 cout << " Deja este o mutare! ";
  116.             }
  117.             else {
  118.                 Tabla[miscare] = Jucator;
  119.  
  120.                 if (Jucator == 'X')
  121.                     Jucator = 'O';
  122.                 else
  123.                     Jucator = 'X';
  124.  
  125.                 Afisare_Tabla(Tabla, Jucator);
  126.             }
  127.         }
  128.    
  129.     }
  130.  
  131.     switch (castigator) {
  132.     case 1: {
  133.         cout << " Player 1 (X) a castigat! ";
  134.         break;
  135.     }
  136.     case 2: {
  137.         cout << " Player 2 (O) a castigat! ";
  138.         break;
  139.     }
  140.     default: cout << " Egalitate! ";
  141.     }
  142.  
  143.     cout << endl;
  144.     system("PAUSE");
  145.     return 0;
  146. }
  147.  
  148. void Culoare_Consola() {
  149.     system("COLOR 03");
  150. }
  151.  
  152. void Linii() {
  153.     cout << endl;
  154.     for (int i = 0; i < 10; i++) {
  155.         cout <<  "-";
  156.     }
  157.     cout << endl;
  158. }
RAW Paste Data