Advertisement
Guest User

Untitled

a guest
Dec 10th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.97 KB | None | 0 0
  1. int checkChecker(int x_checked,int y_checked){//returns 0 when there is a checkmate in (x_checked,y_checked)
  2. int i=1;
  3. if (player==1){
  4. //pawn
  5. if(board[y_checked+1][x_checked+1]=='P'||board[y_checked+1][x_checked-1]=='P'){return 0;}
  6. //queen diagonally and bishop
  7. while(x_checked+i<8&&y_checked+i<8){
  8. if(board[y_checked+i][x_checked+i]=='B'||board[y_checked+i][x_checked+i]=='Q'){return 0;}
  9. if(board[y_checked+i][x_checked+i]>='a'&&board[y_checked+i][x_checked+i]<='z'){break;}
  10. i++;
  11. }
  12. i=1;
  13. while(x_checked-i>=0&&y_checked+i<8){
  14. if(board[y_checked-i][x_checked+i]=='B'||board[y_checked-i][x_checked+i]=='Q'){return 0;}
  15. if(board[y_checked-i][x_checked+i]>='a'&&board[y_checked-i][x_checked+i]<='z'){break;}
  16. i++;
  17. }
  18. i=1;
  19. while(x_checked-i>=0&&y_checked-i>=0){
  20. if(board[y_checked-i][x_checked-i]=='B'||board[y_checked-i][x_checked-i]=='Q'){return 0;}
  21. if(board[y_checked-i][x_checked-i]>='a'&&board[y_checked-i][x_checked-i]<='z'){break;}
  22. i++;
  23. }
  24. while(x_checked+i<8&&y_checked-i>=0){
  25. if(board[y_checked+i][x_checked-i]=='B'||board[y_checked+i][x_checked-i]=='Q'){return 0;}
  26. if(board[y_checked+i][x_checked-i]>='a'&&board[y_checked+i][x_checked-i]<='z'){break;}
  27. i++;
  28. }
  29. i=1;
  30. //queen horizontally and vertically and rooks
  31. while(x_checked+i<8){
  32. if(borad[y_checked+i][x_checked]=='R'||borad[y_checked+i][x_checked]=='Q'){return 0;}
  33. if(board[y_checked+i][x_checked]>='a'&&board[y_checked+i][x_checked]<='z'){break;}
  34. i++;
  35. }
  36. i=1;
  37. while(x_checked-i>=0){
  38. if(borad[y_checked-i][x_checked]=='R'||borad[y_checked-i][x_checked]=='Q'){return 0;}
  39. if(board[y_checked-i][x_checked]>='a'&&board[y_checked-i][x_checked]<='z'){break;}
  40. i++;
  41. }
  42. i=1;
  43. while(y_checked+i<8){
  44. if(borad[y_checked][x_checked+i]=='R'||borad[y_checked][x_checked+i]=='Q'){return 0;}
  45. if(board[y_checked][x_checked+i]>='a'&&board[y_checked][x_checked+i]<='z'){break;}
  46. i++;
  47. }
  48. i=1;
  49. while(y_checked-i<=0){
  50. if(borad[y_checked][x_checked-i]=='R'||borad[y_checked][x_checked-i]=='Q'){return 0;}
  51. if(board[y_checked][x_checked-i]>='a'&&board[y_checked][x_checked-i]<='z'){break;}
  52. i++;
  53. }
  54.  
  55. i=1;
  56. //knight
  57. if(x_checked+1<8&&y_checked+2<8&&board[y_checked+2][x_checked+1]=='N'){return 0;}
  58. if(x_checked-1>=0&&y_checked+2<8&&board[y_checked+2][x_checked-1]=='N'){return 0;}
  59. if(x_checked+1<8&&y_checked-2>=0&&board[y_checked-2][x_checked+1]=='N'){return 0;}
  60. if(x_checked-1>=0&&y_checked-2>=0&&board[y_checked-2][x_checked-1]=='N'){return 0;}
  61. if(x_checked+2<8&&y_checked+1<8&&board[y_checked+1][x_checked+2]=='N'){return 0;}
  62. if(x_checked-2>=0&&y_checked+1<8&&board[y_checked+1][x_checked-2]=='N'){return 0;}
  63. if(x_checked-2>=0&&y_checked-1>=0&&board[y_checked-1][x_checked-2]=='N'){return 0;}
  64. if(x_checked+2<8&&y_checked-1>=0&&board[y_checked-1][x_checked+2]=='N'){return 0;}
  65. }
  66.  
  67. if (player==-1){i=-1;
  68. //pawn
  69. if(board[y_checked-1][x_checked-1]=='P'||board[y_checked-1][x_checked+1]=='P'){return 0;}
  70.  
  71. //queen diagonally and bishop
  72. while(x_checked+i>=0&&y_checked+i>=0){
  73. if(board[y_checked+i][x_checked+i]=='b'||board[y_checked+i][x_checked+i]=='q'){return 0;}
  74. if(board[y_checked+i][x_checked+i]>='A'&&board[y_checked+i][x_checked+i]<='Z'){break;}
  75. i--;
  76. }
  77. i=-1;
  78. while(x_checked-i<8&&y_checked+i>=0){
  79. if(board[y_checked-i][x_checked+i]=='b'||board[y_checked-i][x_checked+i]=='q'){return 0;}
  80. if(board[y_checked-i][x_checked+i]>='A'&&board[y_checked-i][x_checked+i]<='Z'){break;}
  81. i--;
  82. }
  83. i=-1;
  84. while(x_checked-i<8&&y_checked-i<8){
  85. if(board[y_checked-i][x_checked-i]=='b'||board[y_checked-i][x_checked-i]=='q'){return 0;}
  86. if(board[y_checked-i][x_checked-i]>='A'&&board[y_checked-i][x_checked-i]<='Z'){break;}
  87. i--;
  88. }
  89. while(x_checked+i>=0&&y_checked-i<8){
  90. if(board[y_checked+i][x_checked-i]=='b'||board[y_checked+i][x_checked-i]=='q'){return 0;}
  91. if(board[y_checked+i][x_checked-i]>='A'&&board[y_checked+i][x_checked-i]<='Z'){break;}
  92. i--;
  93. }
  94. i=-1;
  95. //queen horizontally and vertically and rooks
  96. while(x_checked+i>=0){
  97. if(borad[y_checked+i][x_checked]=='r'||borad[y_checked+i][x_checked]=='q'){return 0;}
  98. if(board[y_checked+i][x_checked]>='A'&&board[y_checked+i][x_checked]<='Z'){break;}
  99. i--;
  100. }
  101. i=1;
  102. while(x_checked-i<8){
  103. if(borad[y_checked-i][x_checked]=='r'||borad[y_checked-i][x_checked]=='q'){return 0;}
  104. if(board[y_checked-i][x_checked]>='A'&&board[y_checked-i][x_checked]<='Z'){break;}
  105. i--;
  106. }
  107. i=-1;
  108. while(y_checked+i>=0){
  109. if(borad[y_checked][x_checked+i]=='r'||borad[y_checked][x_checked+i]=='q'){return 0;}
  110. if(board[y_checked][x_checked+i]>='A'&&board[y_checked][x_checked+i]<='Z'){break;}
  111. i--;
  112. }
  113. i=-1;
  114. while(y_checked-i>8){
  115. if(borad[y_checked][x_checked-i]=='r'||borad[y_checked][x_checked-i]=='q'){return 0;}
  116. if(board[y_checked][x_checked-i]>='A'&&board[y_checked][x_checked-i]<='Z'){break;}
  117. i--;
  118. }
  119.  
  120. i=1;
  121. //knight
  122. if(x_checked+1<8&&y_checked+2<8&&board[y_checked+2][x_checked+1]=='n'){return 0;}
  123. if(x_checked-1>=0&&y_checked+2<8&&board[y_checked+2][x_checked-1]=='n'){return 0;}
  124. if(x_checked+1<8&&y_checked-2>=0&&board[y_checked-2][x_checked+1]=='n'){return 0;}
  125. if(x_checked-1>=0&&y_checked-2>=0&&board[y_checked-2][x_checked-1]=='n'){return 0;}
  126. if(x_checked+2<8&&y_checked+1<8&&board[y_checked+1][x_checked+2]=='n'){return 0;}
  127. if(x_checked-2>=0&&y_checked+1<8&&board[y_checked+1][x_checked-2]=='n'){return 0;}
  128. if(x_checked-2>=0&&y_checked-1>=0&&board[y_checked-1][x_checked-2]=='n'){return 0;}
  129. if(x_checked+2<8&&y_checked-1>=0&&board[y_checked-1][x_checked+2]=='n'){return 0;}
  130. }
  131.  
  132.  
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement