home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 5_2007-2008.ISO / data / Zips / CHESS20396612282006.psc / AIwb1.0.bas < prev    next >
BASIC Source File  |  2006-12-28  |  23KB  |  1,116 lines

  1. Attribute VB_Name = "AI"
  2.  
  3.  
  4. Public ChessBoard(1 To 8, 1 To 8) As Byte
  5. Public WhiteMobility, BlackMobility As Integer
  6. Public MoveToPlay As String
  7.  
  8. Private Declare Function GetInputState Lib "user32" () As Long
  9. Sub EngineGo() ' in this version it is not used
  10. Call Alpha_Beta_Prune(1, 0, MINVALUE, MAXVALUE)
  11. End Sub
  12.  
  13. 'this  is initialization function for all needed data
  14. Function Initialize_Board()
  15.  
  16. For i = 0 To 63
  17. WCenter_Points(i) = 0
  18. BCenter_Points(i) = 0
  19.  
  20. Next i
  21.  
  22. WCenter_Points(33) = 5
  23. WCenter_Points(35) = 10
  24. WCenter_Points(36) = 9
  25. WCenter_Points(37) = 6
  26. BCenter_Points(26) = 5
  27. BCenter_Points(27) = 10
  28. BCenter_Points(28) = 9
  29. BCenter_Points(29) = 6
  30.  
  31. sign1 = 1
  32.  RWRockMoved = False
  33.  LWRockMoved = False
  34.  RBRockMoved = False
  35.  LBRockMoved = False
  36.  WKingMoved = False
  37.  BKingMoved = False
  38.  WKO_O = False
  39.  WKO_O_O = False
  40.  BKO_O = False
  41.  BKO_O_O = False
  42.  
  43. For i = 0 To 20
  44. MB(i) = -1
  45. MB(i + 99) = -1
  46. Next i
  47. MB(30) = -1
  48. MB(40) = -1
  49. MB(50) = -1
  50. MB(60) = -1
  51. MB(70) = -1
  52. MB(80) = -1
  53. MB(90) = -1
  54.  
  55. MB(39) = -1
  56. MB(49) = -1
  57. MB(59) = -1
  58. MB(69) = -1
  59. MB(79) = -1
  60. MB(89) = -1
  61. MB(99) = -1
  62.  
  63.  
  64. MB(21) = 0
  65. MB(22) = 1
  66. MB(23) = 2
  67. MB(24) = 3
  68. MB(25) = 4
  69. MB(26) = 5
  70. MB(27) = 6
  71. MB(28) = 7
  72. MB(31) = 8
  73. MB(32) = 9
  74. MB(33) = 10
  75. MB(34) = 11
  76. MB(35) = 12
  77. MB(36) = 13
  78. MB(37) = 14
  79. MB(38) = 15
  80. MB(41) = 16
  81. MB(42) = 17
  82. MB(43) = 18
  83. MB(44) = 19
  84. MB(45) = 20
  85. MB(46) = 21
  86. MB(47) = 22
  87. MB(48) = 23
  88. MB(51) = 24
  89. MB(52) = 25
  90. MB(53) = 26
  91. MB(54) = 27
  92. MB(55) = 28
  93. MB(56) = 29
  94. MB(57) = 30
  95. MB(58) = 31
  96. MB(61) = 32
  97. MB(62) = 33
  98. MB(63) = 34
  99. MB(64) = 35
  100. MB(65) = 36
  101. MB(66) = 37
  102. MB(67) = 38
  103. MB(68) = 39
  104. MB(71) = 40
  105. MB(72) = 41
  106. MB(73) = 42
  107. MB(74) = 43
  108. MB(75) = 44
  109. MB(76) = 45
  110. MB(77) = 46
  111. MB(78) = 47
  112. MB(81) = 48
  113. MB(82) = 49
  114. MB(83) = 50
  115. MB(84) = 51
  116. MB(85) = 52
  117. MB(86) = 53
  118. MB(87) = 54
  119. MB(88) = 55
  120. MB(91) = 56
  121. MB(92) = 57
  122. MB(93) = 58
  123. MB(94) = 59
  124. MB(95) = 60
  125. MB(96) = 61
  126. MB(97) = 62
  127. MB(98) = 63
  128.  
  129. LookUp(0) = 21
  130. LookUp(1) = 22
  131. LookUp(2) = 23
  132. LookUp(3) = 24
  133. LookUp(4) = 25
  134. LookUp(5) = 26
  135. LookUp(6) = 27
  136. LookUp(7) = 28
  137. LookUp(8) = 31
  138. LookUp(9) = 32
  139. LookUp(10) = 33
  140. LookUp(11) = 34
  141. LookUp(12) = 35
  142. LookUp(13) = 36
  143. LookUp(14) = 37
  144. LookUp(15) = 38
  145. LookUp(16) = 41
  146. LookUp(17) = 42
  147. LookUp(18) = 43
  148. LookUp(19) = 44
  149. LookUp(20) = 45
  150. LookUp(21) = 46
  151. LookUp(22) = 47
  152. LookUp(23) = 48
  153. LookUp(24) = 51
  154. LookUp(25) = 52
  155. LookUp(26) = 53
  156. LookUp(27) = 54
  157. LookUp(28) = 55
  158. LookUp(29) = 56
  159. LookUp(30) = 57
  160. LookUp(31) = 58
  161. LookUp(32) = 61
  162. LookUp(33) = 62
  163. LookUp(34) = 63
  164. LookUp(35) = 64
  165. LookUp(36) = 65
  166. LookUp(37) = 66
  167. LookUp(38) = 67
  168. LookUp(39) = 68
  169. LookUp(40) = 71
  170. LookUp(41) = 72
  171. LookUp(42) = 73
  172. LookUp(43) = 74
  173. LookUp(44) = 75
  174. LookUp(45) = 76
  175. LookUp(46) = 77
  176. LookUp(47) = 78
  177. LookUp(48) = 81
  178. LookUp(49) = 82
  179. LookUp(50) = 83
  180. LookUp(51) = 84
  181. LookUp(52) = 85
  182. LookUp(53) = 86
  183. LookUp(54) = 87
  184. LookUp(55) = 88
  185. LookUp(56) = 91
  186. LookUp(57) = 92
  187. LookUp(58) = 93
  188. LookUp(59) = 94
  189. LookUp(60) = 95
  190. LookUp(61) = 96
  191. LookUp(62) = 97
  192. LookUp(63) = 98
  193.  
  194.  
  195.  
  196. MT(0, 0) = -11
  197. MT(0, 1) = -10
  198. MT(0, 2) = -9
  199. MT(0, 3) = 0
  200. MT(0, 4) = 0
  201. MT(0, 5) = 0
  202. MT(0, 6) = 0
  203. MT(0, 7) = 0
  204. MT(1, 0) = 9
  205. MT(1, 1) = 10
  206. MT(1, 2) = 11
  207. MT(1, 3) = 0
  208. MT(1, 4) = 0
  209. MT(1, 5) = 0
  210. MT(1, 6) = 0
  211. MT(1, 7) = 0
  212. MT(2, 0) = -21
  213. MT(2, 1) = -19
  214. MT(2, 2) = -12
  215. MT(2, 3) = -8
  216. MT(2, 4) = 8
  217. MT(2, 5) = 12
  218. MT(2, 6) = 19
  219. MT(2, 7) = 21
  220. MT(3, 0) = -11
  221. MT(3, 1) = -9
  222. MT(3, 2) = 9
  223. MT(3, 3) = 0
  224. MT(3, 4) = 0
  225. MT(3, 5) = 0
  226. MT(3, 6) = 0
  227. MT(3, 7) = 0
  228. MT(4, 0) = -10
  229. MT(4, 1) = -1
  230. MT(4, 2) = -1
  231. MT(4, 3) = 10
  232. MT(4, 4) = 0
  233. MT(4, 5) = 0
  234. MT(4, 6) = 0
  235. MT(4, 7) = 0
  236. MT(5, 0) = -11
  237. MT(5, 1) = -10
  238. MT(5, 2) = -9
  239. MT(5, 3) = -1
  240. MT(5, 4) = 1
  241. MT(5, 5) = 9
  242. MT(5, 6) = 10
  243. MT(5, 7) = 11
  244. MT(6, 0) = -11
  245. MT(6, 1) = -10
  246. MT(6, 2) = -9
  247. MT(6, 3) = -1
  248. MT(6, 4) = 1
  249. MT(6, 5) = 9
  250. MT(6, 6) = 10
  251. MT(6, 7) = 11
  252. RankLookUp(0, 0) = 0
  253. RankLookUp(0, 1) = 7
  254. RankLookUp(1, 0) = 0
  255. RankLookUp(1, 1) = 7
  256. RankLookUp(2, 0) = 0
  257. RankLookUp(2, 1) = 7
  258. RankLookUp(3, 0) = 0
  259. RankLookUp(3, 1) = 7
  260. RankLookUp(4, 0) = 0
  261. RankLookUp(4, 1) = 7
  262. RankLookUp(5, 0) = 0
  263. RankLookUp(5, 1) = 7
  264. RankLookUp(6, 0) = 0
  265. RankLookUp(6, 1) = 7
  266. RankLookUp(7, 0) = 0
  267. RankLookUp(7, 1) = 7
  268. RankLookUp(8, 0) = 8
  269. RankLookUp(8, 1) = 15
  270. RankLookUp(9, 0) = 8
  271. RankLookUp(9, 1) = 15
  272. RankLookUp(10, 0) = 8
  273. RankLookUp(10, 1) = 15
  274. RankLookUp(11, 0) = 8
  275. RankLookUp(11, 1) = 15
  276. RankLookUp(12, 0) = 8
  277. RankLookUp(12, 1) = 15
  278. RankLookUp(13, 0) = 8
  279. RankLookUp(13, 1) = 15
  280. RankLookUp(14, 0) = 8
  281. RankLookUp(14, 1) = 15
  282. RankLookUp(15, 0) = 8
  283. RankLookUp(15, 1) = 15
  284. RankLookUp(16, 0) = 16
  285. RankLookUp(16, 1) = 23
  286. RankLookUp(17, 0) = 16
  287. RankLookUp(17, 1) = 23
  288. RankLookUp(18, 0) = 16
  289. RankLookUp(18, 1) = 23
  290. RankLookUp(19, 0) = 16
  291. RankLookUp(19, 1) = 23
  292. RankLookUp(20, 0) = 16
  293. RankLookUp(20, 1) = 23
  294. RankLookUp(21, 0) = 16
  295. RankLookUp(21, 1) = 23
  296. RankLookUp(22, 0) = 16
  297. RankLookUp(22, 1) = 23
  298. RankLookUp(23, 0) = 16
  299. RankLookUp(23, 1) = 23
  300. RankLookUp(24, 0) = 24
  301. RankLookUp(24, 1) = 31
  302. RankLookUp(25, 0) = 24
  303. RankLookUp(25, 1) = 31
  304. RankLookUp(26, 0) = 24
  305. RankLookUp(26, 1) = 31
  306. RankLookUp(27, 0) = 24
  307. RankLookUp(27, 1) = 31
  308. RankLookUp(28, 0) = 24
  309. RankLookUp(28, 1) = 31
  310. RankLookUp(29, 0) = 24
  311. RankLookUp(29, 1) = 31
  312. RankLookUp(30, 0) = 24
  313. RankLookUp(30, 1) = 31
  314. RankLookUp(31, 0) = 24
  315. RankLookUp(31, 1) = 31
  316. RankLookUp(32, 0) = 32
  317. RankLookUp(32, 1) = 39
  318. RankLookUp(33, 0) = 32
  319. RankLookUp(33, 1) = 39
  320. RankLookUp(34, 0) = 32
  321. RankLookUp(34, 1) = 39
  322. RankLookUp(35, 0) = 32
  323. RankLookUp(35, 1) = 39
  324. RankLookUp(36, 0) = 32
  325. RankLookUp(36, 1) = 39
  326. RankLookUp(37, 0) = 32
  327. RankLookUp(37, 1) = 39
  328. RankLookUp(38, 0) = 32
  329. RankLookUp(38, 1) = 39
  330. RankLookUp(39, 0) = 32
  331. RankLookUp(39, 1) = 39
  332. RankLookUp(40, 0) = 40
  333. RankLookUp(40, 1) = 47
  334. RankLookUp(41, 0) = 40
  335. RankLookUp(41, 1) = 47
  336. RankLookUp(42, 0) = 40
  337. RankLookUp(42, 1) = 47
  338. RankLookUp(43, 0) = 40
  339. RankLookUp(43, 1) = 47
  340. RankLookUp(44, 0) = 40
  341. RankLookUp(44, 1) = 47
  342. RankLookUp(45, 0) = 40
  343. RankLookUp(45, 1) = 47
  344. RankLookUp(46, 0) = 40
  345. RankLookUp(46, 1) = 47
  346. RankLookUp(47, 0) = 40
  347. RankLookUp(47, 1) = 47
  348. RankLookUp(48, 0) = 48
  349. RankLookUp(48, 1) = 55
  350. RankLookUp(49, 0) = 48
  351. RankLookUp(49, 1) = 55
  352. RankLookUp(50, 0) = 48
  353. RankLookUp(50, 1) = 55
  354. RankLookUp(51, 0) = 48
  355. RankLookUp(51, 1) = 55
  356. RankLookUp(52, 0) = 48
  357. RankLookUp(52, 1) = 55
  358. RankLookUp(53, 0) = 48
  359. RankLookUp(53, 1) = 55
  360. RankLookUp(54, 0) = 48
  361. RankLookUp(54, 1) = 55
  362. RankLookUp(55, 0) = 48
  363. RankLookUp(55, 1) = 55
  364. RankLookUp(56, 0) = 56
  365. RankLookUp(56, 1) = 63
  366. RankLookUp(57, 0) = 56
  367. RankLookUp(57, 1) = 63
  368. RankLookUp(58, 0) = 56
  369. RankLookUp(58, 1) = 63
  370. RankLookUp(59, 0) = 56
  371. RankLookUp(59, 1) = 63
  372. RankLookUp(60, 0) = 56
  373. RankLookUp(60, 1) = 63
  374. RankLookUp(61, 0) = 56
  375. RankLookUp(61, 1) = 63
  376. RankLookUp(62, 0) = 56
  377. RankLookUp(62, 1) = 63
  378. RankLookUp(63, 0) = 56
  379. RankLookUp(63, 1) = 63
  380.  
  381.  
  382.  
  383. FileLookUp(0, 0) = 0
  384. FileLookUp(0, 1) = 56
  385. FileLookUp(8, 0) = 0
  386. FileLookUp(8, 1) = 56
  387. FileLookUp(16, 0) = 0
  388. FileLookUp(16, 1) = 56
  389. FileLookUp(24, 0) = 0
  390. FileLookUp(24, 1) = 56
  391. FileLookUp(32, 0) = 0
  392. FileLookUp(32, 1) = 56
  393. FileLookUp(40, 0) = 0
  394. FileLookUp(40, 1) = 56
  395. FileLookUp(48, 0) = 0
  396. FileLookUp(48, 1) = 56
  397. FileLookUp(56, 0) = 0
  398. FileLookUp(56, 1) = 56
  399.  
  400.  
  401.  
  402. FileLookUp(1, 0) = 1
  403. FileLookUp(1, 1) = 57
  404. FileLookUp(2, 0) = 2
  405. FileLookUp(2, 1) = 58
  406. FileLookUp(3, 0) = 3
  407. FileLookUp(3, 1) = 59
  408. FileLookUp(4, 0) = 4
  409. FileLookUp(4, 1) = 60
  410. FileLookUp(5, 0) = 5
  411. FileLookUp(5, 1) = 61
  412. FileLookUp(6, 0) = 6
  413. FileLookUp(6, 1) = 62
  414. FileLookUp(7, 0) = 7
  415. FileLookUp(7, 1) = 63
  416.  
  417. FileLookUp(9, 0) = 1
  418. FileLookUp(9, 1) = 57
  419. FileLookUp(10, 0) = 2
  420. FileLookUp(10, 1) = 58
  421. FileLookUp(11, 0) = 3
  422. FileLookUp(11, 1) = 59
  423. FileLookUp(12, 0) = 4
  424. FileLookUp(12, 1) = 60
  425. FileLookUp(13, 0) = 5
  426. FileLookUp(13, 1) = 61
  427. FileLookUp(14, 0) = 6
  428. FileLookUp(14, 1) = 62
  429. FileLookUp(15, 0) = 7
  430. FileLookUp(15, 1) = 63
  431.  
  432. FileLookUp(17, 0) = 1
  433. FileLookUp(17, 1) = 57
  434. FileLookUp(18, 0) = 2
  435. FileLookUp(18, 1) = 58
  436. FileLookUp(19, 0) = 3
  437. FileLookUp(19, 1) = 59
  438. FileLookUp(20, 0) = 4
  439. FileLookUp(20, 1) = 60
  440. FileLookUp(21, 0) = 5
  441. FileLookUp(21, 1) = 61
  442. FileLookUp(22, 0) = 6
  443. FileLookUp(22, 1) = 62
  444. FileLookUp(23, 0) = 7
  445. FileLookUp(23, 1) = 63
  446.  
  447. FileLookUp(25, 0) = 1
  448. FileLookUp(25, 1) = 57
  449. FileLookUp(26, 0) = 2
  450. FileLookUp(26, 1) = 58
  451. FileLookUp(27, 0) = 3
  452. FileLookUp(27, 1) = 59
  453. FileLookUp(28, 0) = 4
  454. FileLookUp(28, 1) = 60
  455. FileLookUp(29, 0) = 5
  456. FileLookUp(29, 1) = 61
  457. FileLookUp(30, 0) = 6
  458. FileLookUp(30, 1) = 62
  459. FileLookUp(31, 0) = 7
  460. FileLookUp(31, 1) = 63
  461.  
  462. FileLookUp(33, 0) = 1
  463. FileLookUp(33, 1) = 57
  464. FileLookUp(34, 0) = 2
  465. FileLookUp(34, 1) = 58
  466. FileLookUp(35, 0) = 3
  467. FileLookUp(35, 1) = 59
  468. FileLookUp(36, 0) = 4
  469. FileLookUp(36, 1) = 60
  470. FileLookUp(37, 0) = 5
  471. FileLookUp(37, 1) = 61
  472. FileLookUp(38, 0) = 6
  473. FileLookUp(38, 1) = 62
  474. FileLookUp(39, 0) = 7
  475. FileLookUp(39, 1) = 63
  476.  
  477. FileLookUp(41, 0) = 1
  478. FileLookUp(41, 1) = 57
  479. FileLookUp(42, 0) = 2
  480. FileLookUp(42, 1) = 58
  481. FileLookUp(43, 0) = 3
  482. FileLookUp(43, 1) = 59
  483. FileLookUp(44, 0) = 4
  484. FileLookUp(44, 1) = 60
  485. FileLookUp(45, 0) = 5
  486. FileLookUp(45, 1) = 61
  487. FileLookUp(46, 0) = 6
  488. FileLookUp(46, 1) = 62
  489. FileLookUp(47, 0) = 7
  490. FileLookUp(47, 1) = 63
  491.  
  492. FileLookUp(49, 0) = 1
  493. FileLookUp(49, 1) = 57
  494. FileLookUp(50, 0) = 2
  495. FileLookUp(50, 1) = 58
  496. FileLookUp(51, 0) = 3
  497. FileLookUp(51, 1) = 59
  498. FileLookUp(52, 0) = 4
  499. FileLookUp(52, 1) = 60
  500. FileLookUp(53, 0) = 5
  501. FileLookUp(53, 1) = 61
  502. FileLookUp(54, 0) = 6
  503. FileLookUp(54, 1) = 61
  504. FileLookUp(55, 0) = 7
  505. FileLookUp(55, 1) = 63
  506.  
  507. FileLookUp(57, 0) = 1
  508. FileLookUp(57, 1) = 57
  509. FileLookUp(58, 0) = 2
  510. FileLookUp(58, 1) = 58
  511. FileLookUp(59, 0) = 3
  512. FileLookUp(59, 1) = 59
  513. FileLookUp(60, 0) = 4
  514. FileLookUp(60, 1) = 60
  515. FileLookUp(61, 0) = 5
  516. FileLookUp(61, 1) = 61
  517. FileLookUp(62, 0) = 6
  518. FileLookUp(62, 1) = 62
  519. FileLookUp(63, 0) = 7
  520. FileLookUp(63, 1) = 63
  521.  
  522. 'Call initiate_Masks
  523. For i = 0 To 63
  524. WhitePawn_enPassent(i) = 0
  525. Blackpawn_enPassent(i) = 0
  526.  Whitepawn_Position(i) = 0
  527.  WhiteKing_Position(i) = 0
  528.  WhiteQueen_Position(i) = 0
  529.  WhiteKnight_Position(i) = 0
  530.  WhiteBishop_Position(i) = 0
  531.  WhiteRock_Position(i) = 0
  532.  WhitePieces_Position(i) = 0
  533.  Blackpawn_Position(i) = 0
  534.  BlackKing_Position(i) = 0
  535.  BlackQueen_Position(i) = 0
  536.  BlackKnight_Position(i) = 0
  537.  BlackBishop_Position(i) = 0
  538.  BlackRock_Position(i) = 0
  539.  BlackPieces_Position(i) = 0
  540.  
  541. Next i
  542.  
  543.  
  544. For i = 8 To 15
  545. Whitepawn_Position(i + 40) = 1
  546. Blackpawn_Position(i) = 1
  547. Next i
  548.  
  549. WhiteKing_Position(60) = 1
  550. BlackKing_Position(4) = 1
  551. BlackRock_Position(0) = 1
  552. BlackRock_Position(7) = 1
  553. WhiteRock_Position(56) = 1
  554. WhiteRock_Position(63) = 1
  555. BlackQueen_Position(3) = 1
  556. WhiteQueen_Position(59) = 1
  557. WhiteKnight_Position(62) = 1
  558. WhiteBishop_Position(61) = 1
  559. WhiteKnight_Position(57) = 1
  560. WhiteBishop_Position(58) = 1
  561. BlackKnight_Position(1) = 1
  562. BlackBishop_Position(2) = 1
  563. BlackKnight_Position(6) = 1
  564. BlackBishop_Position(5) = 1
  565.  
  566.  
  567.  
  568. 'a8h1
  569.  
  570. Diagonal1LookUp(0, 0) = 0
  571. Diagonal1LookUp(9, 0) = 0
  572. Diagonal1LookUp(18, 0) = 0
  573. Diagonal1LookUp(27, 0) = 0
  574. Diagonal1LookUp(36, 0) = 0
  575. Diagonal1LookUp(45, 0) = 0
  576. Diagonal1LookUp(54, 0) = 0
  577. Diagonal1LookUp(63, 0) = 0
  578. Diagonal1LookUp(0, 1) = 63
  579. Diagonal1LookUp(9, 1) = 63
  580. Diagonal1LookUp(18, 1) = 63
  581. Diagonal1LookUp(27, 1) = 63
  582. Diagonal1LookUp(36, 1) = 63
  583. Diagonal1LookUp(45, 1) = 63
  584. Diagonal1LookUp(54, 1) = 63
  585. Diagonal1LookUp(63, 1) = 63
  586.  
  587. 'a7g1
  588. Diagonal1LookUp(8, 0) = 8
  589. Diagonal1LookUp(17, 0) = 8
  590. Diagonal1LookUp(26, 0) = 8
  591. Diagonal1LookUp(35, 0) = 8
  592. Diagonal1LookUp(44, 0) = 8
  593. Diagonal1LookUp(53, 0) = 8
  594. Diagonal1LookUp(62, 0) = 8
  595. Diagonal1LookUp(8, 1) = 62
  596. Diagonal1LookUp(17, 1) = 62
  597. Diagonal1LookUp(26, 1) = 62
  598. Diagonal1LookUp(35, 1) = 62
  599. Diagonal1LookUp(44, 1) = 62
  600. Diagonal1LookUp(53, 1) = 62
  601. Diagonal1LookUp(62, 1) = 62
  602.  
  603. 'a6f1
  604. Diagonal1LookUp(16, 0) = 16
  605. Diagonal1LookUp(25, 0) = 16
  606. Diagonal1LookUp(34, 0) = 16
  607. Diagonal1LookUp(43, 0) = 16
  608. Diagonal1LookUp(52, 0) = 16
  609. Diagonal1LookUp(61, 0) = 16
  610.  
  611. Diagonal1LookUp(16, 1) = 61
  612. Diagonal1LookUp(25, 1) = 61
  613. Diagonal1LookUp(34, 1) = 61
  614. Diagonal1LookUp(43, 1) = 61
  615. Diagonal1LookUp(52, 1) = 61
  616. Diagonal1LookUp(61, 1) = 61
  617.  
  618. 'a5e1
  619. Diagonal1LookUp(24, 0) = 24
  620. Diagonal1LookUp(33, 0) = 24
  621. Diagonal1LookUp(42, 0) = 24
  622. Diagonal1LookUp(51, 0) = 24
  623. Diagonal1LookUp(60, 0) = 24
  624.  
  625. Diagonal1LookUp(24, 1) = 60
  626. Diagonal1LookUp(33, 1) = 60
  627. Diagonal1LookUp(42, 1) = 60
  628. Diagonal1LookUp(51, 1) = 60
  629. Diagonal1LookUp(60, 1) = 60
  630.  
  631. 'a4d1
  632. Diagonal1LookUp(32, 0) = 32
  633. Diagonal1LookUp(41, 0) = 32
  634. Diagonal1LookUp(50, 0) = 32
  635. Diagonal1LookUp(59, 0) = 32
  636.  
  637. Diagonal1LookUp(32, 1) = 59
  638. Diagonal1LookUp(41, 1) = 59
  639. Diagonal1LookUp(50, 1) = 59
  640. Diagonal1LookUp(59, 1) = 59
  641.  
  642.  
  643. 'a3c1
  644. Diagonal1LookUp(40, 0) = 40
  645. Diagonal1LookUp(49, 0) = 40
  646. Diagonal1LookUp(58, 0) = 40
  647.  
  648. Diagonal1LookUp(40, 1) = 58
  649. Diagonal1LookUp(49, 1) = 58
  650. Diagonal1LookUp(58, 1) = 58
  651.  
  652. 'a2b1
  653. Diagonal1LookUp(48, 0) = 48
  654. Diagonal1LookUp(57, 0) = 48
  655.  
  656. Diagonal1LookUp(48, 1) = 57
  657. Diagonal1LookUp(57, 1) = 57
  658. 'a1a1
  659. Diagonal1LookUp(56, 0) = 56
  660. Diagonal1LookUp(56, 1) = 56
  661.  
  662.  
  663. 'b8h2
  664. Diagonal1LookUp(1, 0) = 1
  665. Diagonal1LookUp(10, 0) = 1
  666. Diagonal1LookUp(19, 0) = 1
  667. Diagonal1LookUp(28, 0) = 1
  668. Diagonal1LookUp(37, 0) = 1
  669. Diagonal1LookUp(46, 0) = 1
  670. Diagonal1LookUp(55, 0) = 1
  671.  
  672. Diagonal1LookUp(1, 1) = 55
  673. Diagonal1LookUp(10, 1) = 55
  674. Diagonal1LookUp(19, 1) = 55
  675. Diagonal1LookUp(28, 1) = 55
  676. Diagonal1LookUp(37, 1) = 55
  677. Diagonal1LookUp(46, 1) = 55
  678. Diagonal1LookUp(55, 1) = 55
  679.  
  680. 'c8h3
  681. Diagonal1LookUp(2, 0) = 2
  682. Diagonal1LookUp(11, 0) = 2
  683. Diagonal1LookUp(20, 0) = 2
  684. Diagonal1LookUp(29, 0) = 2
  685. Diagonal1LookUp(38, 0) = 2
  686. Diagonal1LookUp(47, 0) = 2
  687.  
  688. Diagonal1LookUp(2, 1) = 47
  689. Diagonal1LookUp(11, 1) = 47
  690. Diagonal1LookUp(20, 1) = 47
  691. Diagonal1LookUp(29, 1) = 47
  692. Diagonal1LookUp(38, 1) = 47
  693. Diagonal1LookUp(47, 1) = 47
  694.  
  695. 'd8h4
  696. Diagonal1LookUp(3, 0) = 3
  697. Diagonal1LookUp(12, 0) = 3
  698. Diagonal1LookUp(21, 0) = 3
  699. Diagonal1LookUp(30, 0) = 3
  700. Diagonal1LookUp(39, 0) = 3
  701.  
  702. Diagonal1LookUp(3, 1) = 39
  703. Diagonal1LookUp(12, 1) = 39
  704. Diagonal1LookUp(21, 1) = 39
  705. Diagonal1LookUp(30, 1) = 39
  706. Diagonal1LookUp(39, 1) = 39
  707.  
  708. 'e8h5
  709. Diagonal1LookUp(4, 0) = 4
  710. Diagonal1LookUp(13, 0) = 4
  711. Diagonal1LookUp(22, 0) = 4
  712. Diagonal1LookUp(31, 0) = 4
  713.  
  714. Diagonal1LookUp(4, 1) = 31
  715. Diagonal1LookUp(13, 1) = 31
  716. Diagonal1LookUp(22, 1) = 31
  717. Diagonal1LookUp(31, 1) = 31
  718.  
  719. 'f8h6
  720. Diagonal1LookUp(5, 0) = 5
  721. Diagonal1LookUp(14, 0) = 5
  722. Diagonal1LookUp(23, 0) = 5
  723.  
  724. Diagonal1LookUp(5, 1) = 23
  725. Diagonal1LookUp(14, 1) = 23
  726. Diagonal1LookUp(23, 1) = 23
  727.  
  728. 'g8h7
  729. Diagonal1LookUp(6, 0) = 6
  730. Diagonal1LookUp(15, 0) = 6
  731.  
  732. Diagonal1LookUp(6, 1) = 15
  733. Diagonal1LookUp(15, 1) = 15
  734.  
  735. 'h8h8
  736. Diagonal1LookUp(7, 0) = 7
  737. Diagonal1LookUp(7, 1) = 7
  738.  
  739.  
  740.  
  741. 'a1h8
  742.  
  743. Diagonal2LookUp(7, 0) = 7
  744. Diagonal2LookUp(14, 0) = 7
  745. Diagonal2LookUp(21, 0) = 7
  746. Diagonal2LookUp(28, 0) = 7
  747. Diagonal2LookUp(35, 0) = 7
  748. Diagonal2LookUp(42, 0) = 7
  749. Diagonal2LookUp(49, 0) = 7
  750. Diagonal2LookUp(56, 0) = 7
  751.  
  752. Diagonal2LookUp(7, 1) = 56
  753. Diagonal2LookUp(14, 1) = 56
  754. Diagonal2LookUp(21, 1) = 56
  755. Diagonal2LookUp(28, 1) = 56
  756. Diagonal2LookUp(35, 1) = 56
  757. Diagonal2LookUp(42, 1) = 56
  758. Diagonal2LookUp(49, 1) = 56
  759. Diagonal2LookUp(56, 1) = 56
  760.  
  761. 'g8a2
  762. Diagonal2LookUp(6, 0) = 6
  763. Diagonal2LookUp(13, 0) = 6
  764. Diagonal2LookUp(20, 0) = 6
  765. Diagonal2LookUp(27, 0) = 6
  766. Diagonal2LookUp(34, 0) = 6
  767. Diagonal2LookUp(41, 0) = 6
  768. Diagonal2LookUp(48, 0) = 6
  769.  
  770. Diagonal2LookUp(6, 1) = 48
  771. Diagonal2LookUp(13, 1) = 48
  772. Diagonal2LookUp(20, 1) = 48
  773. Diagonal2LookUp(27, 1) = 48
  774. Diagonal2LookUp(41, 1) = 48
  775. Diagonal2LookUp(48, 1) = 48
  776.  
  777. 'f8a3
  778. Diagonal2LookUp(5, 0) = 5
  779. Diagonal2LookUp(12, 0) = 5
  780. Diagonal2LookUp(19, 0) = 5
  781. Diagonal2LookUp(26, 0) = 5
  782. Diagonal2LookUp(33, 0) = 5
  783. Diagonal2LookUp(40, 0) = 5
  784.  
  785. Diagonal2LookUp(5, 1) = 40
  786. Diagonal2LookUp(12, 1) = 40
  787. Diagonal2LookUp(19, 1) = 40
  788. Diagonal2LookUp(26, 1) = 40
  789. Diagonal2LookUp(33, 1) = 40
  790. Diagonal2LookUp(40, 1) = 40
  791.  
  792. 'e8a4
  793. Diagonal2LookUp(4, 0) = 4
  794. Diagonal2LookUp(11, 0) = 4
  795. Diagonal2LookUp(18, 0) = 4
  796. Diagonal2LookUp(25, 0) = 4
  797. Diagonal2LookUp(32, 0) = 4
  798.  
  799. Diagonal2LookUp(4, 1) = 32
  800. Diagonal2LookUp(11, 1) = 32
  801. Diagonal2LookUp(18, 1) = 32
  802. Diagonal2LookUp(25, 1) = 32
  803. Diagonal2LookUp(32, 1) = 32
  804.  
  805. 'd8a5
  806. Diagonal2LookUp(3, 0) = 3
  807. Diagonal2LookUp(10, 0) = 3
  808. Diagonal2LookUp(17, 0) = 3
  809. Diagonal2LookUp(24, 0) = 3
  810.  
  811. Diagonal2LookUp(3, 1) = 24
  812. Diagonal2LookUp(10, 1) = 24
  813. Diagonal2LookUp(17, 1) = 24
  814. Diagonal2LookUp(24, 1) = 24
  815.  
  816. ''c8a6
  817. Diagonal2LookUp(2, 0) = 2
  818. Diagonal2LookUp(9, 0) = 2
  819. Diagonal2LookUp(16, 0) = 2
  820.  
  821. Diagonal2LookUp(2, 1) = 16
  822. Diagonal2LookUp(9, 1) = 16
  823. Diagonal2LookUp(16, 1) = 16
  824.  
  825. 'b8a7
  826. Diagonal2LookUp(1, 0) = 1
  827. Diagonal2LookUp(8, 0) = 1
  828.  
  829. Diagonal2LookUp(1, 1) = 8
  830. Diagonal2LookUp(8, 1) = 8
  831.  
  832. 'a8a8
  833. Diagonal2LookUp(0, 0) = 0
  834. Diagonal2LookUp(0, 0) = 0
  835.  
  836. 'h7b1
  837. Diagonal2LookUp(15, 0) = 15
  838. Diagonal2LookUp(22, 0) = 15
  839. Diagonal2LookUp(29, 0) = 15
  840. Diagonal2LookUp(36, 0) = 15
  841. Diagonal2LookUp(43, 0) = 15
  842. Diagonal2LookUp(50, 0) = 15
  843. Diagonal2LookUp(57, 0) = 15
  844.  
  845. Diagonal2LookUp(15, 1) = 57
  846. Diagonal2LookUp(22, 1) = 57
  847. Diagonal2LookUp(29, 1) = 57
  848. Diagonal2LookUp(36, 1) = 57
  849. Diagonal2LookUp(43, 1) = 57
  850. Diagonal2LookUp(50, 1) = 57
  851. Diagonal2LookUp(57, 1) = 57
  852.  
  853. 'h6c1
  854. Diagonal2LookUp(23, 0) = 23
  855. Diagonal2LookUp(30, 0) = 23
  856. Diagonal2LookUp(37, 0) = 23
  857. Diagonal2LookUp(44, 0) = 23
  858. Diagonal2LookUp(51, 0) = 23
  859. Diagonal2LookUp(58, 0) = 23
  860.  
  861. Diagonal2LookUp(23, 1) = 58
  862. Diagonal2LookUp(30, 1) = 58
  863. Diagonal2LookUp(37, 1) = 58
  864. Diagonal2LookUp(44, 1) = 58
  865. Diagonal2LookUp(51, 1) = 58
  866. Diagonal2LookUp(58, 1) = 58
  867.  
  868. 'h5d1
  869. Diagonal2LookUp(31, 0) = 31
  870. Diagonal2LookUp(38, 0) = 31
  871. Diagonal2LookUp(45, 0) = 31
  872. Diagonal2LookUp(52, 0) = 31
  873. Diagonal2LookUp(59, 0) = 31
  874.  
  875. Diagonal2LookUp(31, 1) = 59
  876. Diagonal2LookUp(38, 1) = 59
  877. Diagonal2LookUp(45, 1) = 59
  878. Diagonal2LookUp(52, 1) = 59
  879. Diagonal2LookUp(59, 1) = 59
  880.  
  881. 'h4e1
  882. Diagonal2LookUp(39, 0) = 39
  883. Diagonal2LookUp(46, 0) = 39
  884. Diagonal2LookUp(53, 0) = 39
  885. Diagonal2LookUp(60, 0) = 39
  886.  
  887. Diagonal2LookUp(39, 1) = 60
  888. Diagonal2LookUp(46, 1) = 60
  889. Diagonal2LookUp(53, 1) = 60
  890. Diagonal2LookUp(60, 1) = 60
  891.  
  892. 'h3f1
  893. Diagonal2LookUp(47, 0) = 47
  894. Diagonal2LookUp(54, 0) = 47
  895. Diagonal2LookUp(61, 0) = 47
  896.  
  897. Diagonal2LookUp(47, 1) = 61
  898. Diagonal2LookUp(54, 1) = 61
  899. Diagonal2LookUp(61, 1) = 61
  900.  
  901. 'h2g1
  902. Diagonal2LookUp(55, 0) = 55
  903. Diagonal2LookUp(62, 0) = 55
  904.  
  905. Diagonal2LookUp(55, 1) = 62
  906. Diagonal2LookUp(62, 1) = 62
  907.  
  908. 'h1h1
  909. Diagonal2LookUp(63, 0) = 63
  910. Diagonal2LookUp(63, 1) = 63
  911. For i = 0 To 63
  912. BlackPieces_Position(i) = BlackRock_Position(i) Or BlackKnight_Position(i) Or BlackBishop_Position(i) Or BlackRock_Position(i) Or BlackKing_Position(i) Or BlackQueen_Position(i) Or Blackpawn_Position(i)
  913. WhitePieces_Position(i) = WhiteRock_Position(i) Or WhiteKnight_Position(i) Or WhiteBishop_Position(i) Or WhiteRock_Position(i) Or WhiteKing_Position(i) Or WhiteQueen_Position(i) Or Whitepawn_Position(i)
  914. Chess_Board(i) = WhitePieces_Position(i) Or BlackPieces_Position(i)
  915. Next i
  916.  
  917. 'WPawnBonus(0) = 20
  918. 'WPawnBonus(1) = 21
  919. 'WPawnBonus(2) = 22
  920. 'WPawnBonus(3) = 23
  921. 'WPawnBonus(4) = 23
  922. 'WPawnBonus(5) = 22
  923. 'WPawnBonus(6) = 21
  924. 'WPawnBonus(7) = 20
  925. 'WPawnBonus(8) = 20
  926. 'WPawnBonus(9) = 21
  927. ''WPawnBonus(10) = 22
  928. 'WPawnBonus(11) = 23
  929. ''WPawnBonus(12) = 23
  930. 'WPawnBonus(13) = 22
  931. 'WPawnBonus(14) = 21
  932. 'WPawnBonus(15) = 20
  933. 'WPawnBonus(16) = 15
  934. 'WPawnBonus(17) = 16
  935. 'WPawnBonus(18) = 17
  936. ''WPawnBonus(19) = 18
  937. 'WPawnBonus(20) = 18
  938. ''WPawnBonus(21) = 17
  939. 'WPawnBonus(22) = 16
  940. 'WPawnBonus(23) = 15
  941. 'WPawnBonus(24) = 10
  942. 'WPawnBonus(25) = 11
  943. 'WPawnBonus(26) = 12
  944. 'WPawnBonus(27) = 13
  945. ''WPawnBonus(28) = 13
  946. 'WPawnBonus(29) = 12
  947. ''WPawnBonus(30) = 11
  948. 'WPawnBonus(31) = 10
  949. 'WPawnBonus(32) = 5
  950. 'WPawnBonus(33) = 62
  951. 'WPawnBonus(34) = 63
  952. 'WPawnBonus(35) = 64
  953. ''WPawnBonus(36) = 65
  954. ''WPawnBonus(37) = 66
  955. 'WPawnBonus(38) = 67
  956. 'WPawnBonus(39) = 68
  957. 'WPawnBonus(40) = 71
  958. 'WPawnBonus(41) = 72
  959. 'WPawnBonus(42) = 73
  960. 'WPawnBonus(43) = 74
  961. 'WPawnBonus(44) = 75
  962. ''WPawnBonus(45) = 76
  963. ''WPawnBonus(46) = 77
  964. 'WPawnBonus(47) = 78
  965. 'WPawnBonus(48) = 81
  966. 'WPawnBonus(49) = 82
  967. 'WPawnBonus(50) = 83
  968. 'WPawnBonus(51) = 84
  969. '''WPawnBonus(52) = 85
  970. ''WPawnBonus(53) = 86
  971. ''WPawnBonus(54) = 87
  972. 'WPawnBonus(55) = 88
  973. 'WPawnBonus(56) = 91
  974. ''WPawnBonus(57) = 92
  975. 'WPawnBonus(58) = 93
  976. 'WPawnBonus(59) = 94
  977. 'WPawnBonus(60) = 95
  978. 'WPawnBonus(61) = 96
  979. 'WPawnBonus(62) = 97
  980. 'WPawnBonus(63) = 98
  981. '
  982. 'BPawnBonus(0) = 21
  983. 'BPawnBonus(1) = 22
  984. 'BPawnBonus(2) = 23
  985. 'BPawnBonus(3) = 24
  986. ''BPawnBonus(4) = 25
  987. ''BPawnBonus(5) = 26
  988. ''BPawnBonus(6) = 27
  989. ''BPawnBonus(7) = 28
  990. 'BPawnBonus(8) = 31
  991. 'BPawnBonus(9) = 32
  992. 'BPawnBonus(10) = 33
  993. ''BPawnBonus(11) = 34
  994. ''BPawnBonus(12) = 35
  995. ''BPawnBonus(13) = 36
  996. ''BPawnBonus(14) = 37
  997. 'BPawnBonus(15) = 38
  998. 'BPawnBonus(16) = 41
  999. 'BPawnBonus(17) = 42
  1000. 'BPawnBonus(18) = 43
  1001. 'BPawnBonus(19) = 44
  1002. 'BPawnBonus(20) = 45
  1003. 'BPawnBonus(21) = 46
  1004. ''BPawnBonus(22) = 47
  1005. ''BPawnBonus(23) = 48
  1006. 'BPawnBonus(24) = 51
  1007. 'BPawnBonus(25) = 52
  1008. 'BPawnBonus(26) = 53
  1009. 'BPawnBonus(27) = 54
  1010. ''BPawnBonus(28) = 55
  1011. ''BPawnBonus(29) = 56
  1012. 'BPawnBonus(30) = 57
  1013. 'BPawnBonus(31) = 58
  1014. 'BPawnBonus(32) = 61
  1015. 'BPawnBonus(33) = 62
  1016. 'BPawnBonus(34) = 63
  1017. ''BPawnBonus(35) = 64
  1018. ''BPawnBonus(36) = 65
  1019. 'BPawnBonus(37) = 66
  1020. 'BPawnBonus(38) = 67
  1021. 'BPawnBonus(39) = 68
  1022. 'BPawnBonus(40) = 71
  1023. 'BPawnBonus(41) = 72
  1024. ''BPawnBonus(42) = 73
  1025. 'BPawnBonus(43) = 74
  1026. ''BPawnBonus(44) = 75
  1027. 'BPawnBonus(45) = 76
  1028. 'BPawnBonus(46) = 77
  1029. 'BPawnBonus(47) = 78
  1030. 'BPawnBonus(48) = 81
  1031. 'BPawnBonus(49) = 82
  1032. 'BPawnBonus(50) = 83
  1033. ''BPawnBonus(51) = 84
  1034. 'BPawnBonus(52) = 85
  1035. 'BPawnBonus(53) = 86
  1036. 'BPawnBonus(54) = 87
  1037. 'BPawnBonus(55) = 88
  1038. 'BPawnBonus(56) = 91
  1039. ''BPawnBonus(57) = 92
  1040. ''BPawnBonus(58) = 93
  1041. 'BPawnBonus(59) = 94
  1042. 'BPawnBonus(60) = 95
  1043. 'BPawnBonus(61) = 96
  1044. 'BPawnBonus(62) = 97
  1045. 'BPawnBonus(63) = 98
  1046. '
  1047. '
  1048. Empty_Mask(0) = 0
  1049. Empty_Mask(1) = 0
  1050. Empty_Mask(2) = 0
  1051. Empty_Mask(3) = 0
  1052. Empty_Mask(4) = 0
  1053. Empty_Mask(5) = 0
  1054. Empty_Mask(6) = 0
  1055. Empty_Mask(7) = 0
  1056. Empty_Mask(8) = 0
  1057. Empty_Mask(9) = 0
  1058. Empty_Mask(10) = 0
  1059. Empty_Mask(11) = 0
  1060. Empty_Mask(12) = 0
  1061. Empty_Mask(13) = 0
  1062. Empty_Mask(14) = 0
  1063. Empty_Mask(15) = 0
  1064. Empty_Mask(16) = 0
  1065. Empty_Mask(17) = 0
  1066. Empty_Mask(18) = 0
  1067. Empty_Mask(19) = 0
  1068. Empty_Mask(20) = 0
  1069. Empty_Mask(21) = 0
  1070. Empty_Mask(22) = 0
  1071. Empty_Mask(23) = 0
  1072. Empty_Mask(24) = 0
  1073. Empty_Mask(25) = 0
  1074. Empty_Mask(26) = 0
  1075. Empty_Mask(27) = 0
  1076. Empty_Mask(28) = 0
  1077. Empty_Mask(29) = 0
  1078. Empty_Mask(30) = 0
  1079. Empty_Mask(31) = 0
  1080. Empty_Mask(32) = 0
  1081. Empty_Mask(33) = 0
  1082. Empty_Mask(34) = 0
  1083. Empty_Mask(35) = 0
  1084. Empty_Mask(36) = 0
  1085. Empty_Mask(37) = 0
  1086. Empty_Mask(38) = 0
  1087. Empty_Mask(39) = 0
  1088. Empty_Mask(40) = 0
  1089. Empty_Mask(41) = 0
  1090. Empty_Mask(42) = 0
  1091. Empty_Mask(43) = 0
  1092. Empty_Mask(44) = 0
  1093. Empty_Mask(45) = 0
  1094. Empty_Mask(46) = 0
  1095. Empty_Mask(47) = 0
  1096. Empty_Mask(48) = 0
  1097. Empty_Mask(49) = 0
  1098. Empty_Mask(50) = 0
  1099. Empty_Mask(51) = 0
  1100. Empty_Mask(52) = 0
  1101. Empty_Mask(53) = 0
  1102. Empty_Mask(54) = 0
  1103. Empty_Mask(55) = 0
  1104. Empty_Mask(56) = 0
  1105. Empty_Mask(57) = 0
  1106. Empty_Mask(58) = 0
  1107. Empty_Mask(59) = 0
  1108. Empty_Mask(60) = 0
  1109. Empty_Mask(61) = 0
  1110. Empty_Mask(62) = 0
  1111. Empty_Mask(63) = 0
  1112. End Function
  1113.  
  1114.  
  1115.  
  1116.