fork download
  1. import java.io.*;
  2. import java.util.*;
  3. public class Main{
  4. static boolean Blacking(int c , int t , String [] [] y){
  5. int counter = 0;
  6. int first = c,second = t;
  7. int done = 0;
  8. while(second<8)
  9. {
  10. if(y[first][second].equals("R") || y[first][second].equals("Q"))
  11. {
  12. done = 1;
  13. break;
  14. }
  15. second++;
  16. }
  17. first = c;
  18. second = t;
  19. while(second>=0 && done ==0)
  20. {
  21. if(y[first][second].equals("R")||y[first][second].equals("Q"))
  22. {
  23. done = 1;
  24. break;
  25. }
  26. second--;
  27. }
  28. first = c;
  29. second = t;
  30. while(first<8 && done ==0)
  31. {
  32. if(y[first][second].equals("R")||y[first][second].equals("Q"))
  33. {
  34. done = 1;
  35. break;
  36. }
  37. first++;
  38. }
  39. first = c;
  40. second = t;
  41. while(first>=0 && done ==0)
  42. {
  43. if(y[first][second].equals("R")||y[first][second].equals("Q"))
  44. {
  45. done = 1;
  46. break;
  47. }
  48. first--;
  49. }
  50. first = c;
  51. second = t;
  52. while(second<8 && first<8 && done ==0)
  53. {
  54. if(y[first][second].equals("Q")||y[first][second].equals("R"))
  55. {
  56. done = 1;
  57. break;
  58. }
  59. first++;
  60. second++;
  61. }
  62. first = c;
  63. second = t;
  64. while(second>=0 && first<8&& done ==0)
  65. {
  66. if(y[first][second].equals("Q")||y[first][second].equals("B"))
  67. {
  68. done = 1;
  69. break;
  70. }
  71. first++;
  72. second--;
  73. }
  74. first = c;
  75. second = t;
  76. while(second>=0 && first>=0 && done ==0)
  77. {
  78. if(y[first][second].equals("Q")||y[first][second].equals("B"))
  79. {
  80. done = 1;
  81. break;
  82. }
  83. first--;
  84. second--;
  85. }
  86. first = c;
  87. second = t;
  88. while(second<8 && first>=0 && done ==0)
  89. {
  90. if(y[first][second].equals("Q")||y[first][second].equals("B"))
  91. {
  92. done = 1;
  93. break;
  94. }
  95. first--;
  96. second++;
  97. }
  98. first = c;
  99. second = t;
  100. counter = 0;
  101. while(first<8 && second<8 && done ==0 && counter<2)
  102. {
  103. if(y[first][second].equals("N"))
  104. {
  105. done = 1;
  106. break;
  107. }
  108. first += 2;
  109. second++;
  110. counter++;
  111. }
  112. first = c;
  113. second = t;
  114. counter = 0;
  115. while(first<8 && second>=0 && counter<2 && done==0)
  116. {
  117. if(y[first][second].equals("N"))
  118. {
  119. done = 1;
  120. break;
  121. }
  122. first += 2;
  123. second--;
  124. counter++;
  125. }
  126. first = c;
  127. second = t;
  128. counter = 0;
  129. while(first>=0 && second>=0 && done==0)
  130. {
  131. if(y[first][second].equals("N"))
  132. {
  133. done = 1;
  134. break;
  135. }
  136. first -= 2;
  137. second--;
  138. counter++;
  139. }
  140. first = c;
  141. second = t;
  142. counter = 0;
  143. while(first>=0 && second<8 && counter<2 && done==0)
  144. {
  145. if(y[first][second].equals("N"))
  146. {
  147. done = 1;
  148. break;
  149. }
  150. first -= 2;
  151. second++;
  152. counter++;
  153. }
  154. first = c;
  155. second = t;
  156. counter = 0;
  157. while(first<8 && second<8 && counter<2 && done==0)
  158. {
  159. if(y[first][second].equals("N"))
  160. {
  161. done = 1;
  162. break;
  163. }
  164. first++;
  165. second +=2;
  166. counter++;
  167. }
  168. first = c;
  169. second = t;
  170. counter = 0;
  171. while(first<8 && second>=0 && counter<2 && done==0)
  172. {
  173. if(y[first][second].equals("N"))
  174. {
  175. done = 1;
  176. break;
  177. }
  178. first++;
  179. second -=2;
  180. counter++;
  181. }
  182. first = c;
  183. second = t;
  184. counter = 0;
  185. while(first>=0 && second>=0 && counter<2 && done==0)
  186. {
  187. if(y[first][second].equals("P"))
  188. {
  189. done = 1;
  190. break;
  191. }
  192. first--;
  193. second--;
  194. counter++;
  195. }
  196. first = c;
  197. second = t;
  198. counter = 0;
  199. while(first>=0 && second<8 && counter<2 && done==0)
  200. {
  201. if(y[first][second].equals("P"))
  202. {
  203. done = 1;
  204. break;
  205. }
  206. first--;
  207. second++;
  208. counter++;
  209. }
  210. if(done==1)
  211. {
  212. return true;
  213. }
  214. return false;
  215. }
  216. static boolean WhiteKing(int c , int t , String [] [] y){
  217. int counter = 0;
  218. int done = 0;
  219. int first = c,second = t;
  220. while(second<8 && done==0)
  221. {
  222. if(y[first][second].equals("r") || y[first][second].equals("q"))
  223. {
  224. done = 1;
  225. break;
  226. }
  227. second++;
  228. }
  229. first = c;
  230. second = t;
  231. while(second>=0 && done==0)
  232. {
  233. if(y[first][second].equals("r")||y[first][second].equals("q"))
  234. {
  235. done = 1;
  236. break;
  237. }
  238. second--;
  239. }
  240. first = c;
  241. second = t;
  242. while(first<8 && done ==0)
  243. {
  244. if(y[first][second].equals("r")||y[first][second].equals("q"))
  245. {
  246. done = 1;
  247. break;
  248. }
  249. first++;
  250. }
  251. first = c;
  252. second = t;
  253. while(first>=0 && done==0)
  254. {
  255. if(y[first][second].equals("r")||y[first][second].equals("q"))
  256. {
  257. done = 1;
  258. break;
  259. }
  260. first--;
  261. }
  262. first = c;
  263. second = t;
  264. while(second<8 && first<8 && done==0)
  265. {
  266. if(y[first][second].equals("q")||y[first][second].equals("b"))
  267. {
  268. done = 1;
  269. break;
  270. }
  271. first++;
  272. second++;
  273. }
  274. first = c;
  275. second = t;
  276. while(second>=0 && first<8 && done ==0)
  277. {
  278. if(y[first][second].equals("q")||y[first][second].equals("b"))
  279. {
  280. done = 1;
  281. break;
  282. }
  283. first++;
  284. second--;
  285. }
  286. first = c;
  287. second = t;
  288. while(second>=0 && first>=0 && done ==0)
  289. {
  290. if(y[first][second].equals("q")||y[first][second].equals("b"))
  291. {
  292. done = 1;
  293. break;
  294. }
  295. first--;
  296. second--;
  297. }
  298. first = c;
  299. second = t;
  300. while(second<8 && first>=0 && done == 0)
  301. {
  302. if(y[first][second].equals("q")||y[first][second].equals("b"))
  303. {
  304. done = 1;
  305. break;
  306. }
  307. first--;
  308. second++;
  309. }
  310. first = c;
  311. second = t;
  312. while(first<8 && second<8 && counter<2 && done==0)
  313. {
  314. if(y[first][second].equals("n"))
  315. {
  316. done = 1;
  317. break;
  318. }
  319. first += 2;
  320. second++;
  321. counter++;
  322. }
  323. first = c;
  324. second = t;
  325. counter = 0;
  326. while(first<8 && second>=0 && counter<2 && done==0)
  327. {
  328. if(y[first][second].equals("n"))
  329. {
  330. done = 1;
  331. break;
  332. }
  333. first += 2;
  334. second--;
  335. counter++;
  336. }
  337. first = c;
  338. second = t;
  339. counter = 0;
  340. while(first>=0 && second>=0 && done ==0 && counter<2)
  341. {
  342. if(y[first][second].equals("n"))
  343. {
  344. done = 1;
  345. break;
  346. }
  347. first -= 2;
  348. second--;
  349. counter++;
  350. }
  351. first = c;
  352. second = t;
  353. counter = 0;
  354. while(first>=0 && second<8 && done ==0 && counter<2)
  355. {
  356. if(y[first][second].equals("n"))
  357. {
  358. done = 1;
  359. break;
  360. }
  361. first -= 2;
  362. second++;
  363. counter++;
  364. }
  365. first = c;
  366. second = t;
  367. counter = 0;
  368. while(first<8 && second<8 && counter<2 && done==0)
  369. {
  370. if(y[first][second].equals("n"))
  371. {
  372. done = 1;
  373. break;
  374. }
  375. first++;
  376. second +=2;
  377. counter++;
  378. }
  379. first = c;
  380. second = t;
  381. counter = 0;
  382. while(first<8 && second>=0 && counter<2 && done==0)
  383. {
  384. if(y[first][second].equals("n"))
  385. {
  386. done = 1;
  387. break;
  388. }
  389. first++;
  390. second -=2;
  391. counter++;
  392. }
  393. first = c;
  394. second = t;
  395. counter = 0;
  396. while(first<8 && second>=0 && counter<2 && done==0)
  397. {
  398. if(y[first][second].equals("p"))
  399. {
  400. done = 1;
  401. break;
  402. }
  403. first ++;
  404. second--;
  405. counter++;
  406. }
  407. first = c;
  408. second = t;
  409. counter = 0;
  410. while(first<8 && second<8 && counter<2 && done == 0)
  411. {
  412. if(y[first][second].equals("p"))
  413. {
  414. done = 1;
  415. break;
  416. }
  417. first ++;
  418. second++;
  419. counter++;
  420. }
  421. if(done==1)
  422. {
  423. return true;
  424. }
  425. return false;
  426. }
  427. public static void main(String [] args)throws IOException{
  428. String [] [] x = new String[8][8];
  429. int i = 1;
  430. String line;
  431. while((line = k.readLine()) != null)
  432. {
  433. boolean B = false,W = false;
  434. String [][] y = new String [8][8];
  435. int c = 7;
  436. while(c>=0)
  437. {
  438. int t = 7;
  439. String s = "";
  440. if(c==7)
  441. {
  442. s = line;
  443. }
  444. else
  445. {
  446. s = k.readLine();
  447. }
  448. while(t>=0)
  449. {
  450. y[c][t] = ""+s.charAt(t);
  451. t--;
  452. }
  453. c--;
  454. }
  455. c = 0;
  456. int u = 0;
  457. while(c<8)
  458. {
  459. int t = 0;
  460. while(t<8)
  461. {
  462. if(!(y[c][t].equals(".")))
  463. {
  464. u = 1;
  465. break;
  466. }
  467. t++;
  468. }
  469. c++;
  470. }
  471. if(u==0)
  472. {
  473. break;
  474. }
  475. else
  476. {
  477. c = 0;
  478. while(c<8)
  479. {
  480. int t = 0;
  481. while(t<8)
  482. {
  483. if(y[c][t].equals("K"))
  484. {
  485. W = WhiteKing(c,t,y);
  486. if(W)
  487. {
  488. break;
  489. }
  490. }
  491. else if(y[c][t].equals("k"))
  492. {
  493. B = Blacking(c,t,y);
  494. if(B)
  495. {
  496. break;
  497. }
  498. }
  499. t++;
  500. }
  501. c++;
  502. }
  503. if(W)
  504. {
  505. z.println("Game #"+i+": white king is in check.");
  506. z.flush();
  507. i++;
  508. }
  509. else if(B)
  510. {
  511. z.println("Game #"+i+": black king is in check.");
  512. z.flush();
  513. i++;
  514. }
  515. else
  516. {
  517. z.println("Game #"+i+": no king is in check.");
  518. z.flush();
  519. i++;
  520. }
  521. }
  522. }
  523. }
  524. }
Runtime error #stdin #stdout 0.07s 380224KB
stdin
..k.....
ppp.pppp
........
.R...B..
........
........
PPPPPPPP
K.......

rnbqkbnr
pppppppp
........
........
........
........
PPPPPPPP
RNBQKBNR

rnbqk.nr
ppp..ppp
....p...
...p....
.bPP....
.....N..
PP..PPPP
RNBQKB.R

........
........
........
........
........
........
........
........
stdout
Game #1: black king is in check.