Advertisement
Guest User

Untitled

a guest
Oct 25th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.29 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5.  
  6. {
  7. FILE *fd;
  8.  
  9. char A[8][8];
  10. fd = fopen ("input.txt", "r");
  11. if(fd == NULL)
  12. {
  13. printf("Error in opening file");
  14. return(0);
  15. }
  16. int i, j;
  17. int e, v;
  18. //fclose(fd);
  19. //Pawn pëstininkas Rook bokðtas Bishop rikis Queen karalienë King karalius Knight þirgas
  20. //didþiosios yra balti, maþosios - juodi
  21. int count = 0;
  22. int Chess = 0;
  23. int wh = 0, bl = 0;//white in trouble or black in trouble
  24. while (1)
  25. {
  26.  
  27. for (i = 0; i <=8; i++ )
  28. {
  29. for (j = 0; j <= 8; j++ )
  30. {
  31. fscanf(fd, " %c", &A[i][j]);
  32. printf("%c", A[i][j]);
  33. if ( j == 8)
  34. printf ("\n");
  35. switch(A[i][j])
  36. {
  37. case 'p':
  38. if (A[i+1][j+1] == 'K' || A[i+1][j-1] == 'K')
  39. {
  40. bl++;
  41. break;
  42. }
  43. else
  44. {
  45. break;
  46. }
  47. case 'r':
  48. e = i + 1;
  49. while (A[e][j] == '.')
  50. {
  51. e++;
  52. }
  53. if (A[e][j] == 'K')
  54. {
  55. bl++;
  56. break;
  57. }
  58. e = i - 1;
  59. while (A[e][j] == '.')
  60. {
  61. e--;
  62. }
  63. if (A[e][j] == 'K')
  64. {
  65. bl++;
  66. break;
  67. }
  68. v = j + 1;
  69. while (A[i][v] == '.')
  70. {
  71. v++;
  72. }
  73. if (A[i][v] == 'K')
  74. {
  75. bl++;
  76. break;
  77. }
  78. v = j - 1;
  79. while (A[i][v] == '.')
  80. {
  81. v--;
  82. }
  83. if (A[i][v] == 'K')
  84. {
  85. bl++;
  86. break;
  87. }
  88. case 'b':
  89. e = i + 1;
  90. v = j + 1;
  91. while (A[e][v] == '.')
  92. {
  93. e++;
  94. v++;
  95. }
  96. if (A[e][v] == 'K')
  97. {
  98. bl++;
  99. break;
  100. }
  101. e = i + 1;
  102. v = j - 1;
  103.  
  104. while (A[e][v] == '.')
  105. {
  106. e++;
  107. v--;
  108. }
  109. if (A[e][v] == 'K')
  110. {
  111. bl++;
  112. break;
  113. }
  114. e = i - 1;
  115. v = j + 1;
  116. while (A[e][v] == '.')
  117. {
  118. e--;
  119. v++;
  120. }
  121. if (A[e][v] == 'K')
  122. {
  123. bl++;
  124. break;
  125. }
  126. e = i - 1;
  127. v = j - 1;
  128. while (A[e][v] == '.')
  129. {
  130. e--;
  131. v--;
  132. }
  133. if (A[e][v] == 'K')
  134. {
  135. bl++;
  136. break;
  137. }
  138. case 'q':
  139. e = i + 1;
  140. v = j + 1;
  141. while (A[e][v] == '.')
  142. {
  143. e++;
  144. v++;
  145. }
  146. if (A[e][v] == 'K')
  147. {
  148. bl++;
  149. break;
  150. }
  151. e = i + 1;
  152. v = j - 1;
  153.  
  154. while (A[e][v] == '.')
  155. {
  156. e++;
  157. v--;
  158. }
  159. if (A[e][v] == 'K')
  160. {
  161. bl++;
  162. break;
  163. }
  164. e = i - 1;
  165. v = j + 1;
  166. while (A[e][v] == '.')
  167. {
  168. e--;
  169. v++;
  170. }
  171. if (A[e][v] == 'K')
  172. {
  173. bl++;
  174. break;
  175. }
  176. e = i - 1;
  177. v = j - 1;
  178. while (A[e][v] == '.')
  179. {
  180. e--;
  181. v--;
  182. }
  183. if (A[e][v] == 'K')
  184. {
  185. bl++;
  186. break;
  187. }
  188. e = i + 1;
  189. while (A[e][j] == '.')
  190. {
  191. e++;
  192. }
  193. if (A[e][j] == 'K')
  194. {
  195. bl++;
  196. break;
  197. }
  198. e = i - 1;
  199. while (A[e][j] == '.')
  200. {
  201. e--;
  202. }
  203. if (A[e][j] == 'K')
  204. {
  205. bl++;
  206. break;
  207. }
  208. v = j + 1;
  209. while (A[i][v] == '.')
  210. {
  211. v++;
  212. }
  213. if (A[i][v] == 'K')
  214. {
  215. bl++;
  216. break;
  217. }
  218. v = j - 1;
  219. while (A[i][v] == '.')
  220. {
  221. v--;
  222. }
  223. if (A[i][v] == 'K')
  224. {
  225. bl++;
  226. break;
  227. }
  228. break;
  229. /* case 'k':
  230. if (A[i+1][j+1] == 'K' ||[i+1][j-1] == 'K' || A[i+1][j-1] == 'K' || A[i-1][j-1] == 'K' || A[i-1][j+1] == 'K' || A[i-1][j] == 'K' || A[i][j+1] == 'K' || A[i][j-1] == 'K')
  231. {
  232. bl++;
  233. break;
  234. }
  235. else
  236. {
  237. break;
  238. }*/
  239. case 'n':
  240. if (A[i+2][j+1] == 'K' || A[i+2][j-1] == 'K' || A[i-2][j+1] == 'K' || A[i-2][j-1] == 'K' || A[i-1][j+2] == 'K' || A[i+1][j+2] == 'K' || A[i-1][j-2] == 'K' || A[i+1][j-2] == 'K')
  241. {
  242. bl++;
  243. break;
  244. }
  245. if(A[i+1][j+2] == 'K' || A[i+1][j-2] == 'K' || A[i-1][j+2] == 'K' || A[i-1][j-2] == 'K' ||A[i-2][j+1] == 'K' || A[i+2][j+1] == 'K' ||A[i-2][j-1] == 'K' || A[i+2][j-1] == 'K')
  246. {
  247. bl++;
  248. break;
  249. }
  250. else
  251. {
  252. break;
  253. }
  254. case 'P':
  255.  
  256. if (A[i-1][j+1] == 'k' || A[i-1][j-1] == 'k')
  257. {
  258. wh++;
  259. break;
  260. }
  261. else
  262. {
  263. break;
  264. }
  265. break;
  266. case 'R':
  267. e = i + 1;
  268. while (A[e][j] == '.')
  269. {
  270. e++;
  271. }
  272. if (A[e][j] == 'k')
  273. {
  274. wh++;
  275. break;
  276. }
  277. e = i - 1;
  278. while (A[e][j] == '.')
  279. {
  280. e--;
  281. }
  282. if (A[e][j] == 'k')
  283. {
  284. wh++;
  285. break;
  286. }
  287. v = j + 1;
  288. while (A[i][v] == '.')
  289. {
  290. v++;
  291. }
  292. if (A[i][v] == 'k')
  293. {
  294. wh++;
  295. break;
  296. }
  297. v = j - 1;
  298. while (A[i][v] == '.')
  299. {
  300. v--;
  301. }
  302. if (A[i][v] == 'k')
  303. {
  304. wh++;
  305. break;
  306. }
  307. break;
  308. case 'B':
  309. e = i + 1;
  310. v = j + 1;
  311. while (A[e][v] == '.')
  312. {
  313. e++;
  314. v++;
  315. }
  316. if (A[e][v] == 'k')
  317. {
  318. wh++;
  319. break;
  320. }
  321. e = i + 1;
  322. v = j - 1;
  323.  
  324. while (A[e][v] == '.')
  325. {
  326. e++;
  327. v--;
  328. }
  329. if (A[e][v] == 'k')
  330. {
  331. wh++;
  332. break;
  333. }
  334. e = i - 1;
  335. v = j + 1;
  336. while (A[e][v] == '.')
  337. {
  338. e--;
  339. v++;
  340. }
  341. if (A[e][v] == 'k')
  342. {
  343. wh++;
  344. break;
  345. }
  346. e = i - 1;
  347. v = j - 1;
  348. while (A[e][v] == '.')
  349. {
  350. e--;
  351. v--;
  352. }
  353. if (A[e][v] == 'k')
  354. {
  355. wh++;
  356. break;
  357. }
  358. case 'Q':
  359. e = i + 1;
  360. v = j + 1;
  361. while (A[e][v] == '.')
  362. {
  363. e++;
  364. v++;
  365. }
  366. if (A[e][v] == 'k')
  367. {
  368. wh++;
  369. break;
  370. }
  371. e = i + 1;
  372. v = j - 1;
  373.  
  374. while (A[e][v] == '.')
  375. {
  376. e++;
  377. v--;
  378. }
  379. if (A[e][v] == 'k')
  380. {
  381. wh++;
  382. break;
  383. }
  384. e = i - 1;
  385. v = j + 1;
  386. while (A[e][v] == '.')
  387. {
  388. e--;
  389. v++;
  390. }
  391. if (A[e][v] == 'k')
  392. {
  393. wh++;
  394. break;
  395. }
  396. e = i - 1;
  397. v = j - 1;
  398. while (A[e][v] == '.')
  399. {
  400. e--;
  401. v--;
  402. }
  403. if (A[e][v] == 'k')
  404. {
  405. wh++;
  406. break;
  407. }
  408. e = i + 1;
  409. while (A[e][j] == '.')
  410. {
  411. e++;
  412. }
  413. if (A[e][j] == 'k')
  414. {
  415. wh++;
  416. break;
  417. }
  418. e = i - 1;
  419. while (A[e][j] == '.')
  420. {
  421. e--;
  422. }
  423. if (A[e][j] == 'k')
  424. {
  425. wh++;
  426. break;
  427. }
  428. v = j + 1;
  429. while (A[i][v] == '.')
  430. {
  431. v++;
  432. }
  433. if (A[i][v] == 'k')
  434. {
  435. wh++;
  436. break;
  437. }
  438. v = j - 1;
  439. while (A[i][v] == '.')
  440. {
  441. v--;
  442. }
  443. if (A[i][v] == 'k')
  444. {
  445. wh++;
  446. break;
  447. }
  448. /* case 'K':
  449. if (A[i+1][j+1] == 'k' || A[i+1][j-1] == 'k' || A[i+1][j-1] == 'k' || A[i-1][j-1] == 'k' || A[i-1][j+1] == 'k' || A[i-1][j] == 'k' || B[ee].A[i][j+1] == 'k' || B[ee].A[i][j-1] == 'k')
  450. {
  451. wh++;
  452. break;
  453. }
  454. else
  455. {
  456. break;
  457. }*/
  458. case 'N':
  459. if (A[i+2][j+1] == 'k' || A[i+2][j-1] == 'k' || A[i-2][j+1] == 'k' || A[i-2][j-1] == 'k' || A[i-1][j+2] == 'k' || A[i+1][j+2] == 'k' || A[i-1][j-2] == 'k' || A[i+1][j-2] == 'k')
  460. {
  461. wh++;
  462. break;
  463. }
  464. if(A[i+1][j+2] == 'k' || A[i+1][j-2] == 'k' || A[i-1][j+2] == 'k' || A[i-1][j-2] == 'k' || A[i-2][j+1] == 'k' || A[i+2][j+1] == 'k' || A[i-2][j-1] == 'k' || A[i+2][j-1] == 'k')
  465. {
  466. wh++;
  467. break;
  468. }
  469. else
  470. {
  471. break;
  472. }
  473. default:
  474. A[i][j]='.';
  475. break;
  476. }
  477. /*for(i = 2; i <=10; i++)//in order to clean an array
  478. {
  479. for(j = 2; j <= 9; j++ )
  480. {
  481. A[i][j] == '.';
  482.  
  483. }
  484. }*/
  485.  
  486. }
  487. }
  488. count ++;
  489. if (bl == 0 && wh == 0)
  490. {
  491. printf ("\nGame %d: no king is in check\n", count);
  492. }
  493. if (bl > 0)
  494. {
  495. printf("\nGame %d: black king is in check\n", count) ;
  496. bl = 0;
  497. }
  498. if (wh > 0)
  499. {
  500. printf("\nGame %d: white king is in check\n", count) ;
  501. wh = 0;
  502. }
  503. /*else if (bl >= 1 && wh >= 1)
  504. {
  505. printf("\nGame %d: white and black kings are in check\n", count) ;
  506. }*/
  507. if( feof(fd) )
  508. {
  509. break ;
  510. }
  511.  
  512. }
  513.  
  514.  
  515.  
  516.  
  517.  
  518. return 0;
  519. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement