Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- char board[8][8] =
- {
- {' ', 'b', ' ', 'b', ' ', 'b', ' ', 'b'},
- {'b', ' ', 'b', ' ', 'b', ' ', 'b', ' '},
- {' ', 'b', ' ', 'b', ' ', 'b', ' ', 'b'},
- {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '},
- {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '},
- {'r', ' ', 'r', ' ', 'r', ' ', 'r', ' '},
- {' ', 'r', ' ', 'r', ' ', 'r', ' ', 'r'},
- {'r', ' ', 'r', ' ', 'r', ' ', 'r', ' '},
- };
- char turn = 'B';
- bool leap;
- bool game_running = true;
- int row1, row2, column1, column2;
- void display_board();
- void input();
- bool check_move();
- void move();
- void do_leap();
- void king();
- void game_over();
- int main()
- {
- cout << "WARCABY\n";
- cout << "Gracz 1 [b]\n";
- cout << "Gracz 2 2 [r]\n\n";
- cout << "Wielka litera oznacza krola.\n";
- cout << "NOTE: Rzedy i kolumny liczymy od 0, nie 1.\n";
- cout << "<------KOLUMNY------>\n";
- cout << "^\n";
- cout << "|\n";
- cout << "|\n";
- cout << "|\n";
- cout << "RZEDY\n";
- cout << "|\n";
- cout << "|\n";
- cout << "|\n";
- cout << "v\n\n";
- cout << "_____________________________________________________________________________________\n\n";
- cout << "Nacisnij enter by zaczac";
- cin.get();//powoduje czekanie poki ktos nie nacisnie przycisku
- while (game_running)
- {
- display_board();
- if (turn == 'B')
- {
- cout << "--Gracz 1 [B]--\n";
- }
- else if (turn == 'R')
- {
- cout << "--Gracz 2 [R]--\n";
- }
- input();
- move();
- king();
- game_over();
- }
- if (turn == 'B')
- {
- cout << endl << endl << "Gracz 1 [Red] wygrywa!!!\n";
- }
- else if (turn == 'R')
- {
- cout << endl << endl << "Gracz 2 [Black] wygrywa!!!\n";
- }
- cout << Koniec gry\n";
- }
- void display_board()
- {
- cout << "==================================================================================\n\n\n\n";
- cout << " 0 1 2 3 4 5 6 7 \n";
- cout << " _________________________________________________________________________________\n";
- cout << " | | | | | | | | |\n";
- cout << " | | | | | | | | |\n";
- cout << "0 | " << board[0][0] << " | " << board[0][1] << " | " << board[0][2] << " | " << board[0][3] << " | " << board[0][4] << " | " << board[0][5] << " | " << board[0][6] << " | " << board[0][7] << " |\n";
- cout << " | | | | | | | | |\n";
- cout << " |_________|_________|_________|_________|_________|_________|_________|_________|\n";
- cout << " | | | | | | | | |\n";
- cout << " | | | | | | | | |\n";
- cout << "1 | " << board[1][0] << " | " << board[1][1] << " | " << board[1][2] << " | " << board[1][3] << " | " << board[1][4] << " | " << board[1][5] << " | " << board[1][6] << " | " << board[1][7] << " |\n";
- cout << " | | | | | | | | |\n";
- cout << " |_________|_________|_________|_________|_________|_________|_________|_________|\n";
- cout << " | | | | | | | | |\n";
- cout << " | | | | | | | | |\n";
- cout << "2 | " << board[2][0] << " | " << board[2][1] << " | " << board[2][2] << " | " << board[2][3] << " | " << board[2][4] << " | " << board[2][5] << " | " << board[2][6] << " | " << board[2][7] << " |\n";
- cout << " | | | | | | | | |\n";
- cout << " |_________|_________|_________|_________|_________|_________|_________|_________|\n";
- cout << " | | | | | | | | |\n";
- cout << " | | | | | | | | |\n";
- cout << "3 | " << board[3][0] << " | " << board[3][1] << " | " << board[3][2] << " | " << board[3][3] << " | " << board[3][4] << " | " << board[3][5] << " | " << board[3][6] << " | " << board[3][7] << " |\n";
- cout << " | | | | | | | | |\n";
- cout << " |_________|_________|_________|_________|_________|_________|_________|_________|\n";
- cout << " | | | | | | | | |\n";
- cout << " | | | | | | | | |\n";
- cout << "4 | " << board[4][0] << " | " << board[4][1] << " | " << board[4][2] << " | " << board[4][3] << " | " << board[4][4] << " | " << board[4][5] << " | " << board[4][6] << " | " << board[4][7] << " |\n";
- cout << " | | | | | | | | |\n";
- cout << " |_________|_________|_________|_________|_________|_________|_________|_________|\n";
- cout << " | | | | | | | | |\n";
- cout << " | | | | | | | | |\n";
- cout << "5 | " << board[5][0] << " | " << board[5][1] << " | " << board[5][2] << " | " << board[5][3] << " | " << board[5][4] << " | " << board[5][5] << " | " << board[5][6] << " | " << board[5][7] << " |\n";
- cout << " | | | | | | | | |\n";
- cout << " |_________|_________|_________|_________|_________|_________|_________|_________|\n";
- cout << " | | | | | | | | |\n";
- cout << " | | | | | | | | |\n";
- cout << "6 | " << board[6][0] << " | " << board[6][1] << " | " << board[6][2] << " | " << board[6][3] << " | " << board[6][4] << " | " << board[6][5] << " | " << board[6][6] << " | " << board[6][7] << " |\n";
- cout << " | | | | | | | | |\n";
- cout << " |_________|_________|_________|_________|_________|_________|_________|_________|\n";
- cout << " | | | | | | | | |\n";
- cout << " | | | | | | | | |\n";
- cout << "7 | " << board[7][0] << " | " << board[7][1] << " | " << board[7][2] << " | " << board[7][3] << " | " << board[7][4] << " | " << board[7][5] << " | " << board[7][6] << " | " << board[7][7] << " |\n";
- cout << " | | | | | | | | |\n";
- cout << " |_________|_________|_________|_________|_________|_________|_________|_________|\n";
- }
- void input()
- {
- cout << "Rusz pionek\n";
- cout << "Rzad: ";
- cin >> row1;
- cout << "Kolumna: ";
- cin >> column1;
- while (row1 < 0 || row1 > 7 || column1 < 0 || column1 > 7)
- {
- cout << "Nieprawidłowy wpis. Wpisz liczbe od 0 do 7.\n";
- cout << "Rusz pionkiem na:\n";
- cout << "Row: ";
- cin >> row1;
- cout << "Column: ";
- cin >> column1;
- }
- cout << "Na pole:\n";
- cout << "Rzad: ";
- cin >> row2;
- cout << "Kolumna: ";
- cin >> column2;
- while (row2 < 0 || row2 > 7 || column2 < 0 || column2 > 7)
- {
- cout << "Nieprawidłowy wpis. Wpisz liczbe od 0 do 7\n";
- cout << "Na pole\n";
- cout << "Rzad: ";
- cin >> row2;
- cout << "Kolumna: ";
- cin >> column2;
- }
- while (check_move() == false)
- {
- cout << "Niedozwolony ruch!!\n";
- input();
- }
- }
- bool check_move()
- {
- //sprawdza czy normalny pionek nie rusza sie w tyl
- if (board[row1][column1] != 'B' && board[row1][column1] != 'R')
- {
- if ((turn == 'B' && row2 < row1) || (turn == 'R' && row2 > row1))
- {
- leap = false;
- return false;
- }
- }
- //sprawdza czy czasem pole na ktore pionek nie chce sie przesunac jest zajete
- if (board[row2][column2] != ' ')
- {
- leap = false;
- return false;
- }
- //sprawdza czy pole na ktore chcesz sie udac jest dostepne dla jakiegokolwiek pionka
- if (board[row1][column1] == ' ')
- {
- leap = false;
- return false;
- }
- //sprawdczy czy pionek sie nie rusza po ukosie
- if (column1 == column2 || row1 == row2)
- {
- leap = false;
- return false;
- }
- //sprawdcza czy pionek nie rusza sie dalej niz o jedna kolumne i jeden rzad
- if ((column2 > column1 + 1 || column2 < column1 - 1) && (row2 == row1 +1 || row2 == row1 - 1))
- {
- leap = false;
- return false;
- }
- //sprawdcza czy pionek 'przeskakuje'
- if (row2 > row1 + 1 || row2 < row1 - 1)
- {
- //sprawdza czy nie przeskoczyl za daleko
- if (row2 > row1 + 2 || row2 < row1 - 2)
- {
- leap = false;
- return false;
- }
- //sprawdza czy pionek sie nie rusza o dokladnie 2 kolumny
- if (column2 != column1 + 2 && column2 != column1 - 2)
- {
- leap = false;
- return false;
- }
- //sprawdza czy pionek przeskakuje nad innym pionkiem
- if (row2 > row1 && column2 > column1)
- {
- if (board[row2 - 1][column2 - 1] == ' ')
- {
- leap = false;
- return false;
- }
- }
- else if (row2 > row1 && column2 < column1)
- {
- if (board[row2 - 1][column2 + 1] == ' ')
- {
- leap = false;
- return false;
- }
- }
- else if (row2 < row1 && column2 > column1)
- {
- if (board[row2 + 1][column2 - 1] == ' ')
- {
- leap = false;
- return false;
- }
- }
- else if (row2 < row1 && column2 < column1)
- {
- if (board[row2 + 1][column2 + 1] == ' ')
- {
- leap = false;
- return false;
- }
- }
- leap = true;
- return true;
- }
- leap = false;
- return true;
- }
- void move()
- {
- bool king_piece = false;
- if (board[row1][column1] == 'B' || board[row1][column1] == 'R')
- {
- king_piece = true;
- }
- board[row1][column1] = ' ';
- if (turn == 'B')
- {
- if (king_piece == false)
- {
- board[row2][column2] = 'b';
- }
- else if (king_piece == true)
- {
- board[row2][column2] = 'B';
- }
- turn = 'R';
- }
- else if (turn == 'R')
- {
- if (king_piece == false)
- {
- board[row2][column2] = 'r';
- }
- else if (king_piece == true)
- {
- board[row2][column2] = 'R';
- }
- turn = 'B';
- }
- if (leap == true)
- {
- do_leap();
- }
- }
- void do_leap()
- {
- char answer;
- //zabiera pionka po przeskoczeniu przez niego innym pionkiem
- if (row2 > row1 && column2 > column1)
- {
- board[row2 - 1][column2 - 1] = ' ';
- }
- else if (row2 > row1 && column2 < column1)
- {
- board[row2 - 1][column2 + 1] = ' ';
- }
- else if (row2 < row1 && column2 > column1)
- {
- board[row2 + 1][column2 - 1] = ' ';
- }
- else if (row2 < row1 && column2 < column1)
- {
- board[row2 + 1][column2 + 1] = ' ';
- }
- display_board();//wyswietlenie tablicy po zmianach
- //pyta gracza czy chce nadal 'skakac'
- do
- {
- cout << "Skoczyles tylko raz. Chcesz skoczyc jeszcze raz, jezeli mozesz?? (y/n): ";
- cin >> answer;
- }
- while (answer != 'Y' && answer != 'y' && answer != 'N' && answer != 'n');
- if (answer == 'y' || answer == 'Y')
- {
- row1 = row2;
- column1 = column2;
- cout << "Skacz pionkiem: row: " << row1 << ", column: " << column1 << endl;
- cout << "Do pola\n";
- cout << "rzad: ";
- cin >> row2;
- cout << "kolumna: ";
- cin >> column2;
- while (row2 < 0 || row2 > 7 || column2 < 0 || column2 > 7)
- {
- cout << "Nieprawidłowy wpis. Wpisz liczbe od 0 do 7.\n";
- cout << "Na pole\n";
- cout << "Rzad: ";
- cin >> row2;
- cout << "Kolumna: ";
- cin >> column2;
- }
- if (turn == 'B')
- {
- turn = 'R';
- }
- else if (turn == 'R')
- {
- turn = 'B';
- }
- check_move();
- if (leap == false)
- {
- cout << "Niedozwolony skok!!\n";
- if (turn == 'B')
- {
- turn = 'R';
- }
- else if (turn == 'R')
- {
- turn = 'B';
- }
- }
- else if (leap == true)
- {
- move();
- }
- }
- }
- void king()
- {
- for (int i = 0; i < 8; i++)
- {
- if (board[0][i] == 'r')
- {
- board[0][i] = 'R';
- }
- if (board[7][i] == 'b')
- {
- board[7][i] = 'B';
- }
- }
- }
- void game_over()
- {
- int counter = 0;
- for (int i = 0; i < 8; i++)
- {
- for (int j = 0; j < 8; j++)
- {
- if (board[i][j] != ' ')
- {
- counter++;
- }
- }
- }
- if (counter > 1)
- {
- game_running = true;
- }
- else if (counter == 1)
- {
- game_running = false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement