Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h>
- using namespace std;
- short plansza[3][3];
- void wyzeruj_plansze()
- {
- for(short i = 0; i < 3; ++i)
- for(short j = 0; j < 3; ++j)
- plansza[i][j] = 0;
- }
- void wypisz_plansze()
- {
- // 0 - pole puste, 1 - X, -1 - O
- for(short i = 1; i <= 3; ++i)
- {
- cout << '\t' << i << '.';
- }
- cout << endl;
- for(short i = 0; i < 3; ++i)
- {
- cout << i + 1 << ".\t";
- for(short j = 0; j < 3; ++j)
- {
- switch(plansza[i][j])
- {
- case 1:
- cout << "X\t";
- break;
- case -1:
- cout << "O\t";
- break;
- default:
- cout << " \t";
- }
- }
- cout << endl;
- }
- }
- short gra_koniec()
- {
- // 1 - wygrana gracza 1.
- // -1 - wygrana gracza 2.
- // 0 - gra kontynuowana
- // 2 - remis
- short suma;
- // sprawdzanie wierszy:
- for(short i = 0; i < 3; ++i)
- {
- suma = 0;
- for(short j = 0; j < 3; ++j)
- suma += plansza[i][j];
- if(suma == 3)
- return 1; // wygrana gracza 1.
- if(suma == -3)
- return -1; // wygrana gracza 2.
- }
- // sprawdzanie kolumn:
- for(short i = 0; i < 3; ++i)
- {
- suma = 0;
- for(short j = 0; j < 3; ++j)
- suma += plansza[j][i];
- if(suma == 3)
- return 1; // wygrana gracza 1.
- if(suma == -3)
- return -1; // wygrana gracza 2.
- }
- // sprawdzanie przekątnej głównej:
- suma = 0;
- for(short i = 0; i < 3; ++i)
- suma += plansza[i][i];
- if(suma == 3)
- return 1; // wygrana gracza 1.
- if(suma == -3)
- return -1; // wygrana gracza 2.
- // sprawdzenie drugiej przekątnej:
- suma = 0;
- for(short i = 0; i < 3; ++i)
- suma += plansza[i][2-i];
- if(suma == 3)
- return 1; // wygrana gracza 1.
- if(suma == -3)
- return -1; // wygrana gracza 2.
- for(short i = 0; i < 3; ++i)
- for(short j = 0; j < 3; ++j)
- if(plansza[i][j] == 0)
- return 0; // gra kontynuowana
- return 2; // remis
- }
- void gra(string g1, string g2)
- {
- short x, y;
- bool flaga;
- while(gra_koniec() == 0)
- {
- // ruch gracza 1:
- cout << "Teraz jest ruch gracza " << g1 << ", podaj wspolrzedne, gdzie chcesz postawic X: ";
- flaga = false;
- while(!flaga)
- {
- flaga = true;
- cin >> x >> y;
- while(x < 1 || x > 3 || y < 1 || y > 3)
- {
- cout << "Wpisales niepoprawne wspolrzedne, wpisz jeszcze raz: ";
- cin >> x;
- cin >> y;
- }
- while(plansza[x-1][y-1] != 0)
- {
- flaga = false;
- cout << "To pole jest juz zajete, wpisz jeszcze raz: ";
- }
- }
- plansza[x - 1][y - 1] = 1;
- if(gra_koniec() != 0)
- break;
- system("cls");
- wypisz_plansze();
- // ruch gracza 2:
- cout << "Teraz jest ruch gracza " << g2 << ", podaj wspolrzedne, gdzie chcesz postawic O: ";
- flaga = false;
- while(!flaga)
- {
- flaga = true;
- cin >> x >> y;
- while(x < 1 || x > 3 || y < 1 || y > 3)
- {
- cout << "Wpisales niepoprawne wspolrzedne, wpisz jeszcze raz: ";
- cin >> x;
- cin >> y;
- }
- while(plansza[x-1][y-1] != 0)
- {
- flaga = false;
- cout << "To pole jest juz zajete, wpisz jeszcze raz: ";
- }
- }
- plansza[x - 1][y - 1] = -1;
- system("cls");
- wypisz_plansze();
- }
- short wynik = gra_koniec();
- system("cls");
- wypisz_plansze();
- cout << endl;
- switch(wynik)
- {
- case 1:
- cout << "Wygrana gracza " << g1 << " (X)!\n";
- break;
- case -1:
- cout << "Wygrana gracza " << g2 << " (O)!\n";
- break;
- case 2:
- cout << "Gra zakonczyla sie remisem\n";
- }
- }
- int main()
- {
- cout << "Wpisz imie gracza pierwszego: ";
- string gracz1, gracz2;
- cin >> gracz1;
- cout << "Witaj " << gracz1 << ", masz znak X\n";
- cout << "Wpisz imie gracza drugiego: ";
- cin >> gracz2;
- cout << "Witaj " << gracz2 << ", masz znak O\n";
- wyzeruj_plansze();
- cout << "\nGra za chwile sie rozpocznie, wcisnij dowolny klawisz...";
- _getch();
- system("cls");
- wypisz_plansze();
- gra(gracz1, gracz2);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement