Advertisement
Guest User

Untitled

a guest
May 24th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.10 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdbool.h>
  4.  
  5. int board[8][8];
  6. int pawnX, pawnY, rookX, rookY, queenX, queenY, horseX, horseY;
  7.  
  8. void insertPiece(int pieceNumber, int *savePieceRow, int *savePieceCol){
  9.     int row = 0;
  10.     int col = 0;
  11.    
  12.     printf("Poziciq \n");
  13.     printf("-------------------- \n");
  14.    
  15.     printf("Vertikalno = ");
  16.     scanf("%d", &row);
  17.    
  18.     printf("Horizontalno = ");
  19.     scanf("%d", &col);
  20.    
  21.     if(row < 1 || row >= 8 || col < 1 || col >= 8)
  22.    
  23.            {
  24.            printf("-- Invalid input --\n");
  25.            return;
  26.            }
  27.            
  28.     *savePieceRow = row - 1;
  29.     *savePieceCol = col - 1;
  30.  
  31.     board[*savePieceRow][*savePieceCol] = pieceNumber;
  32. }
  33.  
  34. int menu_choice()
  35. {
  36.   int   c;
  37.    
  38.   while(1)
  39.     {
  40.          
  41.     printf("\n\n------------------------\n");
  42.     printf("1. -  Black Queen   ---- \n");
  43.     printf("2. -  Black Horse   ---- \n");
  44.     printf("3. -  White Pawn    ---- \n");
  45.     printf("4. -  White Rook    ---- \n");
  46.     printf("5. -  Result        ---- \n");
  47.     printf("6. -  Board         ---- \n");
  48.     printf("7. -  Clear         ---- \n");
  49.     printf("8. -  Exit          ---- \n");
  50.     printf("------------------------\n\n");
  51.    
  52.     fflush(stdin);
  53.     scanf("%d",&c);
  54.     if  ( c >= 1 && c <= 8){
  55.         return c;
  56.     }
  57.         printf("\n\n--  Nevaliden izbor  --\n\n\n");
  58.     }
  59. }
  60.  
  61. void initBoard()
  62. {
  63.     int row = 0;
  64.     int col = 0;
  65.    
  66.     for(row = 0; row < 8; row++)
  67.    {
  68.         for(col = 0; col < 8; col++)
  69.         {
  70.             board[row][col] = 0;
  71.         }
  72.    }
  73. }
  74.  
  75. void display_board()
  76. {  
  77.     int row = 0;
  78.     int col = 0;
  79.    
  80.     for(row = 0; row < 8; row++)
  81.   {
  82.         for(col = 0; col < 8; col++)
  83.     {
  84.       printf("-%d-", board[row][col]);
  85.     }
  86.     printf("\n");
  87.   }
  88.    printf("\n");
  89. }
  90. bool isPawnHitting()
  91. {
  92.      if(pawnX == 0)
  93.      {
  94.               return false;
  95.      }
  96.      if(pawnY == 0)
  97.      {
  98.               if(board[pawnX - 1][pawnY + 1] == 1)
  99.               {
  100.                              return true;
  101.               }
  102.      }
  103.      if(pawnY == 7)
  104.      {
  105.               if(board[pawnX - 1][pawnY - 1] == 1)
  106.               {
  107.                              return true;
  108.               }
  109.      }
  110.      if(board[pawnX - 1][pawnY - 1] == 1 || board[pawnX - 1][pawnY + 1] == 1)
  111.      {
  112.           return true;
  113.      }
  114.      return false;
  115. }
  116.  
  117. bool isRookHitting()
  118. {
  119.      int up, down, left, right;
  120.      up = rookX - 1;
  121.      down = rookX + 1;
  122.      left = rookY - 1;
  123.      right = rookY + 1;
  124.      while(up >= 0)
  125.      {
  126.               if(board[up][rookY] == 1)
  127.               {
  128.                                   return true;
  129.               }
  130.               up--;
  131.      }
  132.      while(down <= 7)
  133.      {
  134.               if(board[down][rookY] == 1)
  135.               {
  136.                                   return true;
  137.               }
  138.               down++;
  139.      }
  140.      while(left >= 0)
  141.      {
  142.               if(board[rookX][left] == 1)
  143.               {
  144.                                   return true;
  145.               }
  146.               left--;
  147.      }
  148.      while(right <= 7)
  149.      {
  150.               if(board[rookX][right] == 1)
  151.               {
  152.                                   return true;
  153.               }
  154.               right++;
  155.      }
  156.      return false;
  157. }
  158. void result(){
  159.  
  160.      if(isPawnHitting() || isRookHitting()){
  161.           printf("HIT!");
  162.           } else {
  163.           printf("MISS!");
  164.           }
  165. }
  166.  
  167. int main()
  168. {
  169.     initBoard();
  170.    
  171.  
  172. while(1)
  173.     {
  174.     switch(menu_choice())
  175.         {
  176.         case 1:
  177.             {
  178.                 insertPiece(1, &queenX, &queenY);
  179.               break;
  180.             }
  181.         case 2:
  182.             {
  183.                 insertPiece(2, &horseX, &horseY);
  184.               break;
  185.             }
  186.         case 3:
  187.             {
  188.                 insertPiece(3, &pawnX, &pawnY);
  189.                 printf("x - %d\n", pawnX);
  190.                 printf("y - %d\n", pawnY);
  191.               break;
  192.             }
  193.         case 4:
  194.             {
  195.                 insertPiece(4, &rookX, &rookY);
  196.               break;
  197.             }
  198.         case 5:
  199.             {
  200.               result();  
  201.               break;
  202.             }
  203.         case 6:
  204.             {
  205.                 display_board();
  206.               break;
  207.             }
  208.         case 7:
  209.             {
  210.                 initBoard();
  211.               break;
  212.             }
  213.         case 8:
  214.             {
  215.                 return 0;
  216.             }
  217.         }
  218.     }
  219. return  0;
  220. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement