Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include "stdlib.h"
- #include <iostream>
- char tablaJOC[3][3];
- int pozitieLinie, pozitieColoana, castigator;
- int egalitate = 0;
- char Jucator = 'X';
- using namespace std;
- #define PATRATELE 9
- void Culoare_Consola();
- int Detectare_Jucator(char Jucator);
- int Joc_Egalitate();
- void Afisare_Tabla(char t[3][3]) {
- system("CLS");
- for (int i = 0; i < 3; i++) {
- for (int j = 0; j < 3; j++) {
- if (i == pozitieLinie && j == pozitieColoana)
- cout << "*";
- else
- cout << t[i][j];
- if (j < 2)
- cout << "|";
- }
- cout << endl;
- if (i < 2) {
- for (int a = 0; a < 5; a++)
- cout << "-";
- }
- cout << endl;
- }
- cout << " Randul lui " << Jucator << ": ";
- }
- bool Joc_Terminat(char t[3][3], char Jucator) {
- if (Jucator == 'X') {
- if (t[0][0] == 'X' && t[1][1] == 'X' && t[2][2] == 'X') {
- return true;
- }
- else {
- if(t[0][2] == 'X' && t[1][1] == 'X' && t[2][0] == 'X') {
- return true;
- }
- else {
- if ((t[0][0] == 'X' && t[0][1] == 'X' && t[0][2] == 'X') || (t[1][0] == 'X' && t[1][1] == 'X' && t[1][2] == 'X') || (t[2][0] == 'X' && t[2][1] == 'X' && t[2][2] == 'X')) {
- return true;
- }
- else {
- if ((t[0][0] == 'X' && t[1][0] == 'X' && t[2][0] == 'X') || (t[0][1] == 'X' && t[1][1] == 'X' && t[2][1] == 'X') || (t[0][2] == 'X' && t[1][2] == 'X' && t[2][2] == 'X')) {
- return true;
- }
- else {
- for (int i = 0; i < 3; i++) {
- for (int j = 0; j < 3; j++) {
- if ((t[i][j] == 'X') || (t[i][j] == 'O'))
- egalitate++;
- }
- }
- if (egalitate == PATRATELE - 1)
- return true;
- else
- return false;
- }
- }
- }
- }
- }else if (Jucator == 'O') {
- if (t[0][0] == 'O' && t[1][1] == 'O' && t[2][2] == 'O') {
- return true;
- }
- else {
- if (t[0][2] == 'O' && t[1][1] == 'O' && t[2][0] == 'O') {
- return true;
- }
- else {
- if ((t[0][0] == 'O' && t[0][1] == 'O' && t[0][2] == 'O') || (t[1][0] == 'O' && t[1][1] == 'O' && t[1][2] == 'O') || (t[2][0] == 'O' && t[2][1] == 'O' && t[2][2] == 'O')) {
- return true;
- }
- else {
- if ((t[0][0] == 'O' && t[1][0] == 'O' && t[2][0] == 'O') || (t[0][1] == 'O' && t[1][1] == 'O' && t[2][1] == 'O') || (t[0][2] == 'O' && t[1][2] == 'O' && t[2][2] == 'O')) {
- return true;
- }
- else {
- for (int i = 0; i < 3; i++) {
- for (int j = 0; j < 3; j++) {
- if ((t[i][j] == 'X') || (t[i][j] == 'O'))
- egalitate++;
- }
- }
- if (egalitate == PATRATELE - 1)
- return true;
- else
- return false;
- }
- }
- }
- }
- }
- }
- int main(void) {
- Culoare_Consola();
- Afisare_Tabla(tablaJOC);
- do {
- char miscare;
- cin >> miscare;
- if (miscare == 's')
- pozitieLinie = (pozitieLinie + 1) % 3;
- if (miscare == 'w')
- pozitieLinie = (pozitieLinie - 1 + 3) % 3;
- if (miscare == 'd')
- pozitieColoana = (pozitieColoana + 1) % 3;
- if (miscare == 'a')
- pozitieColoana = (pozitieColoana - 1 + 3) % 3;
- if (miscare == 'p') {
- if (tablaJOC[pozitieLinie][pozitieColoana] == 'X' || tablaJOC[pozitieLinie][pozitieColoana] == 'O') {
- cout << " Este deja o mutare, alege alta! ";
- }
- else {
- tablaJOC[pozitieLinie][pozitieColoana] = Jucator;
- if (Jucator == 'X')
- Jucator = 'O';
- else
- Jucator = 'X';
- Joc_Terminat(tablaJOC, Jucator);
- castigator = Detectare_Jucator(Jucator);
- }
- }
- Afisare_Tabla(tablaJOC);
- } while (Joc_Terminat(tablaJOC, Jucator) == false);
- switch (castigator) {
- case 1: {
- cout << "Playerul 1 (X) a castigat!" << endl;
- break;
- }
- case 2: {
- cout << "Playerul 2 (O) a castigat! " << endl;
- break;
- }
- default: {
- cout << "EGALITATE!" << endl; //Mai este de facut doar partea in care este EGALITATE, ROUND DRAW
- }
- }
- system("PAUSE");
- return 0;
- }
- void Culoare_Consola() {
- system("COLOR 03");
- }
- int Detectare_Jucator(char Jucator) {
- int player;
- //1 - X, 2 - O
- if (Jucator == 'X') {
- player = 1;
- }else if (Jucator == 'O') {
- player = 2;
- }
- return player;
- }
- int Joc_Egalitate() {
- return 2;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement