Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdbool.h>
- int board[8][8];
- int pawnX, pawnY, rookX, rookY, queenX, queenY, horseX, horseY;
- void insertPiece(int pieceNumber, int *savePieceRow, int *savePieceCol){
- int row = 0;
- int col = 0;
- printf("Poziciq \n");
- printf("-------------------- \n");
- printf("Vertikalno = ");
- scanf("%d", &row);
- printf("Horizontalno = ");
- scanf("%d", &col);
- if(row < 1 || row >= 8 || col < 1 || col >= 8)
- {
- printf("-- Invalid input --\n");
- return;
- }
- *savePieceRow = row - 1;
- *savePieceCol = col - 1;
- board[*savePieceRow][*savePieceCol] = pieceNumber;
- }
- int menu_choice()
- {
- int c;
- while(1)
- {
- printf("\n\n------------------------\n");
- printf("1. - Black Queen ---- \n");
- printf("2. - Black Horse ---- \n");
- printf("3. - White Pawn ---- \n");
- printf("4. - White Rook ---- \n");
- printf("5. - Result ---- \n");
- printf("6. - Board ---- \n");
- printf("7. - Clear ---- \n");
- printf("8. - Exit ---- \n");
- printf("------------------------\n\n");
- fflush(stdin);
- scanf("%d",&c);
- if ( c >= 1 && c <= 8){
- return c;
- }
- printf("\n\n-- Nevaliden izbor --\n\n\n");
- }
- }
- void initBoard()
- {
- int row = 0;
- int col = 0;
- for(row = 0; row < 8; row++)
- {
- for(col = 0; col < 8; col++)
- {
- board[row][col] = 0;
- }
- }
- }
- void display_board()
- {
- int row = 0;
- int col = 0;
- for(row = 0; row < 8; row++)
- {
- for(col = 0; col < 8; col++)
- {
- printf("-%d-", board[row][col]);
- }
- printf("\n");
- }
- printf("\n");
- }
- bool isPawnHitting()
- {
- if(pawnX == 0)
- {
- return false;
- }
- if(pawnY == 0)
- {
- if(board[pawnX - 1][pawnY + 1] == 1)
- {
- return true;
- }
- }
- if(pawnY == 7)
- {
- if(board[pawnX - 1][pawnY - 1] == 1)
- {
- return true;
- }
- }
- if(board[pawnX - 1][pawnY - 1] == 1 || board[pawnX - 1][pawnY + 1] == 1)
- {
- return true;
- }
- return false;
- }
- bool isRookHitting()
- {
- int up, down, left, right;
- up = rookX - 1;
- down = rookX + 1;
- left = rookY - 1;
- right = rookY + 1;
- while(up >= 0)
- {
- if(board[up][rookY] == 1)
- {
- return true;
- }
- up--;
- }
- while(down <= 7)
- {
- if(board[down][rookY] == 1)
- {
- return true;
- }
- down++;
- }
- while(left >= 0)
- {
- if(board[rookX][left] == 1)
- {
- return true;
- }
- left--;
- }
- while(right <= 7)
- {
- if(board[rookX][right] == 1)
- {
- return true;
- }
- right++;
- }
- return false;
- }
- void result(){
- if(isPawnHitting() || isRookHitting()){
- printf("HIT!");
- } else {
- printf("MISS!");
- }
- }
- int main()
- {
- initBoard();
- while(1)
- {
- switch(menu_choice())
- {
- case 1:
- {
- insertPiece(1, &queenX, &queenY);
- break;
- }
- case 2:
- {
- insertPiece(2, &horseX, &horseY);
- break;
- }
- case 3:
- {
- insertPiece(3, &pawnX, &pawnY);
- printf("x - %d\n", pawnX);
- printf("y - %d\n", pawnY);
- break;
- }
- case 4:
- {
- insertPiece(4, &rookX, &rookY);
- break;
- }
- case 5:
- {
- result();
- break;
- }
- case 6:
- {
- display_board();
- break;
- }
- case 7:
- {
- initBoard();
- break;
- }
- case 8:
- {
- return 0;
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement