Advertisement
Cassimus

warcaby

Apr 16th, 2025
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.26 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. const string PAWN = "O";
  8.  
  9. void init_board(int board[8][8]);
  10. int get_row(string kind_of_move);
  11. int get_column(string kind_of_move);
  12. void draw_board(int board[8][8], bool is_white_move);
  13. void clr_screen() { printf("\033[H\033[J"); } // czyszczenie ekranu
  14. void draw_white_field();
  15. void draw_black_field();
  16. void draw_white_pawn();
  17. void draw_black_pawn();
  18.  
  19. int main(int argc, char const *argv[])
  20. {
  21.     // 0- biale pole, 1-czarne puste pole, 2 -czarny pion , 3 - bialy pion
  22.     int board[8][8];
  23.     bool is_white_move = true;
  24.  
  25.     int white_pawns = 12;
  26.     int black_pawns = 12;
  27.  
  28.     int col_from = 0;
  29.     int row_from = 0;
  30.     int col_to = 0;
  31.     int row_to = 0;
  32.  
  33.     init_board(board);
  34.  
  35.     while (white_pawns > 0 && black_pawns > 0)
  36.     {
  37.         draw_board(board, is_white_move);
  38.  
  39.         // pobranie ruchu
  40.         col_from = get_column("skad");
  41.         row_from = get_row("skad");
  42.         col_to = get_column("dokad");
  43.         row_to = get_row("dokad");
  44.     }
  45. }
  46.  
  47. int get_row(string kind_of_move)
  48. {
  49.     cout << "Podaj numer wiersza "<< kind_of_move <<" chcesz ruszyć " << endl;
  50.     int row;
  51.     cin >> row;
  52.      return row--;
  53. }
  54.  
  55. int get_column(string kind_of_move)
  56. {
  57.     cout << "Podaj literę kolumny "<< kind_of_move <<" chcesz się ruszyć" << endl;
  58.     char temp;
  59.     cin >> temp;
  60.     return toupper(temp) - 65;
  61. }
  62.  
  63. void init_board(int board[8][8])
  64. {
  65.     for (int row = 0; row < 8; row++)
  66.     {
  67.         for (int col = 0; col < 8; col++)
  68.         {
  69.             if ((row + col) % 2 == 0)
  70.             {
  71.                 board[row][col] = 0;
  72.             }
  73.             else
  74.             {
  75.                 if (row < 3)
  76.                 {
  77.                     board[row][col] = 2;
  78.                 }
  79.                 else if (row > 4)
  80.                 {
  81.                     board[row][col] = 3;
  82.                 }
  83.                 else
  84.                 {
  85.                     board[row][col] = 1;
  86.                 }
  87.             }
  88.         }
  89.     }
  90. }
  91.  
  92. void draw_board(int board[8][8], bool is_white_move)
  93. {
  94.     clr_screen();
  95.  
  96.     if (is_white_move)
  97.     {
  98.         cout << "Ruch wykonuja biale" << endl;
  99.     }
  100.     else
  101.     {
  102.         cout << "Ruch wykonuja czarne" << endl;
  103.     }
  104.     cout << endl;
  105.  
  106.     cout << "  ABCDEFGH" << endl;
  107.     for (int row = 0; row < 8; row++)
  108.     {
  109.         printf("\033[37m");
  110.         cout << row + 1 << " ";
  111.         for (int col = 0; col < 8; col++)
  112.         {
  113.             if (board[row][col] == 0)
  114.             {
  115.                 draw_white_field();
  116.             }
  117.             else if (board[row][col] == 1)
  118.             {
  119.                 draw_black_field();
  120.             }
  121.             else if (board[row][col] == 2)
  122.             {
  123.                 draw_black_pawn();
  124.             }
  125.             else if (board[row][col] == 3)
  126.             {
  127.                 draw_white_pawn();
  128.             }
  129.         }
  130.         cout << endl;
  131.     }
  132. }
  133.  
  134. void draw_white_field()
  135. {
  136.     printf("\033[37m");
  137.     cout << "#";
  138. }
  139.  
  140. void draw_black_field()
  141. {
  142.     printf("\033[30m");
  143.     cout << " ";
  144. }
  145. void draw_white_pawn()
  146. {
  147.     printf("\033[37m");
  148.     cout << PAWN;
  149. }
  150. void draw_black_pawn()
  151. {
  152.     printf("\033[31m");
  153.     cout << PAWN;
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement