Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <ctime>
- #include <iomanip>
- #include <windows.h>
- using namespace std;
- int roll_dices();
- void board_top(char** tab);
- void board_bottom(char** tab);
- void print_board(char** tab_top, char** tab_bot);
- void menu();
- void rozgrywka(char**, char**);
- void ruch_gracza(char**, char**, int);
- void ruch_x(char**, char**, int, int, int, int);
- const int W = 15;
- const int K = 12;
- int main()
- {
- srand(time(NULL));
- // tablica gornej czesci planszy
- char **tab_top = new char *[W];
- for (int i = 0; i < W; i++)
- {
- tab_top[i] = new char[K];
- }
- //tablica dolnej czesci planszy
- char **tab_bot = new char *[W];
- for (int i = 0; i < W; i++)
- {
- tab_bot[i] = new char[K];
- }
- char wybor;
- menu();
- cin >> wybor;
- cin.get();
- switch (wybor) {
- case '1': {
- cout << "Wybrales nowa gre! Trwa generowanie planszy...";
- Sleep(2000);
- system("cls");
- board_top(tab_top);
- board_bottom(tab_bot);
- print_board(tab_top, tab_bot);
- cout << "\n\n";
- rozgrywka(tab_top, tab_bot);
- break;
- }
- case '2': {
- cout << "Gra zostanie zamknieta!";
- Sleep(2000);
- return 0;
- break;
- }
- default: {
- cout << "Zly button :(, gra zostanie zamknieta";
- Sleep(2000);
- return 0;
- break;
- }
- }
- for (int i = 0; i < W; i++)
- {
- delete[] tab_top[i];
- delete[] tab_bot[i];
- }
- delete[] tab_top;
- delete[] tab_bot;
- cin.get();
- return 0;
- }
- int roll_dices()
- {
- return ((rand() % 6) + 1);
- }
- void board_top(char** tab)
- {
- for (int i = 0; i < W; i++)
- {
- for (int j = 0; j < K; j++)
- tab[i][j] = ' ';
- }
- for (int i = 0; i < 5; i++)
- tab[i][0] = 'o';
- for (int i = 0; i < 3; i++)
- tab[i][4] = 'x';
- for (int i = 0; i < 5; i++)
- tab[i][6] = 'x';
- for (int i = 0; i < 2; i++)
- tab[i][11] = 'o';
- }
- void board_bottom(char** tab)
- {
- for (int i = 0; i < W; i++)
- {
- for (int j = 0; j < K; j++)
- tab[i][j] = ' ';
- }
- for (int i = 14; i > 9; i--)
- tab[i][11] = 'x';
- for (int i = 14; i > 11; i--)
- tab[i][7] = 'o';
- for (int i = 14; i > 9; i--)
- tab[i][5] = 'o';
- for (int i = 14; i > 12; i--)
- tab[i][0] = 'x';
- }
- void print_board(char** tab_top, char** tab_bot)
- {
- for (int i = 13; i < 25; i++)
- cout << i << '\t';
- cout << endl;
- for (int i = 0; i < W; i++, cout << endl)
- {
- for (int j = 0; j < K; j++)
- {
- cout << tab_top[i][j] << '\t';
- }
- }
- cout << endl;
- for (int i = 0; i < W; i++, cout << endl)
- {
- for (int j = K - 1; j >= 0; j--)
- {
- cout << tab_bot[i][j] << '\t';
- }
- }
- for (int i = 12; i > 0; i--)
- cout << i << '\t';
- }
- void menu() {
- cout << "Witaj w grze: TRYKTRAK!" << "\n";
- cout << "Co chcesz zrobic?" << "\n";
- cout << "1) Nowa gra" << "\t" << "2) Wyjdz" << "\n";
- }
- void rozgrywka(char** tab_top, char** tab_bot) {
- bool gra_trwa = true;
- int tura = 1;
- char poddanie;
- while (gra_trwa == true)
- {
- if (tura % 2 != 0) cout << "Gracz 1 - O : ";
- else if (tura % 2 == 0) cout << "Gracz 2 - X : ";
- cout << "Aby rzucic koscmi, nacisnij dowolny przycisk... ";
- cin.get();
- ruch_gracza(tab_top, tab_bot, tura);
- cout << "\nCzy chcesz sie poddac?\n T \t N\n";
- cin >> poddanie;
- if (poddanie == 'T' || poddanie == 't')
- {
- cout << "Poddales sie, wygrywa przeciwnik! Nacisnij przycisk aby wyjsc";
- cin.get();
- gra_trwa = false;
- }
- else tura++;
- }
- }
- void ruch_gracza(char** tab_top, char** tab_bot, int tura)
- {
- int kosc1 = roll_dices();
- int kosc2 = roll_dices();
- cin.get();
- cout << "\nWylosowane liczby to: " << kosc1 << " " << kosc2 << "\n";
- cout << "Z ktorej kolumny pionek chcesz przesunac? ";
- int z_ktorej_kolumny;
- bool prawidlowy_ruch = false;
- int wiersz_z_ktorego_przenosimy;
- cin >> z_ktorej_kolumny;
- if (tura % 2 != 0)
- {
- if (z_ktorej_kolumny >= 1 && z_ktorej_kolumny <= 12)
- {
- //tab_bot
- for (int i = (W-1); i >=0; i--)
- {
- if (tab_bot[i][z_ktorej_kolumny-1] == 'o')
- {
- prawidlowy_ruch = true;
- wiersz_z_ktorego_przenosimy = i;
- //zamien
- }
- }
- if (!prawidlowy_ruch) cout << "Zla kolumna, pominiecie ruchu";
- }
- else if (z_ktorej_kolumny >= 13 && z_ktorej_kolumny <= 24)
- {
- for (int i = (W - 1); i >= 0; i--)
- {
- if (tab_bot[i][z_ktorej_kolumny-13] == 'o')
- {
- prawidlowy_ruch = true;
- wiersz_z_ktorego_przenosimy = i;
- //zamien
- }
- }
- }
- else {
- cout << "Zly numer";
- //continue;
- }
- }
- else {
- if (z_ktorej_kolumny >= 1 && z_ktorej_kolumny <= 12)
- {
- //tab_bot
- for (int i = 0; i < W; i++)
- {
- if (tab_bot[i][z_ktorej_kolumny-1] == 'x') {
- prawidlowy_ruch = true;
- wiersz_z_ktorego_przenosimy = i;
- //zamien
- if (prawidlowy_ruch == true) {
- ruch_x(tab_top, tab_bot, kosc1, kosc2, z_ktorej_kolumny, wiersz_z_ktorego_przenosimy);
- break;
- }
- }
- }
- }
- else if (z_ktorej_kolumny >= 13 && z_ktorej_kolumny <= 24)
- {
- //tab_top
- for (int i = 0; i < W; i++)
- {
- if (tab_bot[i][z_ktorej_kolumny-13] == 'x') {
- prawidlowy_ruch = true;
- wiersz_z_ktorego_przenosimy = i;
- //zamien
- }
- }
- }
- else {
- cout << "Zly numer";
- //continue;
- }
- }
- }
- void ruch_x(char** tab_top, char** tab_bot, int kosc1, int kosc2, int z_ktorej_kolumny, int wiersz_z_ktorego_przenosimy)
- {
- cout << "Jak chcesz poruszyc pionek/pionki? \n 1) Pionek o sumie dwoch kosci \t 2) Pionek o wartosc jednej kosci 3) Dwa pionki o wartosci poszczegolnych kosci \n";
- char wybor;
- cin >> wybor;
- switch (wybor)
- {
- case '1':
- {
- int ruch = kosc1 + kosc2;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement