Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <tchar.h>
- #include <iostream>
- #include <conio.h>
- #include <Windows.h>
- #include <ctime>
- using namespace std;
- int plansza1[3][3] =
- { { 0, 0, 0 },
- { 0, 0, 0 },
- { 0, 0, 0 } };
- int wybor_menu = 1;
- int gracz1; // wybór 1
- int postac_gracz1 = 88; // w asci X
- int gracz2; // wybór 2
- int postac_gracz2 = 79; // w asci O
- int zajete_pola = 0; // śledzenie wypełnionych pól
- bool koniec = false; // gra cala
- bool in_game = true; // pętla w planszy(gra właściwa)
- bool in_menu = true; // pętla menu
- bool gracz1_wykonal = false;
- bool gracz2_wykonal = false;
- void logo()
- {
- cout << endl;
- cout << " Kolko i Krzyzyk" << endl << endl;
- cout << " " << (char)(219) << (char)(219) << " " << (char)(219) << " " << (char)(219) << endl;
- cout << " " << (char)(219) << " " << (char)(219) << " " << (char)(219) << " " << (char)(219) << endl;
- cout << " " << (char)(219) << " " << (char)(219) << " & " << (char)(219) << (char)(219) << endl;
- cout << " " << (char)(219) << " " << (char)(219) << " " << (char)(219) << " " << (char)(219) << endl;
- cout << " " << (char)(219) << (char)(219) << " " << (char)(219) << " " << (char)(219) << endl;
- }
- void info()
- {
- system("cls");
- logo();
- cout << endl;
- cout << " Sterowanie klawiatura numeryczna" << endl;
- cout << endl << endl << endl;
- cout << " " << (char)(55) << (char)(186) << (char)(56) << (char)(186) << (char)(57) << endl;
- cout << " " << (char)(205) << (char)(206) << (char)(205) << (char)(206) << (char)(205) << endl;
- cout << " " << (char)(52) << (char)(186) << (char)(53) << (char)(186) << (char)(54) << endl;
- cout << " " << (char)(205) << (char)(206) << (char)(205) << (char)(206) << (char)(205) << endl;
- cout << " " << (char)(49) << (char)(186) << (char)(50) << (char)(186) << (char)(51) << endl << endl << endl << endl << endl;
- cout << " By Kamil M" << endl;
- }
- void menu1()
- {
- system("cls");
- logo();
- cout << endl << endl;
- cout << " " << (char)(16) << " Zagraj" << endl;
- cout << " Info" << endl << endl;
- cout << " Wyjdz" << endl;
- }
- void menu2()
- {
- system("cls");
- logo();
- cout << endl << endl;
- cout << " Zagraj" << endl;
- cout << " " << (char)(16) << " Info" << endl << endl;
- cout << " Wyjdz" << endl;
- }
- void menu3()
- {
- system("cls");
- logo();
- cout << endl << endl;
- cout << " Zagraj" << endl;
- cout << " Info" << endl << endl;
- cout << " " << (char)(16) << " Wyjdz" << endl;
- }
- void rysuj()
- {
- system("cls");
- cout << endl << endl;
- cout << " " << (char)(plansza1[0][0]) << (char)(186) << (char)(plansza1[0][1]) << (char)(186) << (char)(plansza1[0][2]) << endl;
- cout << " " << (char)(205) << (char)(206) << (char)(205) << (char)(206) << (char)(205) << endl;
- cout << " " << (char)(plansza1[1][0]) << (char)(186) << (char)(plansza1[1][1]) << (char)(186) << (char)(plansza1[1][2]) << endl;
- cout << " " << (char)(205) << (char)(206) << (char)(205) << (char)(206) << (char)(205) << endl;
- cout << " " << (char)(plansza1[2][0]) << (char)(186) << (char)(plansza1[2][1]) << (char)(186) << (char)(plansza1[2][2]) << endl << endl;
- }
- void czy_koniec()
- {
- if (plansza1[0][0] + plansza1[0][1] + plansza1[0][2] == 3 * postac_gracz2)
- {
- cout << endl;
- cout << " Wygrywa O" << endl;
- Sleep(1500);
- gracz1_wykonal = true;
- gracz2_wykonal = true;
- in_menu = true;
- in_game = false;
- }
- if (plansza1[1][0] + plansza1[1][1] + plansza1[1][2] == 3 * postac_gracz2)
- {
- cout << endl;
- cout << " Wygrywa O" << endl;
- Sleep(1500);
- gracz1_wykonal = true;
- gracz2_wykonal = true;
- in_menu = true;
- in_game = false;
- }
- if (plansza1[2][0] + plansza1[2][1] + plansza1[2][2] == 3 * postac_gracz2)
- {
- cout << endl;
- cout << " Wygrywa O" << endl;
- Sleep(1500);
- gracz1_wykonal = true;
- gracz2_wykonal = true;
- in_menu = true;
- in_game = false;
- }
- if (plansza1[0][0] + plansza1[1][0] + plansza1[2][0] == 3 * postac_gracz2)
- {
- cout << endl;
- cout << " Wygrywa O" << endl;
- Sleep(1500);
- gracz1_wykonal = true;
- gracz2_wykonal = true;
- in_menu = true;
- in_game = false;
- }
- if (plansza1[0][1] + plansza1[1][1] + plansza1[2][1] == 3 * postac_gracz2)
- {
- cout << endl;
- cout << " Wygrywa O" << endl;
- Sleep(1500);
- gracz1_wykonal = true;
- gracz2_wykonal = true;
- in_menu = true;
- in_game = false;
- }
- if (plansza1[0][2] + plansza1[1][2] + plansza1[2][2] == 3 * postac_gracz2)
- {
- cout << endl;
- cout << " Wygrywa O" << endl;
- Sleep(1500);
- gracz1_wykonal = true;
- gracz2_wykonal = true;
- in_menu = true;
- in_game = false;
- }
- if (plansza1[0][0] + plansza1[1][1] + plansza1[2][2] == 3 * postac_gracz2)
- {
- cout << endl;
- cout << " Wygrywa O" << endl;
- Sleep(1500);
- gracz1_wykonal = true;
- gracz2_wykonal = true;
- in_menu = true;
- in_game = false;
- }
- if (plansza1[2][0] + plansza1[1][1] + plansza1[0][2] == 3 * postac_gracz2)
- {
- cout << endl;
- cout << " Wygrywa O" << endl;
- Sleep(1500);
- gracz1_wykonal = true;
- gracz2_wykonal = true;
- in_menu = true;
- in_game = false;
- }
- if (plansza1[0][0] + plansza1[0][1] + plansza1[0][2] == 3 * postac_gracz1)
- {
- cout << endl;
- cout << " Wygrywa X" << endl;
- Sleep(1500);
- gracz1_wykonal = true;
- gracz2_wykonal = true;
- in_menu = true;
- in_game = false;
- }
- if (plansza1[1][0] + plansza1[1][1] + plansza1[1][2] == 3 * postac_gracz1)
- {
- cout << endl;
- cout << " Wygrywa X" << endl;
- Sleep(1500);
- gracz1_wykonal = true;
- gracz2_wykonal = true;
- in_menu = true;
- in_game = false;
- }
- if (plansza1[2][0] + plansza1[2][1] + plansza1[2][2] == 3 * postac_gracz1)
- {
- cout << endl;
- cout << " Wygrywa X" << endl;
- Sleep(1500);
- gracz1_wykonal = true;
- gracz2_wykonal = true;
- in_menu = true;
- in_game = false;
- }
- if (plansza1[0][0] + plansza1[1][0] + plansza1[2][0] == 3 * postac_gracz1)
- {
- cout << endl;
- cout << " Wygrywa X" << endl;
- Sleep(1500);
- gracz1_wykonal = true;
- gracz2_wykonal = true;
- in_menu = true;
- in_game = false;
- }
- if (plansza1[0][1] + plansza1[1][1] + plansza1[2][1] == 3 * postac_gracz1)
- {
- cout << endl;
- cout << " Wygrywa X" << endl;
- Sleep(1500);
- gracz1_wykonal = true;
- gracz2_wykonal = true;
- in_menu = true;
- in_game = false;
- }
- if (plansza1[0][2] + plansza1[1][2] + plansza1[2][2] == 3 * postac_gracz1)
- {
- cout << endl;
- cout << " Wygrywa X" << endl;
- Sleep(1500);
- gracz1_wykonal = true;
- gracz2_wykonal = true;
- in_menu = true;
- in_game = false;
- }
- if (plansza1[0][0] + plansza1[1][1] + plansza1[2][2] == 3 * postac_gracz1)
- {
- cout << endl;
- cout << " Wygrywa X" << endl;
- Sleep(1500);
- gracz1_wykonal = true;
- gracz2_wykonal = true;
- in_menu = true;
- in_game = false;
- }
- if (plansza1[2][0] + plansza1[1][1] + plansza1[0][2] == 3 * postac_gracz1)
- {
- cout << endl;
- cout << " Wygrywa X" << endl;
- Sleep(1500);
- gracz1_wykonal = true;
- gracz2_wykonal = true;
- in_menu = true;
- in_game = false;
- }
- if (in_game == true && zajete_pola == 9)
- {
- cout << endl;
- cout << " Remis !!!" << endl;
- Sleep(1500);
- gracz1_wykonal = true;
- gracz2_wykonal = true;
- in_menu = true;
- in_game = false;
- }
- }
- void ruch_Gracz1()
- {
- cout << " Wybierz pole dla 'X' : ";
- cin >> gracz1;
- if (gracz1 == 1 || gracz1 == 2 || gracz1 == 3 || gracz1 == 4 || gracz1 == 5 || gracz1 == 6 || gracz1 == 7 || gracz1 == 8 || gracz1 == 9)
- {
- switch (gracz1)
- {
- case 1:
- if (plansza1[2][0] == postac_gracz1 || plansza1[2][0] == postac_gracz2)
- {
- cout << " Pole zajete! " << endl;
- Sleep(500);
- break;
- }
- else
- {
- plansza1[2][0] = postac_gracz1;
- zajete_pola++;
- czy_koniec();
- gracz1_wykonal = true;
- break;
- }
- case 2:
- if (plansza1[2][1] == postac_gracz1 || plansza1[2][1] == postac_gracz2)
- {
- cout << " Pole zajete! " << endl;
- Sleep(500);
- break;
- }
- else
- {
- plansza1[2][1] = postac_gracz1;
- zajete_pola++;
- czy_koniec();
- gracz1_wykonal = true;
- break;
- }
- case 3:
- if (plansza1[2][2] == postac_gracz1 || plansza1[2][2] == postac_gracz2)
- {
- cout << " Pole zajete! " << endl;
- Sleep(500);
- break;
- }
- else
- {
- plansza1[2][2] = postac_gracz1;
- zajete_pola++;
- czy_koniec();
- gracz1_wykonal = true;
- break;
- }
- case 4:
- if (plansza1[1][0] == postac_gracz1 || plansza1[1][0] == postac_gracz2)
- {
- cout << " Pole zajete! " << endl;
- Sleep(500);
- break;
- }
- else
- {
- plansza1[1][0] = postac_gracz1;
- zajete_pola++;
- czy_koniec();
- gracz1_wykonal = true;
- break;
- }
- case 5:
- if (plansza1[1][1] == postac_gracz1 || plansza1[1][1] == postac_gracz2)
- {
- cout << " Pole zajete! " << endl;
- Sleep(500);
- break;
- }
- else
- {
- plansza1[1][1] = postac_gracz1;
- zajete_pola++;
- czy_koniec();
- gracz1_wykonal = true;
- break;
- }
- case 6:
- if (plansza1[1][2] == postac_gracz1 || plansza1[1][2] == postac_gracz2)
- {
- cout << " Pole zajete! " << endl;
- Sleep(500);
- break;
- }
- else
- {
- plansza1[1][2] = postac_gracz1;
- zajete_pola++;
- czy_koniec();
- gracz1_wykonal = true;
- break;
- }
- case 7:
- if (plansza1[0][0] == postac_gracz1 || plansza1[0][0] == postac_gracz2)
- {
- cout << " Pole zajete! " << endl;
- Sleep(500);
- break;
- }
- else
- {
- plansza1[0][0] = postac_gracz1;
- zajete_pola++;
- czy_koniec();
- gracz1_wykonal = true;
- break;
- }
- case 8:
- if (plansza1[0][1] == postac_gracz1 || plansza1[0][1] == postac_gracz2)
- {
- cout << " Pole zajete! " << endl;
- Sleep(500);
- break;
- }
- else
- {
- plansza1[0][1] = postac_gracz1;
- zajete_pola++;
- czy_koniec();
- gracz1_wykonal = true;
- break;
- }
- case 9:
- if (plansza1[0][2] == postac_gracz1 || plansza1[0][2] == postac_gracz2)
- {
- cout << " Pole zajete! " << endl;
- Sleep(500);
- break;
- }
- else
- {
- plansza1[0][2] = postac_gracz1;
- zajete_pola++;
- czy_koniec();
- gracz1_wykonal = true;
- }
- break;
- }
- }
- else
- {
- cout << " Ruch niemozliwy! " << endl;
- Sleep(500);
- }
- if (zajete_pola == 9)
- {
- gracz1_wykonal = true;
- gracz2_wykonal = true;
- }
- }
- void ruch_Gracz2()
- {
- //cout << " Wybierz pole dla '0' : ";
- //cin >> gracz2;
- srand((int)time(NULL));
- gracz2 = rand() % 9 + 1;
- if (gracz2 == 1 || gracz2 == 2 || gracz2 == 3 || gracz2 == 4 || gracz2 == 5 || gracz2 == 6 || gracz2 == 7 || gracz2 == 8 || gracz2 == 9)
- {
- switch (gracz2)
- {
- case 1:
- if (plansza1[2][0] == postac_gracz1 || plansza1[2][0] == postac_gracz2)
- {
- //cout << " Pole zajete! " << endl;
- break;
- }
- else
- {
- plansza1[2][0] = postac_gracz2;
- zajete_pola++;
- czy_koniec();
- gracz2_wykonal = true;
- break;
- }
- case 2:
- if (plansza1[2][1] == postac_gracz1 || plansza1[2][1] == postac_gracz2)
- {
- //cout << " Pole zajete! " << endl;
- break;
- }
- else
- {
- plansza1[2][1] = postac_gracz2;
- zajete_pola++;
- czy_koniec();
- gracz2_wykonal = true;
- break;
- }
- case 3:
- if (plansza1[2][2] == postac_gracz1 || plansza1[2][2] == postac_gracz2)
- {
- //cout << " Pole zajete! " << endl;
- break;
- }
- else
- {
- plansza1[2][2] = postac_gracz2;
- zajete_pola++;
- czy_koniec();
- gracz2_wykonal = true;
- break;
- }
- case 4:
- if (plansza1[1][0] == postac_gracz1 || plansza1[1][0] == postac_gracz2)
- {
- //cout << " Pole zajete! " << endl;
- break;
- }
- else
- {
- plansza1[1][0] = postac_gracz2;
- zajete_pola++;
- czy_koniec();
- gracz2_wykonal = true;
- break;
- }
- case 5:
- if (plansza1[1][1] == postac_gracz1 || plansza1[1][1] == postac_gracz2)
- {
- //cout << " Pole zajete! " << endl;
- break;
- }
- else
- {
- plansza1[1][1] = postac_gracz2;
- zajete_pola++;
- gracz2_wykonal = true;
- czy_koniec();
- break;
- }
- case 6:
- if (plansza1[1][2] == postac_gracz1 || plansza1[1][2] == postac_gracz2)
- {
- //cout << " Pole zajete! " << endl;
- break;
- }
- else
- {
- plansza1[1][2] = postac_gracz2;
- zajete_pola++;
- gracz2_wykonal = true;
- czy_koniec();
- break;
- }
- case 7:
- if (plansza1[0][0] == postac_gracz1 || plansza1[0][0] == postac_gracz2)
- {
- //cout << " Pole zajete! " << endl;
- break;
- }
- else
- {
- plansza1[0][0] = postac_gracz2;
- zajete_pola++;
- gracz2_wykonal = true;
- czy_koniec();
- break;
- }
- case 8:
- if (plansza1[0][1] == postac_gracz1 || plansza1[0][1] == postac_gracz2)
- {
- //cout << " Pole zajete! " << endl;
- break;
- }
- else
- {
- plansza1[0][1] = postac_gracz2;
- zajete_pola++;
- gracz2_wykonal = true;
- czy_koniec();
- break;
- }
- case 9:
- if (plansza1[0][2] == postac_gracz1 || plansza1[0][2] == postac_gracz2)
- {
- //cout << " Pole zajete! " << endl;
- break;
- }
- else
- {
- plansza1[0][2] = postac_gracz2;
- zajete_pola++;
- gracz2_wykonal = true;
- czy_koniec();
- }
- break;
- }
- }
- else
- {
- cout << "ruch niemożliwy! " << endl;
- Sleep(500);
- }
- if (zajete_pola == 9) gracz2_wykonal = true;
- }
- void restart()
- {
- zajete_pola = 0;
- for (int i = 0; i < 3; i++)
- {
- for (int j = 0; j < 3; j++)
- {
- plansza1[i][j] = 0;
- }
- }
- }
- int main()
- {
- while (koniec == false)
- {
- while (in_menu == true)
- {
- restart();
- switch (wybor_menu)
- {
- case 1:
- menu1();
- break;
- case 2:
- menu2();
- break;
- case 3:
- menu3();
- break;
- }
- unsigned char ruch_menu = _getch();
- switch (ruch_menu)
- {
- case 0: //klawisze specjalne (czasem zero czasem 224 - zależne od pc'ta chyba)
- case 224: //klawisze specjalne
- ruch_menu = _getch();
- switch (ruch_menu)
- {
- case 72: //strzałka w górę
- if (wybor_menu > 1) wybor_menu--;
- switch (wybor_menu)
- {
- case 1:
- menu1();
- break;
- case 2:
- menu2();
- break;
- case 3:
- menu3();
- break;
- }
- break;
- case 80: //strzałka w dół
- if (wybor_menu < 3) wybor_menu++;
- switch (wybor_menu)
- {
- case 1:
- menu1();
- break;
- case 2:
- menu2();
- break;
- case 3:
- menu3();
- break;
- }
- break;
- }
- ruch_menu = 0;
- break;
- case 13: //ENTER
- switch (wybor_menu)
- {
- case 1:
- //restart();
- in_game = true;
- in_menu = false;
- break;
- case 2:
- info();
- _getch();
- break;
- case 3:
- in_menu = false;
- in_game = false;
- koniec = true;
- break;
- }
- break;
- case 27: //ESC
- in_menu = false;
- koniec = true;
- break;
- }
- }
- while (in_game == true)
- {
- //rysuj();
- while (gracz1_wykonal == false)
- {
- rysuj();
- ruch_Gracz1();
- rysuj();
- }
- czy_koniec();
- //rysuj();
- while (gracz2_wykonal == false)
- {
- rysuj();
- ruch_Gracz2();
- rysuj();
- Sleep(1000);
- }
- if (in_game == true)
- {
- gracz1_wykonal = false;
- gracz2_wykonal = false;
- czy_koniec();
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement