Advertisement
Guest User

Untitled

a guest
Jul 30th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<string.h>
  3. void display(int bishop1,char arr[8][8],char turn){
  4. int i,j;
  5. i=bishop1/8;
  6. j=bishop1%8;
  7.  
  8. //top
  9. if(i-2 >=0 && j-1 >=0){
  10. if(arr[i-2][j-1] == '0')
  11. printf("%c%d%c%d",(j+49)+'0',8-i,(j-1+49)+'0',8-i+2);
  12. }
  13. if(i-2 >=0 && j+1<=7){
  14. if(arr[i-2][j+1] == '0' || arr[i-2][j+1] == '9' )
  15. printf(",%c%d%c%d",(j+49)+'0',8-i,(j+1+49)+'0',8-i+2);
  16. }
  17. if(i-1 >=0 && j-2>=0){
  18. if(arr[i-1][j-2] == '0' || arr[i-1][j+2] == '9')
  19. printf(",%c%d%c%d",(j+49)+'0',8-i,(j-2+49)+'0',8-i+1);
  20. }
  21. if(i-1 >=0 && j+2<=7){
  22. if(arr[i-1][j+2] == '0' || arr[i-1][j+2] == '9' )
  23. printf(",%c%d%c%d",(j+49)+'0',8-i,(j+2+49)+'0',8-i+1);
  24. }
  25. //bottom
  26. if(i-1 >=0 && j-2>=0){
  27. if(arr[i-1][j-2] == '0' || arr[i-1][j-2] == '9' )
  28. printf(",%c%d%c%d",(j+49)+'0',8-i,(j-2+49)+'0',8-i-1);
  29. }
  30. if(i+1 <=7 && j+2<=7){
  31. if(arr[i+1][j+2] == '0' || arr[i+1][j+2] == '9' )
  32. printf(",%c%d%c%d",(j+49)+'0',8-i,(j+2+49)+'0',8-i-1);
  33. }
  34. if(i-2 >=0 && j-1>=0){
  35. if(arr[i-2][j-1] == '0' || arr[i-2][j-1] == '9' )
  36. printf(",%c%d%c%d",(j+49)+'0',8-i,(j-1+49)+'0',8-i-2);
  37. }
  38. if(i+2 <=7 && j+1<=7){
  39. if(arr[i+2][j+1] == '0' || arr[i+2][j+1] == '9' )
  40. printf(",%c%d%c%d",(j+49)+'0',8-i,(j+1+49)+'0',8-i-2);
  41. }
  42.  
  43. }
  44. int main(){
  45. int i,j,n,num,a=0,b=0,count=0,bishop1=-1,bishop2=-1;
  46. char fenstr[100],turn;
  47. char arr[8][8];
  48. for(i=0;i<8;i++){
  49. for(j=0;j<8;j++){
  50. arr[i][j] = '9';
  51. }
  52. }
  53. scanf("%s %c",fenstr,&turn);
  54. for(i=0;i<strlen(fenstr);i++){
  55. if(fenstr[i] >= 48 && fenstr[i] <= 57){
  56. num = fenstr[i] - 48;
  57. for(j=0;j<num;j++){
  58. arr[a][b++] = '0';
  59. count++;
  60. }
  61. }
  62. else if(fenstr[i] == '/'){
  63. if(count != 8)
  64. return 0;
  65. count=0;
  66. a++;b=0;
  67. continue;
  68. }
  69. else{
  70. if(turn == 'w' && fenstr[i] == 'K'){
  71. if(bishop1 == -1)
  72. bishop1 = 8*a + b;
  73. else
  74. bishop2 = 8*a + b;
  75. }
  76. else if(turn == 'b' && fenstr[i] == 'k'){
  77.  
  78. if(bishop1 == -1)
  79. bishop1 = 8*a + b;
  80. else
  81. bishop2 = 8*a + b;
  82. }
  83. arr[a][b++] = fenstr[i];
  84. count++;
  85. }
  86. }
  87. printf("%d %d\n",bishop1,bishop2);
  88. printf("\n\ta\tb\tc\td\te\tf\tg\th\n8\t");
  89. for(i=0;i<8;i++){
  90. for(j=0;j<8;j++){
  91. printf("%c\t",arr[i][j]);
  92. }
  93. printf("\n\n%d\t",8-i-1);
  94. }
  95. //printf("%d %d \n %d %d",bishop1/8,bishop1%8,bishop2/8,bishop2%8);
  96. printf("[");
  97. if(bishop1 != -1 )
  98. display(bishop1,arr,turn);
  99. if(bishop2 !=-1)
  100. display(bishop2,arr,turn);
  101. printf("]");
  102.  
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement