Advertisement
Essam_khames

Untitled

Dec 16th, 2018
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.92 KB | None | 0 0
  1. void set_checks1(void)
  2. {
  3.  
  4.  
  5. int i,j,k,q;
  6. for(k=0;k<ROWS;k++)
  7. {
  8. for(q=0;q<COLUMNS;q++)
  9. {
  10. movability1[k][q]=movability2[k][q]=0;
  11. checkedby1[k+1][q+1]=checkedby2[k+1][q+1]=0;
  12. if(islower(domain[k][q]))
  13. occupied[k][q]=1;
  14. else if(isupper(domain[k][q]))
  15. occupied[k][q]=2;
  16. else
  17. occupied[k][q]=0;
  18. }
  19. }
  20. for(i=0; i<ROWS;i++)
  21. {
  22. for(j=0; j<COLUMNS; j++)
  23. {
  24. if(occupied[i][j]==1){
  25.  
  26. if(domain[i][j]=='r')
  27. {
  28. k=i+1;
  29. while(!occupied[k][j]&&k<ROWS)
  30. {
  31. checkedby1[k+1][j+1]=1;
  32. movability1[k++][j]=1;
  33.  
  34. }
  35. if(k<8&&k>=0){
  36. if(occupied[k][j]==2 ||occupied[k][j]==0)
  37. {
  38. checkedby1[k+1][j+1]=1;
  39. movability1[k][j]=1;
  40. if(checkedby1[kp2i][kp2j]==1){
  41. k--;
  42. while(!occupied[k][j]&&k>=0)
  43. zone2[k--][j]=1;
  44. }
  45. }
  46. else
  47. {
  48. checkedby1[k+1][j+1]=1;
  49. }}
  50. k=i-1;
  51. while(!occupied[k][j]&&k>0)
  52. {
  53. checkedby1[k+1][j+1]=1;
  54. movability1[k--][j]=1;
  55. }
  56.  
  57. if(k<8&&k>=0){
  58. if(occupied[k][j]==2 ||occupied[k][j]==0)
  59. {
  60. checkedby1[k+1][j+1]=1;
  61. movability1[k][j]=1;
  62. if(checkedby1[kp2i][kp2j]==1){
  63. k++;
  64. while(!occupied[k][j]&&k<8)
  65. zone2[k++][j]=1;
  66. }
  67. }
  68. else
  69. {
  70. checkedby1[k+1][j+1]=1;
  71. }}
  72. k=j+1;
  73. while(!occupied[i][k]&&k<COLUMNS)
  74. {
  75. checkedby1[i+1][k+1]=1;
  76. movability1[i][k++]=1;
  77.  
  78. }if(k<8&&k>=0){
  79. if(occupied[i][k]==2 || occupied[i][k]==0 )
  80. {
  81. checkedby1[i+1][k+1]=1;
  82. movability1[i][k]=1;
  83. if(checkedby1[kp2i][kp2j]==1){
  84. k--;
  85. while(!occupied[i][k]&&k>=0)
  86. zone2[i][k--]=1;
  87. }
  88.  
  89. }
  90. else
  91. {
  92. checkedby2[i+1][k+1]=1;
  93. }}
  94. k=j-1;
  95. while(!occupied[i][k]&&k>0)
  96. {
  97. checkedby1[i+1][k+1]=1;
  98. movability1[i][k--]=1;
  99.  
  100. }if(k<8&&k>=0){
  101. if(occupied[i][k]==2 || occupied[i][k]==0)
  102. {
  103. checkedby1[i+1][k+1]=1;
  104. movability1[i][k]=1;
  105. if(checkedby1[kp2i][kp2j]==1){
  106. k++;
  107. while(!occupied[i][k]&&k<8)
  108. zone2[i][k++]=1;
  109. }
  110. }
  111. else
  112. {
  113. checkedby1[i+1][k+1]=1;
  114. }}
  115. }
  116. if(domain[i][j]=='b')
  117. {
  118. k=i+1;
  119. q=j+1;
  120. while(!occupied[k][q]&&k<ROWS&&q<COLUMNS)
  121. {
  122. checkedby1[k+1][q+1]=1;
  123. movability1[k++][q++]=1;
  124. }
  125. if((k<8 && q<8)&&(k>=0 && q>=0)){
  126. if(occupied[k][q]==2 || occupied[k][q]==0 )
  127. {
  128. checkedby1[k+1][q+1]=1;
  129. movability1[k][q]=1;
  130. if(checkedby1[kp2i][kp2j]==1){
  131. k--;q--;
  132. while(!occupied[k][q]&&k>=0&&q>=0)
  133. zone2[k--][q--]=1;
  134. }
  135. }else
  136. {
  137. checkedby1[k+1][q+1]=1;
  138. }}
  139. k=i-1;
  140. q=j-1;
  141. while(!occupied[k][q]&&k>0&&q>0)
  142. {
  143. checkedby1[k+1][q+1]=1;
  144. movability1[k--][q--]=1;
  145. }if((k<8 && q<8)&&(k>=0 && q>=0)){
  146. if(occupied[k][q]==2 || occupied[k][q]==0)
  147. {
  148. checkedby1[k+1][q+1]=1;
  149. movability1[k][q]=1;
  150. if(checkedby1[kp2i][kp2j]==1){
  151. k++;q++;
  152. while(!occupied[k][q]&&k<8&&q<8)
  153. zone2[k++][q++]=1;
  154. }
  155. }else
  156. {
  157. checkedby1[k+1][q+1]=1;
  158. }}
  159. k=i-1;
  160. q=j+1;
  161. while(!occupied[k][q]&&k>0&&q<COLUMNS)
  162. {
  163. checkedby1[k+1][q+1]=1;
  164. movability1[k--][q++]=1;
  165. }if((k<8 && q<8)&&(k>=0 && q>=0)){
  166. if(occupied[k][q]==2 || occupied[k][q]==0)
  167. {
  168. checkedby1[k+1][q+1]=1;
  169. movability1[k][q]=1;
  170. if(checkedby1[kp2i][kp2j]==1){
  171. k++;q--;
  172. while(!occupied[k][q]&&k<8&&q>=0)
  173. zone2[k++][q--]=1;
  174. }
  175. }else
  176. {
  177. checkedby1[k+1][q+1]=1;
  178. }}
  179. k=i+1;
  180. q=j-1;
  181. while(!occupied[k][q]&&k<ROWS&&q>0)
  182. {
  183. checkedby1[k+1][q+1]=1;
  184. movability1[k++][q--]=1;
  185. }if((k<8 && q<8)&&(k>=0 && q>=0)){
  186. if(occupied[k][q]==2 || occupied[k][q]==0)
  187. {
  188. checkedby1[k+1][q+1]=1;
  189. movability1[k][q]=1;
  190. if(checkedby1[kp2i][kp2j]==1){
  191. k--;q++;
  192. while(!occupied[k][q]&&k>=0&&q<8)
  193. zone2[k--][q++]=1;
  194. }
  195. }else
  196. {
  197. checkedby1[k+1][q+1]=1;
  198. }}
  199. }
  200. if(domain[i][j]=='n')
  201. {
  202. q=j+2;
  203. k=i-1;
  204. if((k<8 && q<8)&&(k>=0 && q>=0)){
  205. checkedby1[k+1][q+1]=1;
  206. if(occupied[k][q]!=1)
  207. movability1[k][q]=1;}
  208. q=j+2;
  209. k=i+1;
  210. if((k<8 && q<8)&&(k>=0 && q>=0)){
  211. checkedby1[k+1][q+1]=1;
  212. if(occupied[k][q]!=1)
  213. movability1[k][q]=1;}
  214. q=j-2;
  215. k=i-1;
  216. if((k<8 && q<8)&&(k>=0 && q>=0)){
  217.  
  218. checkedby1[k+1][q+1]=1;
  219. if(occupied[k][q]!=1)
  220. movability1[k][q]=1;}
  221. q=j-2;
  222. k=i+1;
  223. if((k<8 && q<8)&&(k>=0 && q>=0)){
  224. checkedby1[k+1][q+1]=1;
  225. if(occupied[k][q]!=1)
  226. movability1[k][q]=1;}
  227. q=j-1;
  228. k=i-2;
  229. if((k<8 && q<8)&&(k>=0 && q>=0)){
  230. checkedby1[k+1][q+1]=1;
  231. if(occupied[k][q]!=1)
  232. movability1[k][q]=1;}
  233. q=j+1;
  234. k=i-2;
  235. if((k<8 && q<8)&&(k>=0 && q>=0)){
  236. checkedby1[k+1][q+1]=1;
  237. if(occupied[k][q]!=1)
  238. movability1[k][q]=1;}
  239. q=j+1;
  240. k=i+2;
  241. if((k<8 && q<8)&&(k>=0 && q>=0)){
  242. checkedby1[k+1][q+1]=1;
  243. if(occupied[k][q]!=1)
  244. movability1[k][q]=1;}
  245. q=j-1;
  246. k=i+2;
  247. if((k<8 && q<8)&&(k>=0 && q>=0)){
  248. checkedby1[k+1][q+1]=1;
  249. if(occupied[k][q]!=1)
  250. movability1[k][q]=1;}
  251. if(checkedby1[kp2i][kp2j]==1){
  252. zone2[i][j]=1;
  253. }
  254. }
  255. if(domain[i][j]=='q')
  256. {
  257. k=i+1;
  258. q=j+1;
  259. while(!occupied[k][q]&&k<ROWS&&q<COLUMNS)
  260. {
  261. checkedby1[k+1][q+1]=1;
  262. movability1[k++][q++]=1;
  263. }
  264. if((k<8 && q<8)&&(k>=0 && q>=0)){
  265. if(occupied[k][q]==2 || occupied[k][q]==0 )
  266. {
  267. checkedby1[k+1][q+1]=1;
  268. movability1[k][q]=1;
  269. if(checkedby1[kp2i][kp2j]==1){
  270. k--;q--;
  271. while(!occupied[k][q]&&k>=0&&q>=0)
  272. zone2[k--][q--]=1;
  273. }
  274. }else
  275. {
  276. checkedby1[k+1][q+1]=1;
  277. }}
  278. k=i-1;
  279. q=j-1;
  280. while(!occupied[k][q]&&k>0&&q>0)
  281. {
  282. checkedby1[k+1][q+1]=1;
  283. movability1[k--][q--]=1;
  284. }if((k<8 && q<8)&&(k>=0 && q>=0)){
  285. if(occupied[k][q]==2 || occupied[k][q]==0)
  286. {
  287. checkedby1[k+1][q+1]=1;
  288. movability1[k][q]=1;
  289. if(checkedby1[kp2i][kp2j]==1){
  290. k++;q++;
  291. while(!occupied[k][q]&&k<8&&q<8)
  292. zone2[k++][q++]=1;
  293. }
  294. }else
  295. {
  296. checkedby1[k+1][q+1]=1;
  297. }}
  298. k=i-1;
  299. q=j+1;
  300. while(!occupied[k][q]&&k>0&&q<COLUMNS)
  301. {
  302. checkedby1[k+1][q+1]=1;
  303. movability1[k--][q++]=1;
  304. }if((k<8 && q<8)&&(k>=0 && q>=0)){
  305. if(occupied[k][q]==2 || occupied[k][q]==0)
  306. {
  307. checkedby1[k+1][q+1]=1;
  308. movability1[k][q]=1;
  309. if(checkedby1[kp2i][kp2j]==1){
  310. k++;q--;
  311. while(!occupied[k][q]&&k<8&&q>=0)
  312. zone2[k++][q--]=1;
  313. }
  314. }else
  315. {
  316. checkedby1[k+1][q+1]=1;
  317. }}
  318. k=i+1;
  319. q=j-1;
  320. while(!occupied[k][q]&&k<ROWS&&q>0)
  321. {
  322. checkedby1[k+1][q+1]=1;
  323. movability1[k++][q--]=1;
  324. }if((k<8 && q<8)&&(k>=0 && q>=0)){
  325. if(occupied[k][q]==2 || occupied[k][q]==0)
  326. {
  327. checkedby1[k+1][q+1]=1;
  328. movability1[k][q]=1;
  329. if(checkedby1[kp2i][kp2j]==1){
  330. k--;q++;
  331. while(!occupied[k][q]&&k>=0&&q<8)
  332. zone2[k--][q++]=1;
  333. }
  334. }else
  335. {
  336. checkedby1[k+1][q+1]=1;
  337. }}
  338. k=i+1;
  339. while(!occupied[k][j]&&k<ROWS)
  340. {
  341. checkedby1[k+1][j+1]=1;
  342. movability1[k++][j]=1;
  343.  
  344. }
  345. if(k<8&&k>=0){
  346. if(occupied[k][j]==2 ||occupied[k][j]==0)
  347. {
  348. checkedby1[k+1][j+1]=1;
  349. movability1[k][j]=1;
  350. if(checkedby1[kp2i][kp2j]==1){
  351. k--;
  352. while(!occupied[k][j]&&k>=0)
  353. zone2[k--][j]=1;
  354. }
  355. }
  356. else
  357. {
  358. checkedby1[k+1][j+1]=1;
  359. }}
  360. k=i-1;
  361. while(!occupied[k][j]&&k>0)
  362. {
  363. checkedby1[k+1][j+1]=1;
  364. movability1[k--][j]=1;
  365. }
  366.  
  367. if(k<8&&k>=0){
  368. if(occupied[k][j]==2 ||occupied[k][j]==0)
  369. {
  370. checkedby1[k+1][j+1]=1;
  371. movability1[k][j]=1;
  372. if(checkedby1[kp2i][kp2j]==1){
  373. k++;
  374. while(!occupied[k][j]&&k<8)
  375. zone2[k++][j]=1;
  376. }
  377. }
  378. else
  379. {
  380. checkedby1[k+1][j+1]=1;
  381. }}
  382. k=j+1;
  383. while(!occupied[i][k]&&k<COLUMNS)
  384. {
  385. checkedby1[i+1][k+1]=1;
  386. movability1[i][k++]=1;
  387.  
  388. }if(k<8&&k>=0){
  389. if(occupied[i][k]==2 || occupied[i][k]==0 )
  390. {
  391. checkedby1[i+1][k+1]=1;
  392. movability1[i][k]=1;
  393. if(checkedby1[kp2i][kp2j]==1){
  394. k--;
  395. while(!occupied[i][k]&&k>=0)
  396. zone2[i][k--]=1;
  397. }
  398.  
  399. }
  400. else
  401. {
  402. checkedby2[i+1][k+1]=1;
  403. }}
  404. k=j-1;
  405. while(!occupied[i][k]&&k>0)
  406. {
  407. checkedby1[i+1][k+1]=1;
  408. movability1[i][k--]=1;
  409.  
  410. }if(k<8&&k>=0){
  411. if(occupied[i][k]==2 || occupied[i][k]==0)
  412. {
  413. checkedby1[i+1][k+1]=1;
  414. movability1[i][k]=1;
  415. if(checkedby1[kp2i][kp2j]==1){
  416. k++;
  417. while(!occupied[i][k]&&k<8)
  418. zone2[i][k++]=1;
  419. }
  420. }
  421. else
  422. {
  423. checkedby1[i+1][k+1]=1;
  424. }}
  425. }
  426. if(domain[i][j]=='p')
  427. {
  428. k=i+1;
  429. q=j+1;
  430. if((k<8 && q<8)&&(k>=0 && q>=0)){
  431. checkedby1[k+1][q+1]=1;
  432. if(occupied[k][q]==2)
  433. movability1[k][q]=1;}
  434. q=j-1;
  435. if((k<8 && q<8)&&(k>=0 && q>=0)){
  436.  
  437. checkedby1[k+1][q+1]=1;
  438. if(occupied[k][q]==2)
  439. movability1[k][q]=1;}
  440. if(i==1)
  441. {
  442. k=i+1;
  443. if(!occupied[k][j]){
  444. movability1[k][j]=1;
  445. k++;
  446. if(!occupied[k][j])
  447. movability1[k][j]=1;}
  448. }else{
  449. if(k<8&&k>=0){
  450. k=i+1;
  451. if(!occupied[k][j])
  452. movability1[k][j]=1;}
  453. }
  454. if(checkedby1[kp2i][kp2j]==1)
  455. zone2[i][j]=1;
  456.  
  457. }
  458.  
  459. }
  460. }
  461. }
  462. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement