nitrodog96

CodeHS - Chess - Javascript (graphics)

May 2nd, 2017
495
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 197.52 KB | None | 0 0
  1. /* THIS CODE DOES NOT INCLUDE:
  2. * MOVING THE BLACK QUEEN.
  3. * MOVING EITHER KING.
  4. * CAPTURING.
  5. * EN PASSANT.
  6. * CASTLING.
  7. * PROMOTION OF PAWNS.
  8. * CHECKMATE.
  9. * STALEMATE, OF ANY KIND.
  10. * I'LL GET THEM DONE AT SOME POINT.
  11. * /
  12.  
  13.  
  14. var height = getHeight();
  15. var width = getWidth();
  16.  
  17. var chessSquares = new Grid(8,8);
  18. var squareSet = new Set();
  19. var squareDim = width / 8;
  20. var piecesOnBoard = new Grid(8,8);
  21. var piecesCaptured = [];
  22. var whiteToMove = true;
  23. var pickedPiece = null;
  24. var piecePicked = false;
  25.  
  26. var whiteAPawn;
  27. var whiteAPawnFirstMove = true;
  28. var whiteAPawnPromoted = false;
  29. var whiteAPawnPromotedTo = 0;
  30.  
  31. var whiteBPawn;
  32. var whiteBPawnFirstMove = true;
  33. var whiteBPawnPromoted = false;
  34. var whiteBPawnPromotedTo = 0;
  35.  
  36. var whiteCPawn;
  37. var whiteCPawnFirstMove = true;
  38. var whiteCPawnPromoted = false;
  39. var whiteCPawnPromotedTo = 0;
  40.  
  41. var whiteDPawn;
  42. var whiteDPawnFirstMove = true;
  43. var whiteDPawnPromoted = false;
  44. var whiteDPawnPromotedTo = 0;
  45.  
  46. var whiteEPawn;
  47. var whiteEPawnFirstMove = true;
  48. var whiteEPawnPromoted = false;
  49. var whiteEPawnPromotedTo = 0;
  50.  
  51. var whiteFPawn;
  52. var whiteFPawnFirstMove = true;
  53. var whiteFPawnPromoted = false;
  54. var whiteFPawnPromotedTo = 0;
  55.  
  56. var whiteGPawn;
  57. var whiteGPawnFirstMove = true;
  58. var whiteGPawnPromoted = false;
  59. var whiteGPawnPromotedTo = 0;
  60.  
  61. var whiteHPawn;
  62. var whiteHPawnFirstMove = true;
  63. var whiteHPawnPromoted = false;
  64. var whiteHPawnPromotedTo = 0;
  65.  
  66. var whiteQueensRook;
  67. var whiteQueensKnight;
  68. var whiteQueensBishop;
  69. var whiteQueen;
  70. var whiteKing;
  71. var whiteKingsBishop;
  72. var whiteKingsKnight;
  73. var whiteKingsRook;
  74.  
  75. var whiteRooks = new Set(whiteQueensRook,whiteKingsRook);
  76. var whiteKnights = new Set(whiteQueensKnight,whiteKingsKnight);
  77. var whiteBishops = new Set(whiteQueensBishop,whiteKingsBishop);
  78. var whiteQueens = new Set(whiteQueen);
  79.  
  80. var blackAPawn;
  81. var blackAPawnFirstMove = true;
  82. var blackAPawnPromoted = false;
  83. var blackAPawnPromotedTo = 0;
  84.  
  85. var blackBPawn;
  86. var blackBPawnFirstMove = true;
  87. var blackBPawnPromoted = false;
  88. var blackBPawnPromotedTo = 0;
  89.  
  90. var blackCPawn;
  91. var blackCPawnFirstMove = true;
  92. var blackCPawnPromoted = false;
  93. var blackCPawnPromotedTo = 0;
  94.  
  95. var blackDPawn;
  96. var blackDPawnFirstMove = true;
  97. var blackDPawnPromoted = false;
  98. var blackDPawnPromotedTo = 0;
  99.  
  100. var blackEPawn;
  101. var blackEPawnFirstMove = true;
  102. var blackEPawnPromoted = false;
  103. var blackEPawnPromotedTo = 0;
  104.  
  105. var blackFPawn;
  106. var blackFPawnFirstMove = true;
  107. var blackFPawnPromoted = false;
  108. var blackFPawnPromotedTo = 0;
  109.  
  110. var blackGPawn;
  111. var blackGPawnFirstMove = true;
  112. var blackGPawnPromoted = false;
  113. var blackGPawnPromotedTo = 0;
  114.  
  115. var blackHPawn;
  116. var blackHPawnFirstMove = true;
  117. var blackHPawnPromoted = false;
  118. var blackHPawnPromotedTo = 0;
  119.  
  120. var whitePawns = [whiteAPawn,whiteBPawn,whiteCPawn,whiteDPawn,whiteEPawn,whiteFPawn,whiteGPawn,whiteHPawn];
  121. var blackPawns = [blackAPawn,blackBPawn,blackCPawn,blackDPawn,blackEPawn,blackFPawn,blackGPawn,blackHPawn];
  122.  
  123. var blackQueensRook;
  124. var blackQueensKnight;
  125. var blackQueensBishop;
  126. var blackQueen;
  127. var blackKing;
  128. var blackKingsBishop;
  129. var blackKingsKnight;
  130. var blackKingsRook;
  131.  
  132. var blackRooks = [blackQueensRook,blackKingsRook];
  133. var blackKnights = [blackQueensKnight,blackKingsKnight];
  134. var blackBishops = [blackQueensBishop,blackKingsBishop];
  135. var blackQueens = [blackQueen];
  136.  
  137. var whitePiecesArr = [whiteAPawn,whiteBPawn,whiteCPawn,whiteDPawn,whiteEPawn,whiteFPawn,whiteGPawn,whiteHPawn,whiteQueensRook,whiteQueensKnight,whiteQueensBishop,whiteQueen,whiteKing,whiteKingsBishop,whiteKingsKnight,whiteKingsRook];
  138. var blackPiecesArr = [blackAPawn,blackBPawn,blackCPawn,blackDPawn,blackEPawn,blackFPawn,blackGPawn,blackHPawn,blackQueensRook,blackQueensKnight,blackQueensBishop,blackQueen,blackKing,blackKingsBishop,blackKingsKnight,blackKingsRook];
  139. var whitePiecesSet = new Set(whiteAPawn,whiteBPawn,whiteCPawn,whiteDPawn,whiteEPawn,whiteFPawn,whiteGPawn,whiteHPawn,whiteQueensRook,whiteQueensKnight,whiteQueensBishop,whiteQueen,whiteKing,whiteKingsBishop,whiteKingsKnight,whiteKingsRook);
  140. var blackPiecesSet = new Set(blackAPawn,blackBPawn,blackCPawn,blackDPawn,blackEPawn,blackFPawn,blackGPawn,blackHPawn,blackQueensRook,blackQueensKnight,blackQueensBishop,blackQueen,blackKing,blackKingsBishop,blackKingsKnight,blackKingsRook);
  141.  
  142. var mouseX;
  143. var mouseY;
  144.  
  145. var mouseSquareX;
  146. var mouseSquareY;
  147.  
  148. var pieceDim = squareDim * 3 / 4;
  149. var capturedDim = squareDim / 4;
  150. var toMoveSquare;
  151. var blackPcsCaptured = 0;
  152. var whitePcsCaptured = 0;
  153.  
  154. var prevX;
  155. var prevY;
  156. var pieceX;
  157. var pieceY;
  158.  
  159. var legalMove;
  160.  
  161. var prevSqX;
  162. var prevSqY;
  163.  
  164. /* THIS WAS FOR A PROMOTION FUNCTION THAT I ENDED UP DELETING.
  165. * FEEL FREE TO IGNORE IT.
  166. *
  167. * For the "(white/black)(A-H)PawnPromotedTo" values:
  168. * 0 = unpromoted
  169. * 1 = knight
  170. * 2 = rook
  171. * 3 = bishop
  172. * 4 = queen
  173. */
  174.  
  175. function start(){
  176. makeBoard();
  177. makeWhitePieces();
  178. makeBlackPieces();
  179. fillGrid();
  180. makeUI();
  181. mouseDownMethod(pieceTogglePicked);
  182. mouseMoveMethod(movePickedPiece);
  183. }
  184.  
  185. function makeBoard(){
  186. var squaresPlaced = 0;
  187.  
  188. for(var a = 0; a < 8; a++){
  189. if(squaresPlaced % 16 == 0){
  190. for(var b = 0; b < 8; b++){
  191. if(squaresPlaced % 2 == 0){
  192. var square = new Rectangle(squareDim,squareDim);
  193. square.setPosition((Math.floor(squaresPlaced / 8)) * squareDim, (squaresPlaced % 8) * squareDim);
  194. square.setColor(Color.white);
  195. add(square);
  196. chessSquares.set(a,b,square);
  197. squareSet.add(square);
  198. } else {
  199. var square = new Rectangle(squareDim,squareDim);
  200. square.setPosition((Math.floor(squaresPlaced / 8)) * squareDim, (squaresPlaced % 8) * squareDim);
  201. square.setColor(Color.black);
  202. add(square);
  203. chessSquares.set(a,b,square);
  204. squareSet.add(square);
  205. }
  206. squaresPlaced++;
  207. }
  208. } else {
  209. for(var b = 0; b < 8; b++){
  210. if(squaresPlaced % 2 == 0){
  211. var square = new Rectangle(squareDim,squareDim);
  212. square.setPosition((Math.floor(squaresPlaced / 8)) * squareDim, (squaresPlaced % 8) * squareDim);
  213. square.setColor(Color.black);
  214. add(square);
  215. chessSquares.set(a,b,square);
  216. squareSet.add(square);
  217. } else {
  218. var square = new Rectangle(squareDim,squareDim);
  219. square.setPosition((Math.floor(squaresPlaced / 8)) * squareDim, (squaresPlaced % 8) * squareDim);
  220. square.setColor(Color.white);
  221. add(square);
  222. chessSquares.set(a,b,square);
  223. squareSet.add(square);
  224. }
  225. squaresPlaced++;
  226. }
  227. }
  228. }
  229. }
  230.  
  231. function makeWhitePieces(){
  232. whiteAPawn = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_white_pawn.png");
  233. whiteAPawn.setPosition(squareDim / 8, squareDim * 49 / 8);
  234. whiteAPawn.setSize(pieceDim,pieceDim);
  235. add(whiteAPawn);
  236. piecesOnBoard.set(0,6,whiteAPawn);
  237.  
  238. whiteBPawn = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_white_pawn.png");
  239. whiteBPawn.setPosition(squareDim * 9 / 8, squareDim * 49 / 8);
  240. whiteBPawn.setSize(pieceDim,pieceDim);
  241. add(whiteBPawn);
  242. piecesOnBoard.set(1,6,whiteBPawn);
  243.  
  244. whiteCPawn = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_white_pawn.png");
  245. whiteCPawn.setPosition(squareDim * 17 / 8, squareDim * 49 / 8);
  246. whiteCPawn.setSize(pieceDim,pieceDim);
  247. add(whiteCPawn);
  248. piecesOnBoard.set(2,6,whiteCPawn);
  249.  
  250. whiteDPawn = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_white_pawn.png");
  251. whiteDPawn.setPosition(squareDim * 25 / 8, squareDim * 49 / 8);
  252. whiteDPawn.setSize(pieceDim,pieceDim);
  253. add(whiteDPawn);
  254. piecesOnBoard.set(3,6,whiteDPawn);
  255.  
  256. whiteEPawn = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_white_pawn.png");
  257. whiteEPawn.setPosition(squareDim * 33 / 8, squareDim * 49 / 8);
  258. whiteEPawn.setSize(pieceDim,pieceDim);
  259. add(whiteEPawn);
  260. piecesOnBoard.set(4,6,whiteEPawn);
  261.  
  262. whiteFPawn = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_white_pawn.png");
  263. whiteFPawn.setPosition(squareDim * 41 / 8, squareDim * 49 / 8);
  264. whiteFPawn.setSize(pieceDim,pieceDim);
  265. add(whiteFPawn);
  266. piecesOnBoard.set(5,6,whiteFPawn);
  267.  
  268. whiteGPawn = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_white_pawn.png");
  269. whiteGPawn.setPosition(squareDim * 49 / 8, squareDim * 49 / 8);
  270. whiteGPawn.setSize(pieceDim,pieceDim);
  271. add(whiteGPawn);
  272. piecesOnBoard.set(6,6,whiteGPawn);
  273.  
  274. whiteHPawn = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_white_pawn.png");
  275. whiteHPawn.setPosition(squareDim * 57 / 8, squareDim * 49 / 8);
  276. whiteHPawn.setSize(pieceDim,pieceDim);
  277. add(whiteHPawn);
  278. piecesOnBoard.set(7,6,whiteHPawn);
  279.  
  280. whiteQueensRook = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_white_rook.png");
  281. whiteQueensRook.setPosition(squareDim / 8, squareDim * 57 / 8);
  282. whiteQueensRook.setSize(pieceDim,pieceDim);
  283. add(whiteQueensRook);
  284. piecesOnBoard.set(0,7,whiteQueensRook);
  285.  
  286. whiteKingsRook = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_white_rook.png");
  287. whiteKingsRook.setPosition(squareDim * 57 / 8, squareDim * 57 / 8);
  288. whiteKingsRook.setSize(pieceDim,pieceDim);
  289. add(whiteKingsRook);
  290. piecesOnBoard.set(7,7,whiteKingsRook);
  291.  
  292. whiteQueensKnight = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_white_knight.png");
  293. whiteQueensKnight.setPosition(squareDim * 9 / 8, squareDim * 57 / 8);
  294. whiteQueensKnight.setSize(pieceDim,pieceDim);
  295. add(whiteQueensKnight);
  296. piecesOnBoard.set(1,7,whiteQueensKnight);
  297.  
  298. whiteKingsKnight = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_white_knight.png");
  299. whiteKingsKnight.setPosition(squareDim * 49 / 8, squareDim * 57 / 8);
  300. whiteKingsKnight.setSize(pieceDim,pieceDim);
  301. add(whiteKingsKnight);
  302. piecesOnBoard.set(6,7,whiteKingsKnight);
  303.  
  304. whiteQueensBishop = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_white_bishop.png");
  305. whiteQueensBishop.setPosition(squareDim * 17 / 8, squareDim * 57 / 8);
  306. whiteQueensBishop.setSize(pieceDim,pieceDim);
  307. add(whiteQueensBishop);
  308. piecesOnBoard.set(2,7,whiteQueensBishop);
  309.  
  310. whiteKingsBishop = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_white_bishop.png");
  311. whiteKingsBishop.setPosition(squareDim * 41 / 8, squareDim * 57 / 8);
  312. whiteKingsBishop.setSize(pieceDim,pieceDim);
  313. add(whiteKingsBishop);
  314. piecesOnBoard.set(5,7,whiteKingsBishop);
  315.  
  316. whiteQueen = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_white_queen.png");
  317. whiteQueen.setPosition(squareDim * 25 / 8, squareDim * 57 / 8);
  318. whiteQueen.setSize(pieceDim,pieceDim);
  319. add(whiteQueen);
  320. piecesOnBoard.set(3,7,whiteQueen);
  321.  
  322. whiteKing = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_white_king.png");
  323. whiteKing.setPosition(squareDim * 33 / 8, squareDim * 57 / 8);
  324. whiteKing.setSize(pieceDim,pieceDim);
  325. add(whiteKing);
  326. piecesOnBoard.set(4,7,whiteKing);
  327. }
  328.  
  329. function makeBlackPieces(){
  330. blackAPawn = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_black_pawn.png");
  331. blackAPawn.setPosition(squareDim / 8, squareDim * 9 / 8);
  332. blackAPawn.setSize(pieceDim,pieceDim);
  333. add(blackAPawn);
  334. piecesOnBoard.set(0,1,blackAPawn);
  335.  
  336. blackBPawn = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_black_pawn.png");
  337. blackBPawn.setPosition(squareDim * 9 / 8, squareDim * 9 / 8);
  338. blackBPawn.setSize(pieceDim,pieceDim);
  339. add(blackBPawn);
  340. piecesOnBoard.set(1,1,blackBPawn);
  341.  
  342. blackCPawn = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_black_pawn.png");
  343. blackCPawn.setPosition(squareDim * 17 / 8, squareDim * 9 / 8);
  344. blackCPawn.setSize(pieceDim,pieceDim);
  345. add(blackCPawn);
  346. piecesOnBoard.set(2,1,blackCPawn);
  347.  
  348. blackDPawn = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_black_pawn.png");
  349. blackDPawn.setPosition(squareDim * 25 / 8, squareDim * 9 / 8);
  350. blackDPawn.setSize(pieceDim,pieceDim);
  351. add(blackDPawn);
  352. piecesOnBoard.set(3,1,blackDPawn);
  353.  
  354. blackEPawn = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_black_pawn.png");
  355. blackEPawn.setPosition(squareDim * 33 / 8, squareDim * 9 / 8);
  356. blackEPawn.setSize(pieceDim,pieceDim);
  357. add(blackEPawn);
  358. piecesOnBoard.set(4,1,blackEPawn);
  359.  
  360. blackFPawn = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_black_pawn.png");
  361. blackFPawn.setPosition(squareDim * 41 / 8, squareDim * 9 / 8);
  362. blackFPawn.setSize(pieceDim,pieceDim);
  363. add(blackFPawn);
  364. piecesOnBoard.set(5,1,blackFPawn);
  365.  
  366. blackGPawn = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_black_pawn.png");
  367. blackGPawn.setPosition(squareDim * 49 / 8, squareDim * 9 / 8);
  368. blackGPawn.setSize(pieceDim,pieceDim);
  369. add(blackGPawn);
  370. piecesOnBoard.set(6,1,blackGPawn);
  371.  
  372. blackHPawn = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_black_pawn.png");
  373. blackHPawn.setPosition(squareDim * 57 / 8, squareDim * 9 / 8);
  374. blackHPawn.setSize(pieceDim,pieceDim);
  375. add(blackHPawn);
  376. piecesOnBoard.set(7,1,blackHPawn);
  377.  
  378. blackQueensRook = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_black_rook.png");
  379. blackQueensRook.setPosition(squareDim / 8, squareDim / 8);
  380. blackQueensRook.setSize(pieceDim,pieceDim);
  381. add(blackQueensRook);
  382. piecesOnBoard.set(0,0,blackQueensRook);
  383.  
  384. blackQueensKnight = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_black_knight.png");
  385. blackQueensKnight.setPosition(squareDim * 9 / 8, squareDim / 8);
  386. blackQueensKnight.setSize(pieceDim, pieceDim);
  387. add(blackQueensKnight);
  388. piecesOnBoard.set(1,0,blackQueensKnight);
  389.  
  390. blackQueensBishop = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_black_bishop.png");
  391. blackQueensBishop.setPosition(squareDim * 17 / 8, squareDim / 8);
  392. blackQueensBishop.setSize(pieceDim,pieceDim);
  393. add(blackQueensBishop);
  394. piecesOnBoard.set(2,0,blackQueensBishop);
  395.  
  396. blackQueen = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_black_queen.png");
  397. blackQueen.setPosition(squareDim * 25 / 8, squareDim / 8);
  398. blackQueen.setSize(pieceDim,pieceDim);
  399. add(blackQueen);
  400. piecesOnBoard.set(5,0,blackQueen);
  401.  
  402. blackKing = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_black_king.png");
  403. blackKing.setPosition(squareDim * 33 / 8, squareDim / 8);
  404. blackKing.setSize(pieceDim,pieceDim);
  405. add(blackKing);
  406. piecesOnBoard.set(4,0,blackKing);
  407.  
  408. blackKingsBishop = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_black_bishop.png");
  409. blackKingsBishop.setPosition(squareDim * 41 / 8, squareDim / 8);
  410. blackKingsBishop.setSize(pieceDim,pieceDim);
  411. add(blackKingsBishop);
  412. piecesOnBoard.set(5,0,blackKingsBishop);
  413.  
  414. blackKingsKnight = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_black_knight.png");
  415. blackKingsKnight.setPosition(squareDim * 49 / 8, squareDim / 8);
  416. blackKingsKnight.setSize(pieceDim,pieceDim);
  417. add(blackKingsKnight);
  418. piecesOnBoard.set(6,0,blackKingsKnight);
  419.  
  420. blackKingsRook = new WebImage("https://www.wpclipart.com/recreation/games/chess/chess_set_1/chess_piece_black_rook.png");
  421. blackKingsRook.setPosition(squareDim * 57 / 8, squareDim / 8);
  422. blackKingsRook.setSize(pieceDim,pieceDim);
  423. add(blackKingsRook);
  424. piecesOnBoard.set(7,0,blackKingsRook);
  425. }
  426.  
  427. function fillGrid(){
  428. for(var i = 0; i < 8; i++){
  429. for(var j = 0; j < 8; j++){
  430. var elem = piecesOnBoard.get(i,j);
  431.  
  432. var whitePc = false;
  433. var blackPc = false;
  434.  
  435. for(var count = 0; count < whitePiecesArr.length; count++){
  436. if(pickedPiece == whitePiecesArr[count]){
  437. whitePc = true;
  438. }
  439. }
  440. for(var count = 0; count < blackPiecesArr.length; count++){
  441. if(pickedPiece == blackPiecesArr[count]){
  442. blackPc = true;
  443. }
  444. }
  445.  
  446. if(whitePc == false && blackPc == false){
  447. piecesOnBoard.set(i,j,null);
  448. }
  449. }
  450. }
  451.  
  452. /*For some reason, that thing leaves the below squares as undefined instead of
  453. *null. I've fixed it, as you can see. */
  454.  
  455. piecesOnBoard.set(7,5,null);
  456. piecesOnBoard.set(6,5,null);
  457. piecesOnBoard.set(7,4,null);
  458. piecesOnBoard.set(6,4,null);
  459. piecesOnBoard.set(5,4,null);
  460. piecesOnBoard.set(7,3,null);
  461. piecesOnBoard.set(6,3,null);
  462. piecesOnBoard.set(5,3,null);
  463. piecesOnBoard.set(4,3,null);
  464. piecesOnBoard.set(7,2,null);
  465. piecesOnBoard.set(6,2,null);
  466. piecesOnBoard.set(5,2,null);
  467. piecesOnBoard.set(4,2,null);
  468. piecesOnBoard.set(3,2,null);
  469. }
  470.  
  471. function makeUI(){
  472. var toMove = new Text("To move:", "16pt Arial");
  473. toMove.setPosition(squareDim / 8, height - (squareDim / 2));
  474. add(toMove);
  475.  
  476. var toMoveSlot = new Rectangle(pieceDim,pieceDim);
  477. toMoveSlot.setPosition(squareDim * 2, height - (squareDim / 4 + pieceDim));
  478. add(toMoveSlot);
  479.  
  480. toMoveSquare = new Rectangle(squareDim * 5 / 8, squareDim * 5 / 8);
  481. toMoveSquare.setPosition(squareDim * 33 / 16, height - (squareDim * 15 / 16));
  482. toMoveSquare.setColor(Color.white);
  483. add(toMoveSquare);
  484. }
  485.  
  486. function pieceTogglePicked(e){
  487. mouseX = e.getX();
  488. mouseY = e.getY();
  489.  
  490. mouseSquareX = Math.floor(mouseX / squareDim);
  491.  
  492. if(mouseY < width){
  493. mouseSquareY = Math.floor(mouseY / squareDim);
  494. } else {
  495. mouseSquareY = -1;
  496. println(pickedPiece);
  497. }
  498.  
  499. if(piecePicked == false){
  500. var wP = false;
  501. var bP = false;
  502. if(mouseSquareY != -1){
  503. pickedPiece = piecesOnBoard.get(mouseSquareX,mouseSquareY);
  504. if(pickedPiece != null){
  505. if(pickedPiece == whiteAPawn || pickedPiece == whiteBPawn || pickedPiece == whiteCPawn || pickedPiece == whiteDPawn || pickedPiece == whiteEPawn || pickedPiece == whiteFPawn || pickedPiece == whiteGPawn || pickedPiece == whiteHPawn || pickedPiece == whiteQueensRook || pickedPiece == whiteQueensKnight || pickedPiece == whiteQueensBishop || pickedPiece == whiteQueen || pickedPiece == whiteKing || pickedPiece == whiteKingsBishop || pickedPiece == whiteKingsKnight || pickedPiece == whiteKingsRook){
  506. wP = true;
  507. if(whiteToMove == false){
  508. pickedPiece = null;
  509. piecePicked = false;
  510. }
  511. }
  512.  
  513. if(pickedPiece == blackAPawn ||
  514. pickedPiece == blackBPawn ||
  515. pickedPiece == blackCPawn ||
  516. pickedPiece == blackDPawn ||
  517. pickedPiece == blackEPawn ||
  518. pickedPiece == blackFPawn ||
  519. pickedPiece == blackGPawn ||
  520. pickedPiece == blackHPawn ||
  521. pickedPiece == blackQueensRook ||
  522. pickedPiece == blackQueensKnight ||
  523. pickedPiece == blackQueensBishop ||
  524. pickedPiece == blackQueen ||
  525. pickedPiece == blackKing ||
  526. pickedPiece == blackKingsBishop ||
  527. pickedPiece == blackKingsKnight ||
  528. pickedPiece == blackKingsRook){
  529. bP = true;
  530. if(whiteToMove){
  531. pickedPiece = null;
  532. piecePicked = false;
  533. }
  534. }
  535.  
  536. println("wP: " + wP);
  537. println("bP: " + bP);
  538.  
  539. if(pickedPiece != null){
  540. prevX = pickedPiece.getX();
  541. prevY = pickedPiece.getY();
  542. pieceX = mouseSquareX;
  543. pieceY = mouseSquareY;
  544. piecePicked = true;
  545. }
  546. }
  547. }
  548. } else {
  549. var emptySquare = piecesOnBoard.get(mouseSquareX,mouseSquareY) == null;
  550.  
  551. if(pickedPiece == whiteAPawn || pickedPiece == whiteBPawn || pickedPiece == whiteCPawn || pickedPiece == whiteDPawn || pickedPiece == whiteEPawn || pickedPiece == whiteFPawn || pickedPiece == whiteGPawn || pickedPiece == whiteHPawn || pickedPiece == whiteQueensRook || pickedPiece == whiteQueensKnight || pickedPiece == whiteQueensBishop || pickedPiece == whiteQueen || pickedPiece == whiteKing || pickedPiece == whiteKingsBishop || pickedPiece == whiteKingsKnight || pickedPiece == whiteKingsRook){
  552. if(pickedPiece == whiteAPawn || pickedPiece == whiteBPawn || pickedPiece == whiteCPawn || pickedPiece == whiteDPawn || pickedPiece == whiteEPawn || pickedPiece == whiteFPawn || pickedPiece == whiteGPawn || pickedPiece == whiteHPawn){
  553. if(emptySquare){
  554. moveWhitePawn();
  555. }
  556. } else {
  557. if(pickedPiece == whiteQueensKnight || pickedPiece == whiteKingsKnight){
  558. if(emptySquare){
  559. moveWhiteKnight();
  560. }
  561. } else if(pickedPiece == whiteQueensRook || pickedPiece == whiteKingsRook){
  562. if(emptySquare){
  563. moveWhiteRook();
  564. }
  565. } else if(pickedPiece == whiteQueensBishop || pickedPiece == whiteKingsBishop){
  566. if(emptySquare){
  567. moveWhiteBishop();
  568. }
  569. } else if(pickedPiece == whiteQueen){
  570. if(emptySquare){
  571. //moveWhiteQueen();
  572. }
  573. } else {
  574. if(emptySquare){
  575. //moveWhiteKing();
  576. }
  577. }
  578. }
  579. } else if(pickedPiece == blackAPawn || pickedPiece == blackBPawn || pickedPiece == blackCPawn || pickedPiece == blackDPawn || pickedPiece == blackEPawn || pickedPiece == blackFPawn || pickedPiece == blackGPawn || pickedPiece == blackHPawn || pickedPiece == blackQueensRook || pickedPiece == blackQueensKnight || pickedPiece == blackQueensBishop || pickedPiece == blackQueen || pickedPiece == blackKing || pickedPiece == blackKingsBishop || pickedPiece == blackKingsBishop || pickedPiece == blackKingsRook){
  580. if(pickedPiece == blackAPawn || pickedPiece == blackBPawn || pickedPiece == blackCPawn || pickedPiece == blackDPawn || pickedPiece == blackEPawn || pickedPiece == blackFPawn || pickedPiece == blackGPawn || pickedPiece == blackHPawn){
  581. if(emptySquare){
  582. moveBlackPawn();
  583. }
  584. } else {
  585. if(pickedPiece == blackQueensKnight || pickedPiece == blackKingsKnight){
  586. //'Tis but a scratch!
  587. if(emptySquare){
  588. moveBlackKnight();
  589. }
  590. } else if(pickedPiece == blackQueensRook || pickedPiece == blackKingsRook){
  591. if(emptySquare){
  592. moveBlackRook();
  593. }
  594. } else if(pickedPiece == blackQueensBishop || pickedPiece == blackKingsBishop){
  595. if(emptySquare){
  596. moveBlackBishop();
  597. }
  598. } else if(pickedPiece == blackQueen){
  599. if(emptySquare){
  600. //moveBlackQueen();
  601. }
  602. } else {
  603. if(emptySquare){
  604. //moveBlackKing();
  605. }
  606. }
  607. }
  608. } else {
  609. pickedPiece.setPosition(prevX,prevY);
  610. pickedPiece = null;
  611. piecePicked = false;
  612. }
  613. }
  614. }
  615.  
  616. function moveWhitePawn(){
  617. legalMove = false;
  618. if(pieceX == 0){
  619. //A-file pawn
  620. if(whiteAPawnFirstMove == true){
  621. var firstMoveX = pieceX;
  622. var firstMoveY = pieceY - 2;
  623. if(mouseSquareX == firstMoveX && mouseSquareY == firstMoveY){
  624. legalMove = true;
  625. }
  626. }
  627. var moveX = pieceX;
  628. var moveY = pieceY - 1;
  629.  
  630. if(mouseSquareX == moveX && mouseSquareY == moveY){
  631. legalmove = true;
  632. }
  633.  
  634. if(legalMove){
  635. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  636. pickedPiece = null;
  637. piecePicked = false;
  638. whiteAPawnFirstMove = false;
  639. piecesOnBoard.set(mouseSquareX,mouseSquareY,whiteAPawn);
  640.  
  641. prevSqX = Math.floor(prevX / squareDim);
  642. prevSqY = Math.floor(prevY / squareDim);
  643.  
  644. piecesOnBoard.set(prevSqX,prevSqY, null);
  645.  
  646. whiteToMove = false;
  647. toMoveSquare.setColor(Color.black);
  648. legalMove = false;
  649.  
  650. } else {
  651. pickedPiece.setPosition(prevX,prevY);
  652. pickedPiece = null;
  653. piecePicked = false;
  654. }
  655. } else if (pieceX == 1){
  656. //B-file pawn
  657. if(whiteBPawnFirstMove == true){
  658. var firstMoveX = pieceX;
  659. var firstMoveY = pieceY - 2;
  660. if(mouseSquareX == firstMoveX && mouseSquareY == firstMoveY){
  661. legalMove = true;
  662. }
  663. }
  664. var moveX = pieceX;
  665. var moveY = pieceY - 1;
  666.  
  667. if(mouseSquareX == moveX && mouseSquareY == moveY){
  668. legalMove = true;
  669. }
  670.  
  671. if(legalMove){
  672. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  673. pickedPiece = null;
  674. piecePicked = false;
  675. whiteBPawnFirstMove = false;
  676. piecesOnBoard.set(mouseSquareX,mouseSquareY,whiteBPawn);
  677.  
  678. prevSqX = Math.floor(prevX / squareDim);
  679. prevSqY = Math.floor(prevY / squareDim);
  680.  
  681. piecesOnBoard.set(prevSqX,prevSqY, null);
  682.  
  683. whiteToMove = false;
  684. toMoveSquare.setColor(Color.black);
  685.  
  686. } else {
  687. pickedPiece.setPosition(prevX,prevY);
  688. pickedPiece = null;
  689. piecePicked = false;
  690. }
  691.  
  692. } else if (pieceX == 2){
  693. //C-file pawn
  694. if(whiteCPawnFirstMove == true){
  695. var firstMoveX = pieceX;
  696. var firstMoveY = pieceY - 2;
  697. if(mouseSquareX == firstMoveX && mouseSquareY == firstMoveY){
  698. legalMove = true;
  699. }
  700. }
  701. var moveX = pieceX;
  702. var moveY = pieceY - 1;
  703.  
  704. if(mouseSquareX == moveX && mouseSquareY == moveY){
  705. legalMove = true;
  706. }
  707.  
  708. if(legalMove){
  709. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  710. pickedPiece = null;
  711. piecePicked = false;
  712. whiteCPawnFirstMove = false;
  713. piecesOnBoard.set(mouseSquareX,mouseSquareY,whiteDPawn);
  714.  
  715. prevSqX = Math.floor(prevX / squareDim);
  716. prevSqY = Math.floor(prevY / squareDim);
  717.  
  718. piecesOnBoard.set(prevSqX,prevSqY, null);
  719.  
  720. whiteToMove = false;
  721. toMoveSquare.setColor(Color.black);
  722. } else {
  723. pickedPiece.setPosition(prevX,prevY);
  724. pickedPiece = null;
  725. piecePicked = false;
  726. }
  727. } else if (pieceX == 3){
  728. //D-file pawn
  729. if(whiteDPawnFirstMove == true){
  730. var firstMoveX = pieceX;
  731. var firstMoveY = pieceY - 2;
  732. if(mouseSquareX == firstMoveX && mouseSquareY == firstMoveY){
  733. legalMove = true;
  734. }
  735. }
  736. var moveX = pieceX;
  737. var moveY = pieceY - 1;
  738.  
  739. if(mouseSquareX == moveX && mouseSquareY == moveY){
  740. legalMove = true;
  741. }
  742.  
  743. if(legalMove){
  744. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  745. pickedPiece = null;
  746. piecePicked = false;
  747. whiteDPawnFirstMove = false;
  748. piecesOnBoard.set(mouseSquareX,mouseSquareY,whiteDPawn);
  749.  
  750. prevSqX = Math.floor(prevX / squareDim);
  751. prevSqY = Math.floor(prevY / squareDim);
  752.  
  753. piecesOnBoard.set(prevSqX,prevSqY, null);
  754.  
  755. whiteToMove = false;
  756. toMoveSquare.setColor(Color.black);
  757. } else {
  758. pickedPiece.setPosition(prevX,prevY);
  759. pickedPiece = null;
  760. piecePicked = false;
  761. }
  762. } else if (pieceX == 4){
  763. //E-file pawn
  764. if(whiteEPawnFirstMove == true){
  765. var firstMoveX = pieceX;
  766. var firstMoveY = pieceY - 2;
  767. if(mouseSquareX == firstMoveX && mouseSquareY == firstMoveY){
  768. legalMove = true;
  769. }
  770. }
  771. var moveX = pieceX;
  772. var moveY = pieceY - 1;
  773.  
  774. if(mouseSquareX == moveX && mouseSquareY == moveY){
  775. legalMove = true;
  776. }
  777.  
  778. if(legalMove){
  779. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  780. pickedPiece = null;
  781. piecePicked = false;
  782. whiteEPawnFirstMove = false;
  783. piecesOnBoard.set(mouseSquareX,mouseSquareY,whiteEPawn);
  784.  
  785. prevSqX = Math.floor(prevX / squareDim);
  786. prevSqY = Math.floor(prevY / squareDim);
  787.  
  788. piecesOnBoard.set(prevSqX,prevSqY, null);
  789.  
  790. whiteToMove = false;
  791. toMoveSquare.setColor(Color.black);
  792. } else {
  793. pickedPiece.setPosition(prevX,prevY);
  794. pickedPiece = null;
  795. piecePicked = false;
  796. }
  797. } else if (pieceX == 5){
  798. //F-file pawn
  799. if(whiteFPawnFirstMove == true){
  800. var firstMoveX = pieceX;
  801. var firstMoveY = pieceY - 2;
  802. if(mouseSquareX == firstMoveX && mouseSquareY == firstMoveY){
  803. legalMove = true;
  804. }
  805. }
  806. var moveX = pieceX;
  807. var moveY = pieceY - 1;
  808.  
  809. if(mouseSquareX == moveX && mouseSquareY == moveY){
  810. legalMove = true;
  811. }
  812.  
  813. if(legalMove){
  814. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  815. pickedPiece = null;
  816. piecePicked = false;
  817. whiteFPawnFirstMove = false;
  818. piecesOnBoard.set(mouseSquareX,mouseSquareY,whiteFPawn);
  819.  
  820. prevSqX = Math.floor(prevX / squareDim);
  821. prevSqY = Math.floor(prevY / squareDim);
  822.  
  823. piecesOnBoard.set(prevSqX,prevSqY, null);
  824.  
  825. whiteToMove = false;
  826. toMoveSquare.setColor(Color.black);
  827. } else {
  828. pickedPiece.setPosition(prevX,prevY);
  829. pickedPiece = null;
  830. piecePicked = false;
  831. }
  832. } else if (pieceX == 6){
  833. //G-file pawn
  834. if(whiteGPawnFirstMove == true){
  835. var firstMoveX = pieceX;
  836. var firstMoveY = pieceY - 2;
  837. if(mouseSquareX == firstMoveX && mouseSquareY == firstMoveY){
  838. legalMove = true;
  839. }
  840. }
  841. var moveX = pieceX;
  842. var moveY = pieceY - 1;
  843.  
  844. if(mouseSquareX == moveX && mouseSquareY == moveY){
  845. legalMove = true;
  846. }
  847.  
  848. if(legalMove){
  849. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  850. pickedPiece = null;
  851. piecePicked = false;
  852. whiteGPawnFirstMove = false;
  853. piecesOnBoard.set(mouseSquareX,mouseSquareY,whiteGPawn);
  854.  
  855. prevSqX = Math.floor(prevX / squareDim);
  856. prevSqY = Math.floor(prevY / squareDim);
  857.  
  858. piecesOnBoard.set(prevSqX,prevSqY, null);
  859.  
  860. whiteToMove = false;
  861. toMoveSquare.setColor(Color.black);
  862. } else {
  863. pickedPiece.setPosition(prevX,prevY);
  864. pickedPiece = null;
  865. piecePicked = false;
  866. }
  867. } else if (pieceX == 7){
  868. //H-file pawn
  869. if(whiteHPawnFirstMove == true){
  870. var firstMoveX = pieceX;
  871. var firstMoveY = pieceY - 2;
  872. if(mouseSquareX == firstMoveX && mouseSquareY == firstMoveY){
  873. legalMove = true;
  874. }
  875. }
  876. var moveX = pieceX;
  877. var moveY = pieceY - 1;
  878.  
  879. if(mouseSquareX == moveX && mouseSquareY == moveY){
  880. legalMove = true;
  881. }
  882.  
  883. if(legalMove){
  884. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  885. pickedPiece = null;
  886. piecePicked = false;
  887. whiteHPawnFirstMove = false;
  888. piecesOnBoard.set(mouseSquareX,mouseSquareY,whiteHPawn);
  889.  
  890. prevSqX = Math.floor(prevX / squareDim);
  891. prevSqY = Math.floor(prevY / squareDim);
  892.  
  893. piecesOnBoard.set(prevSqX,prevSqY, null);
  894.  
  895. whiteToMove = false;
  896. toMoveSquare.setColor(Color.black);
  897. } else {
  898. pickedPiece.setPosition(prevX,prevY);
  899. pickedPiece = null;
  900. piecePicked = false;
  901. }
  902. }
  903. }
  904.  
  905. function moveBlackPawn(){
  906. legalMove = false;
  907. if(pieceX == 0){
  908. //A-file pawn
  909. if(blackAPawnFirstMove == true){
  910. var firstMoveX = pieceX;
  911. var firstMoveY = pieceY + 2;
  912. if(mouseSquareX == firstMoveX && mouseSquareY == firstMoveY){
  913. legalMove = true;
  914. }
  915. }
  916. var moveX = pieceX;
  917. var moveY = pieceY + 1;
  918.  
  919. if(mouseSquareX == moveX && mouseSquareY == moveY){
  920. legalMove = true;
  921. }
  922.  
  923. if(legalMove){
  924. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  925. pickedPiece = null;
  926. piecePicked = false;
  927. blackAPawnFirstMove = false;
  928. piecesOnBoard.set(mouseSquareX,mouseSquareY,blackAPawn);
  929.  
  930. prevSqX = Math.floor(prevX / squareDim);
  931. prevSqY = Math.floor(prevY / squareDim);
  932.  
  933. piecesOnBoard.set(prevSqX,prevSqY, null);
  934.  
  935. whiteToMove = true;
  936. toMoveSquare.setColor(Color.white);
  937. legalMove = false;
  938. } else {
  939. pickedPiece.setPosition(prevX,prevY);
  940. pickedPiece = null;
  941. piecePicked = false;
  942. }
  943.  
  944. } else if (pieceX == 1){
  945. //B-file pawn
  946. if(blackBPawnFirstMove == true){
  947. var firstMoveX = pieceX;
  948. var firstMoveY = pieceY + 2;
  949. if(mouseSquareX == firstMoveX && mouseSquareY == firstMoveY){
  950. legalMove = true;
  951. }
  952. }
  953. var moveX = pieceX;
  954. var moveY = pieceY + 1;
  955.  
  956. if(mouseSquareX == moveX && mouseSquareY == moveY){
  957. legalMove = true;
  958. }
  959.  
  960. if(legalMove){
  961. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  962. pickedPiece = null;
  963. piecePicked = false;
  964. blackBPawnFirstMove = false;
  965. piecesOnBoard.set(mouseSquareX,mouseSquareY,blackBPawn);
  966.  
  967. prevSqX = Math.floor(prevX / squareDim);
  968. prevSqY = Math.floor(prevY / squareDim);
  969.  
  970. piecesOnBoard.set(prevSqX,prevSqY, null);
  971.  
  972. whiteToMove = true;
  973. toMoveSquare.setColor(Color.white);
  974. } else {
  975. pickedPiece.setPosition(prevX,prevY);
  976. pickedPiece = null;
  977. piecePicked = false;
  978. }
  979. } else if (pieceX == 2){
  980. //C-file pawn
  981. if(blackCPawnFirstMove == true){
  982. var firstMoveX = pieceX;
  983. var firstMoveY = pieceY + 2;
  984. if(mouseSquareX == firstMoveX && mouseSquareY == firstMoveY){
  985. legalMove = true;
  986. }
  987. }
  988. var moveX = pieceX;
  989. var moveY = pieceY + 1;
  990.  
  991. if(mouseSquareX == moveX && mouseSquareY == moveY){
  992. legalMove = true;
  993. }
  994.  
  995. if(legalMove){
  996. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  997. pickedPiece = null;
  998. piecePicked = false;
  999. blackCPawnFirstMove = false;
  1000. piecesOnBoard.set(mouseSquareX,mouseSquareY,blackDPawn);
  1001.  
  1002. prevSqX = Math.floor(prevX / squareDim);
  1003. prevSqY = Math.floor(prevY / squareDim);
  1004.  
  1005. piecesOnBoard.set(prevSqX,prevSqY, null);
  1006.  
  1007. whiteToMove = true;
  1008. toMoveSquare.setColor(Color.white);
  1009. } else {
  1010. pickedPiece.setPosition(prevX,prevY);
  1011. pickedPiece = null;
  1012. piecePicked = false;
  1013. }
  1014. } else if (pieceX == 3){
  1015. //D-file pawn
  1016. if(blackDPawnFirstMove == true){
  1017. var firstMoveX = pieceX;
  1018. var firstMoveY = pieceY + 2;
  1019. if(mouseSquareX == firstMoveX && mouseSquareY == firstMoveY){
  1020. legalMove = true;
  1021. }
  1022. }
  1023. var moveX = pieceX;
  1024. var moveY = pieceY + 1;
  1025.  
  1026. if(mouseSquareX == moveX && mouseSquareY == moveY){
  1027. legalMove = true;
  1028. }
  1029.  
  1030. if(legalMove){
  1031. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  1032. pickedPiece = null;
  1033. piecePicked = false;
  1034. blackDPawnFirstMove = false;
  1035. piecesOnBoard.set(mouseSquareX,mouseSquareY,blackDPawn);
  1036.  
  1037. prevSqX = Math.floor(prevX / squareDim);
  1038. prevSqY = Math.floor(prevY / squareDim);
  1039.  
  1040. piecesOnBoard.set(prevSqX,prevSqY, null);
  1041.  
  1042. whiteToMove = true;
  1043. toMoveSquare.setColor(Color.white);
  1044. } else {
  1045. pickedPiece.setPosition(prevX,prevY);
  1046. pickedPiece = null;
  1047. piecePicked = false;
  1048. }
  1049. } else if (pieceX == 4){
  1050. //E-file pawn
  1051. if(blackEPawnFirstMove == true){
  1052. var firstMoveX = pieceX;
  1053. var firstMoveY = pieceY + 2;
  1054. if(mouseSquareX == firstMoveX && mouseSquareY == firstMoveY){
  1055. legalMove = true;
  1056. }
  1057. }
  1058. var moveX = pieceX;
  1059. var moveY = pieceY + 1;
  1060.  
  1061. if(mouseSquareX == moveX && mouseSquareY == moveY){
  1062. legalMove = true;
  1063. }
  1064.  
  1065. if(legalMove){
  1066. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  1067. pickedPiece = null;
  1068. piecePicked = false;
  1069. blackEPawnFirstMove = false;
  1070. piecesOnBoard.set(mouseSquareX,mouseSquareY,blackEPawn);
  1071.  
  1072. prevSqX = Math.floor(prevX / squareDim);
  1073. prevSqY = Math.floor(prevY / squareDim);
  1074.  
  1075. piecesOnBoard.set(prevSqX,prevSqY, null);
  1076.  
  1077. whiteToMove = true;
  1078. toMoveSquare.setColor(Color.white);
  1079. } else {
  1080. pickedPiece.setPosition(prevX,prevY);
  1081. pickedPiece = null;
  1082. piecePicked = false;
  1083. }
  1084. } else if (pieceX == 5){
  1085. //F-file pawn
  1086. if(blackFPawnFirstMove == true){
  1087. var firstMoveX = pieceX;
  1088. var firstMoveY = pieceY + 2;
  1089. if(mouseSquareX == firstMoveX && mouseSquareY == firstMoveY){
  1090. legalMove = true;
  1091. }
  1092. }
  1093. var moveX = pieceX;
  1094. var moveY = pieceY + 1;
  1095.  
  1096. if(mouseSquareX == moveX && mouseSquareY == moveY){
  1097. legalMove = true;
  1098. }
  1099.  
  1100. if(legalMove){
  1101. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  1102. pickedPiece = null;
  1103. piecePicked = false;
  1104. blackFPawnFirstMove = false;
  1105. piecesOnBoard.set(mouseSquareX,mouseSquareY,blackFPawn);
  1106.  
  1107. prevSqX = Math.floor(prevX / squareDim);
  1108. prevSqY = Math.floor(prevY / squareDim);
  1109.  
  1110. piecesOnBoard.set(prevSqX,prevSqY, null);
  1111.  
  1112. whiteToMove = true;
  1113. toMoveSquare.setColor(Color.white);
  1114. } else {
  1115. pickedPiece.setPosition(prevX,prevY);
  1116. pickedPiece = null;
  1117. piecePicked = false;
  1118. }
  1119. } else if (pieceX == 6){
  1120. //G-file pawn
  1121. if(blackGPawnFirstMove == true){
  1122. var firstMoveX = pieceX;
  1123. var firstMoveY = pieceY + 2;
  1124. if(mouseSquareX == firstMoveX && mouseSquareY == firstMoveY){
  1125. legalMove = true;
  1126. }
  1127. }
  1128. var moveX = pieceX;
  1129. var moveY = pieceY + 1;
  1130.  
  1131. if(mouseSquareX == moveX && mouseSquareY == moveY){
  1132. legalMove = true;
  1133. }
  1134.  
  1135. if(legalMove){
  1136. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  1137. pickedPiece = null;
  1138. piecePicked = false;
  1139. blackGPawnFirstMove = false;
  1140. piecesOnBoard.set(mouseSquareX,mouseSquareY,blackGPawn);
  1141.  
  1142. prevSqX = Math.floor(prevX / squareDim);
  1143. prevSqY = Math.floor(prevY / squareDim);
  1144.  
  1145. piecesOnBoard.set(prevSqX,prevSqY, null);
  1146.  
  1147. whiteToMove = true;
  1148. toMoveSquare.setColor(Color.white);
  1149. } else {
  1150. pickedPiece.setPosition(prevX,prevY);
  1151. pickedPiece = null;
  1152. piecePicked = false;
  1153. }
  1154. } else if (pieceX == 7){
  1155. //H-file pawn
  1156. if(blackHPawnFirstMove == true){
  1157. var firstMoveX = pieceX;
  1158. var firstMoveY = pieceY + 2;
  1159. if(mouseSquareX == firstMoveX && mouseSquareY == firstMoveY){
  1160. legalMove = true;
  1161. }
  1162. }
  1163. var moveX = pieceX;
  1164. var moveY = pieceY + 1;
  1165.  
  1166. if(mouseSquareX == moveX && mouseSquareY == moveY){
  1167. legalMove = true;
  1168. }
  1169.  
  1170. if(legalMove){
  1171. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  1172. pickedPiece = null;
  1173. piecePicked = false;
  1174. blackHPawnFirstMove = false;
  1175. piecesOnBoard.set(mouseSquareX,mouseSquareY,blackHPawn);
  1176.  
  1177. prevSqX = Math.floor(prevX / squareDim);
  1178. prevSqY = Math.floor(prevY / squareDim);
  1179.  
  1180. piecesOnBoard.set(prevSqX,prevSqY, null);
  1181.  
  1182. whiteToMove = true;
  1183. toMoveSquare.setColor(Color.white);
  1184. } else {
  1185. pickedPiece.setPosition(prevX,prevY);
  1186. pickedPiece = null;
  1187. piecePicked = false;
  1188. }
  1189. }
  1190. }
  1191.  
  1192. function moveWhiteKnight(){
  1193. legalMove = false;
  1194.  
  1195. if(pickedPiece == whiteQueensKnight){
  1196. //queen's knight
  1197. var upLeftLegal = false;
  1198. var upRightLegal = false;
  1199. var leftUpLegal = false;
  1200. var leftDownLegal = false;
  1201. var downLeftLegal = false;
  1202. var downRightLegal = false;
  1203. var rightUpLegal = false;
  1204. var rightDownLegal = false;
  1205.  
  1206. var upLeftX = prevSqX - 1;
  1207. var upLeftY = prevSqY - 2;
  1208. var upRightX = prevSqX + 1;
  1209. var upRightY = prevSqY - 2;
  1210. var leftUpX = prevSqX - 2;
  1211. var leftUpY = prevSqY - 1;
  1212. var leftDownX = prevSqX - 2;
  1213. var leftDownY = prevSqY + 1;
  1214. var downLeftX = prevSqX - 1;
  1215. var downLeftY = prevSqY + 2;
  1216. var downRightX = prevSqX + 1;
  1217. var downRightY = prevSqY + 2;
  1218. var rightUpX = prevSqX + 2;
  1219. var rightUpY = prevSqY - 1;
  1220. var rightDownX = prevSqX + 2;
  1221. var rightDownY = prevSqY + 1;
  1222.  
  1223. prevSqX = Math.floor(prevX / squareDim);
  1224. prevSqY = Math.floor(prevY / squareDim);
  1225.  
  1226. if(upLeftY >= 0){
  1227. if(upLeftX >= 0){
  1228. upLeftLegal = true;
  1229. }
  1230. if(upRightX <= 7){
  1231. upRightLegal = true;
  1232. }
  1233. }
  1234. if(leftUpX >= 0){
  1235. if(leftUpY >= 0){
  1236. leftUpLegal = true;
  1237. }
  1238. if(leftDownY <= 7){
  1239. leftDownLegal = true;
  1240. }
  1241. }
  1242. if(downLeftY <= 7){
  1243. if(downLeftX >= 0){
  1244. downLeftLegal = true;
  1245. }
  1246. if(downRightX <= 7){
  1247. downRightLegal = true;
  1248. }
  1249. }
  1250. if(rightUpX <= 7){
  1251. if(rightUpY >= 0){
  1252. rightUpLegal = true;
  1253. }
  1254. if(rightDownY <= 7){
  1255. rightDownLegal = true;
  1256. }
  1257. }
  1258.  
  1259. if(upLeftLegal && mouseSquareX == upLeftX && mouseSquareY == upLeftY){
  1260. legalMove = true;
  1261. }
  1262. if(upRightLegal && mouseSquareX == upRightX && mouseSquareY == upRightY){
  1263. legalMove = true;
  1264. }
  1265. if(leftUpLegal && mouseSquareX == leftUpX && mouseSquareY == leftUpY){
  1266. legalMove = true;
  1267. }
  1268. if(leftDownLegal && mouseSquareX == leftDownX && mouseSquareY == leftDownY){
  1269. legalMove = true;
  1270. }
  1271. if(downLeftLegal && mouseSquareX == downLeftX && mouseSquareY == downLeftY){
  1272. legalMove = true;
  1273. }
  1274. if(downRightLegal && mouseSquareX == downRightX && mouseSquareY == downRightY){
  1275. legalMove = true;
  1276. }
  1277. if(rightUpLegal && mouseSquareX == rightUpX && mouseSquareY == rightUpY){
  1278. legalMove = true;
  1279. }
  1280. if(rightDownLegal && mouseSquareX == rightDownY && mouseSquareY == rightDownY){
  1281. legalMove = true;
  1282. }
  1283.  
  1284. if(legalMove){
  1285. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  1286. pickedPiece = null;
  1287. piecePicked = false;
  1288. piecesOnBoard.set(mouseSquareX,mouseSquareY,whiteQueensKnight);
  1289.  
  1290. prevSqX = Math.floor(prevX / squareDim);
  1291. prevSqY = Math.floor(prevY / squareDim);
  1292.  
  1293. piecesOnBoard.set(prevSqX,prevSqY, null);
  1294.  
  1295. whiteToMove = false;
  1296. toMoveSquare.setColor(Color.black);
  1297. legalMove = false;
  1298. } else {
  1299. pickedPiece.setPosition(prevX,prevY);
  1300. pickedPiece = null;
  1301. piecePicked = false;
  1302. }
  1303. } else {
  1304. //king's knight
  1305. var upLeftLegal = false;
  1306. var upRightLegal = false;
  1307. var leftUpLegal = false;
  1308. var leftDownLegal = false;
  1309. var downLeftLegal = false;
  1310. var downRightLegal = false;
  1311. var rightUpLegal = false;
  1312. var rightDownLegal = false;
  1313.  
  1314. var upLeftX = prevSqX - 1;
  1315. var upLeftY = prevSqY - 2;
  1316. var upRightX = prevSqX + 1;
  1317. var upRightY = prevSqY - 2;
  1318. var leftUpX = prevSqX - 2;
  1319. var leftUpY = prevSqY - 1;
  1320. var leftDownX = prevSqX - 2;
  1321. var leftDownY = prevSqY + 1;
  1322. var downLeftX = prevSqX - 1;
  1323. var downLeftY = prevSqY + 2;
  1324. var downRightX = prevSqX + 1;
  1325. var downRightY = prevSqY + 2;
  1326. var rightUpX = prevSqX + 2;
  1327. var rightUpY = prevSqY - 1;
  1328. var rightDownX = prevSqX + 2;
  1329. var rightDownY = prevSqY + 1;
  1330.  
  1331. prevSqX = Math.floor(prevX / squareDim);
  1332. prevSqY = Math.floor(prevY / squareDim);
  1333.  
  1334. if(upLeftY >= 0){
  1335. if(upLeftX >= 0){
  1336. upLeftLegal = true;
  1337. }
  1338. if(upRightX <= 7){
  1339. upRightLegal = true;
  1340. }
  1341. }
  1342. if(leftUpX >= 0){
  1343. if(leftUpY >= 0){
  1344. leftUpLegal = true;
  1345. }
  1346. if(leftDownY <= 7){
  1347. leftDownLegal = true;
  1348. }
  1349. }
  1350. if(downLeftY <= 7){
  1351. if(downLeftX >= 0){
  1352. downLeftLegal = true;
  1353. }
  1354. if(downRightX <= 7){
  1355. downRightLegal = true;
  1356. }
  1357. }
  1358. if(rightUpX <= 7){
  1359. if(rightUpY >= 0){
  1360. rightUpLegal = true;
  1361. }
  1362. if(rightDownY <= 7){
  1363. rightDowNLegal = true;
  1364. }
  1365. }
  1366.  
  1367. if(upLeftLegal && mouseSquareX == upLeftX && mouseSquareY == upLeftY){
  1368. legalMove = true;
  1369. }
  1370. if(upRightLegal && mouseSquareX == upRightX && mouseSquareY == upRightY){
  1371. legalMove = true;
  1372. }
  1373. if(leftUpLegal && mouseSquareX == leftUpX && mouseSquareY == leftUpY){
  1374. legalMove = true;
  1375. }
  1376. if(leftDownLegal && mouseSquareX == leftDownX && mouseSquareY == leftDownY){
  1377. legalMove = true;
  1378. }
  1379. if(downLeftLegal && mouseSquareX == downLeftX && mouseSquareY == downLeftY){
  1380. legalMove = true;
  1381. }
  1382. if(downRightLegal && mouseSquareX == downRightX && mouseSquareY == downRightY){
  1383. legalMove = true;
  1384. }
  1385. if(rightUpLegal && mouseSquareX == rightUpX && mouseSquareY == rightUpY){
  1386. legalMove = true;
  1387. }
  1388. if(rightDownLegal && mouseSquareX == rightDownY && mouseSquareY == rightDownY){
  1389. legalMove = true;
  1390. }
  1391.  
  1392. if(legalMove){
  1393. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  1394. pickedPiece = null;
  1395. piecePicked = false;
  1396. piecesOnBoard.set(mouseSquareX,mouseSquareY,whiteKingsKnight);
  1397.  
  1398. prevSqX = Math.floor(prevX / squareDim);
  1399. prevSqY = Math.floor(prevY / squareDim);
  1400.  
  1401. piecesOnBoard.set(prevSqX,prevSqY, null);
  1402.  
  1403. whiteToMove = false;
  1404. toMoveSquare.setColor(Color.black);
  1405. legalMove = false;
  1406. } else {
  1407. pickedPiece.setPosition(prevX,prevY);
  1408. pickedPiece = null;
  1409. piecePicked = false;
  1410. }
  1411. }
  1412. }
  1413.  
  1414. function moveBlackKnight(){
  1415. legalMove = false;
  1416.  
  1417. if(pickedPiece == blackQueensKnight){
  1418. //queen's knight
  1419. var upLeftLegal = false;
  1420. var upRightLegal = false;
  1421. var leftUpLegal = false;
  1422. var leftDownLegal = false;
  1423. var downLeftLegal = false;
  1424. var downRightLegal = false;
  1425. var rightUpLegal = false;
  1426. var rightDownLegal = false;
  1427.  
  1428. var upLeftX = prevSqX - 1;
  1429. var upLeftY = prevSqY - 2;
  1430. var upRightX = prevSqX + 1;
  1431. var upRightY = prevSqY - 2;
  1432. var leftUpX = prevSqX - 2;
  1433. var leftUpY = prevSqY - 1;
  1434. var leftDownX = prevSqX - 2;
  1435. var leftDownY = prevSqY + 1;
  1436. var downLeftX = prevSqX - 1;
  1437. var downLeftY = prevSqY + 2;
  1438. var downRightX = prevSqX + 1;
  1439. var downRightY = prevSqY + 2;
  1440. var rightUpX = prevSqX + 2;
  1441. var rightUpY = prevSqY - 1;
  1442. var rightDownX = prevSqX + 2;
  1443. var rightDownY = prevSqY + 1;
  1444.  
  1445. prevSqX = Math.floor(prevX / squareDim);
  1446. prevSqY = Math.floor(prevY / squareDim);
  1447.  
  1448. if(upLeftY >= 0){
  1449. if(upLeftX >= 0){
  1450. upLeftLegal = true;
  1451. }
  1452. if(upRightX <= 7){
  1453. upRightLegal = true;
  1454. }
  1455. }
  1456. if(leftUpX >= 0){
  1457. if(leftUpY >= 0){
  1458. leftUpLegal = true;
  1459. }
  1460. if(leftDownY <= 7){
  1461. leftDownLegal = true;
  1462. }
  1463. }
  1464. if(downLeftY <= 7){
  1465. if(downLeftX >= 0){
  1466. downLeftLegal = true;
  1467. }
  1468. if(downRightX <= 7){
  1469. downRightLegal = true;
  1470. }
  1471. }
  1472. if(rightUpX <= 7){
  1473. if(rightUpY >= 0){
  1474. rightUpLegal = true;
  1475. }
  1476. if(rightDownY <= 7){
  1477. rightDownLegal = true;
  1478. }
  1479. }
  1480.  
  1481. if(upLeftLegal && mouseSquareX == upLeftX && mouseSquareY == upLeftY){
  1482. legalMove = true;
  1483. }
  1484. if(upRightLegal && mouseSquareX == upRightX && mouseSquareY == upRightY){
  1485. legalMove = true;
  1486. }
  1487. if(leftUpLegal && mouseSquareX == leftUpX && mouseSquareY == leftUpY){
  1488. legalMove = true;
  1489. }
  1490. if(leftDownLegal && mouseSquareX == leftDownX && mouseSquareY == leftDownY){
  1491. legalMove = true;
  1492. }
  1493. if(downLeftLegal && mouseSquareX == downLeftX && mouseSquareY == downLeftY){
  1494. legalMove = true;
  1495. }
  1496. if(downRightLegal && mouseSquareX == downRightX && mouseSquareY == downRightY){
  1497. legalMove = true;
  1498. }
  1499. if(rightUpLegal && mouseSquareX == rightUpX && mouseSquareY == rightUpY){
  1500. legalMove = true;
  1501. }
  1502. if(rightDownLegal && mouseSquareX == rightDownY && mouseSquareY == rightDownY){
  1503. legalMove = true;
  1504. }
  1505.  
  1506. if(legalMove){
  1507. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  1508. pickedPiece = null;
  1509. piecePicked = false;
  1510. piecesOnBoard.set(mouseSquareX,mouseSquareY,blackQueensKnight);
  1511.  
  1512. prevSqX = Math.floor(prevX / squareDim);
  1513. prevSqY = Math.floor(prevY / squareDim);
  1514.  
  1515. piecesOnBoard.set(prevSqX,prevSqY, null);
  1516.  
  1517. whiteToMove = true;
  1518. toMoveSquare.setColor(Color.white);
  1519. legalMove = false;
  1520. } else {
  1521. pickedPiece.setPosition(prevX,prevY);
  1522. pickedPiece = null;
  1523. piecePicked = false;
  1524. }
  1525. } else {
  1526. //king's knight
  1527. var upLeftLegal = false;
  1528. var upRightLegal = false;
  1529. var leftUpLegal = false;
  1530. var leftDownLegal = false;
  1531. var downLeftLegal = false;
  1532. var downRightLegal = false;
  1533. var rightUpLegal = false;
  1534. var rightDownLegal = false;
  1535.  
  1536. var upLeftX = prevSqX - 1;
  1537. var upLeftY = prevSqY - 2;
  1538. var upRightX = prevSqX + 1;
  1539. var upRightY = prevSqY - 2;
  1540. var leftUpX = prevSqX - 2;
  1541. var leftUpY = prevSqY - 1;
  1542. var leftDownX = prevSqX - 2;
  1543. var leftDownY = prevSqY + 1;
  1544. var downLeftX = prevSqX - 1;
  1545. var downLeftY = prevSqY + 2;
  1546. var downRightX = prevSqX + 1;
  1547. var downRightY = prevSqY + 2;
  1548. var rightUpX = prevSqX + 2;
  1549. var rightUpY = prevSqY - 1;
  1550. var rightDownX = prevSqX + 2;
  1551. var rightDownY = prevSqY + 1;
  1552.  
  1553. prevSqX = Math.floor(prevX / squareDim);
  1554. prevSqY = Math.floor(prevY / squareDim);
  1555.  
  1556. if(upLeftY >= 0){
  1557. if(upLeftX >= 0){
  1558. upLeftLegal = true;
  1559. }
  1560. if(upRightX <= 7){
  1561. upRightLegal = true;
  1562. }
  1563. }
  1564. if(leftUpX >= 0){
  1565. if(leftUpY >= 0){
  1566. leftUpLegal = true;
  1567. }
  1568. if(leftDownY <= 7){
  1569. leftDownLegal = true;
  1570. }
  1571. }
  1572. if(downLeftY <= 7){
  1573. if(downLeftX >= 0){
  1574. downLeftLegal = true;
  1575. }
  1576. if(downRightX <= 7){
  1577. downRightLegal = true;
  1578. }
  1579. }
  1580. if(rightUpX <= 7){
  1581. if(rightUpY >= 0){
  1582. rightUpLegal = true;
  1583. }
  1584. if(rightDownY <= 7){
  1585. rightDowNLegal = true;
  1586. }
  1587. }
  1588.  
  1589. if(upLeftLegal && mouseSquareX == upLeftX && mouseSquareY == upLeftY){
  1590. legalMove = true;
  1591. }
  1592. if(upRightLegal && mouseSquareX == upRightX && mouseSquareY == upRightY){
  1593. legalMove = true;
  1594. }
  1595. if(leftUpLegal && mouseSquareX == leftUpX && mouseSquareY == leftUpY){
  1596. legalMove = true;
  1597. }
  1598. if(leftDownLegal && mouseSquareX == leftDownX && mouseSquareY == leftDownY){
  1599. legalMove = true;
  1600. }
  1601. if(downLeftLegal && mouseSquareX == downLeftX && mouseSquareY == downLeftY){
  1602. legalMove = true;
  1603. }
  1604. if(downRightLegal && mouseSquareX == downRightX && mouseSquareY == downRightY){
  1605. legalMove = true;
  1606. }
  1607. if(rightUpLegal && mouseSquareX == rightUpX && mouseSquareY == rightUpY){
  1608. legalMove = true;
  1609. }
  1610. if(rightDownLegal && mouseSquareX == rightDownY && mouseSquareY == rightDownY){
  1611. legalMove = true;
  1612. }
  1613.  
  1614. if(legalMove){
  1615. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  1616. pickedPiece = null;
  1617. piecePicked = false;
  1618. piecesOnBoard.set(mouseSquareX,mouseSquareY,blackKingsKnight);
  1619.  
  1620. prevSqX = Math.floor(prevX / squareDim);
  1621. prevSqY = Math.floor(prevY / squareDim);
  1622.  
  1623. piecesOnBoard.set(prevSqX,prevSqY, null);
  1624.  
  1625. whiteToMove = true;
  1626. toMoveSquare.setColor(Color.white);
  1627. legalMove = false;
  1628. } else {
  1629. pickedPiece.setPosition(prevX,prevY);
  1630. pickedPiece = null;
  1631. piecePicked = false;
  1632. }
  1633. }
  1634. }
  1635.  
  1636. function moveWhiteRook(){
  1637. legalMove = false;
  1638.  
  1639. var leftOneX = 0;
  1640. var leftOneY = 0;
  1641. var leftTwoX = 0;
  1642. var leftTwoY = 0;
  1643. var leftThreeX = 0;
  1644. var leftThreeY = 0;
  1645. var leftFourX = 0;
  1646. var leftFourY = 0;
  1647. var leftFiveX = 0;
  1648. var leftFiveY = 0;
  1649. var leftSixX = 0;
  1650. var leftSixY = 0;
  1651. var leftSevenX = 0;
  1652. var leftSevenY = 0;
  1653.  
  1654. var rightOneX = 0;
  1655. var rightOneY = 0;
  1656. var rightTwoX = 0;
  1657. var rightTwoY = 0;
  1658. var rightThreeX = 0;
  1659. var rightThreeY = 0;
  1660. var rightFourX = 0;
  1661. var rightFourY = 0;
  1662. var rightFiveX = 0;
  1663. var rightFiveY = 0;
  1664. var rightSixX = 0;
  1665. var rightSixY = 0;
  1666. var rightSevenX = 0;
  1667. var rightSevenY = 0;
  1668.  
  1669. var upOneX = 0;
  1670. var upOneY = 0;
  1671. var upTwoX = 0;
  1672. var upTwoY = 0;
  1673. var upThreeX = 0;
  1674. var upThreeY = 0;
  1675. var upFourX = 0;
  1676. var upFourY = 0;
  1677. var upFiveX = 0;
  1678. var upFiveY = 0;
  1679. var upSixX = 0;
  1680. var upSixY = 0;
  1681. var upSevenX = 0;
  1682. var upSevenY = 0;
  1683.  
  1684. var downOneX = 0;
  1685. var downOneY = 0;
  1686. var downTwoX = 0;
  1687. var downTwoY = 0;
  1688. var downThreeX = 0;
  1689. var downThreeY = 0;
  1690. var downFourX = 0;
  1691. var downFourY = 0;
  1692. var downFiveX = 0;
  1693. var downFiveY = 0;
  1694. var downSixX = 0;
  1695. var downSixY = 0;
  1696. var downSevenX = 0;
  1697. var downSevenY = 0;
  1698.  
  1699. var leftOneLegal = false;
  1700. var leftTwoLegal = false;
  1701. var leftThreeLegal = false;
  1702. var leftFourLegal = false;
  1703. var leftFiveLegal = false;
  1704. var leftSixLegal = false;
  1705. var leftSevenLegal = false;
  1706.  
  1707. var rightOneLegal = false;
  1708. var rightTwoLegal = false;
  1709. var rightThreeLegal = false;
  1710. var rightFourLegal = false;
  1711. var rightFiveLegal = false;
  1712. var rightSixLegal = false;
  1713. var rightSevenLegal = false;
  1714.  
  1715. var upOneLegal = false;
  1716. var upTwoLegal = false;
  1717. var upThreeLegal = false;
  1718. var upFourLegal = false;
  1719. var upFiveLegal = false;
  1720. var upSixLegal = false;
  1721. var upSevenLegal = false;
  1722.  
  1723. var downOneLegal = false;
  1724. var downTwoLegal = false;
  1725. var downThreeLegal = false;
  1726. var downFourLegal = false;
  1727. var downFiveLegal = false;
  1728. var downSixLegal = false;
  1729. var downSevenLegal = false;
  1730.  
  1731. prevSqX = Math.floor(prevX / squareDim);
  1732. prevSqY = Math.floor(prevY / squareDim);
  1733.  
  1734. if(pickedPiece == whiteQueensRook){
  1735. if(prevSqX - 1 >= 0){
  1736. leftOneX = prevSqX - 1;
  1737. leftOneY = prevSqY;
  1738. leftOneLegal = true;
  1739. if(prevSqX - 2 >= 0){
  1740. leftTwoX = prevSqX - 2;
  1741. leftTwoY = prevSqY;
  1742. leftTwoLegal = true;
  1743. if(prevSqX - 3 >= 0){
  1744. leftThreeX = prevSqX - 3;
  1745. leftThreeY = prevSqY;
  1746. leftThreeLegal = true;
  1747. if(prevSqX - 4 >= 0){
  1748. leftFourX = prevSqX - 4;
  1749. leftFourY = prevSqY;
  1750. leftFourLegal = true;
  1751. if(prevSqX - 5 >= 0){
  1752. leftFiveX = prevSqX - 5;
  1753. leftFiveY = prevSqY;
  1754. leftFiveLegal = true;
  1755. if(prevSqX - 6 >= 0){
  1756. leftSixX = prevSqX - 6;
  1757. leftSixY = prevSqY;
  1758. leftSixLegal = true;
  1759. if(prevSqX - 7 == 0){
  1760. leftSevenX = prevSqX - 7;
  1761. leftSevenY = prevSqY;
  1762. leftSevenLegal = true;
  1763. }
  1764. }
  1765. }
  1766. }
  1767. }
  1768. }
  1769. }
  1770. if(prevSqX + 1 <= 7){
  1771. rightOneX = prevSqX + 1;
  1772. rightOneY = prevSqY;
  1773. rightOneLegal = true;
  1774. if(prevSqX + 2 <= 7){
  1775. rightTwoX = prevSqX + 2;
  1776. rightTwoY = prevSqY;
  1777. rightTwoLegal = true;
  1778. if(prevSqX + 3 <= 7){
  1779. rightThreeX = prevSqX + 3;
  1780. rightThreeY = prevSqY;
  1781. rightThreeLegal = true;
  1782. if(prevSqX + 4 <= 7){
  1783. rightFourX = prevSqX + 4;
  1784. rightFourY = prevSqY;
  1785. rightFourLegal = true;
  1786. if(prevSqX + 5 <= 7){
  1787. rightFiveX = prevSqX + 5;
  1788. rightFiveY = prevSqY;
  1789. rightFiveLegal = true;
  1790. if(prevSqX + 6 <= 7){
  1791. rightSixX = prevSqX + 6;
  1792. rightSixY = prevSqY;
  1793. rightSixLegal = true;
  1794. if(prevSqX + 7 <= 7){
  1795. rightSevenX = prevSqX + 7;
  1796. rightSevenY = prevSqY;
  1797. rightSevenLegal = true;
  1798. }
  1799. }
  1800. }
  1801. }
  1802. }
  1803. }
  1804. }
  1805. if(prevSqY - 1 >= 0){
  1806. upOneX = prevSqX;
  1807. upOneY = prevSqY - 1;
  1808. upOneLegal = true;
  1809. if(prevSqY - 2 >= 0){
  1810. upTwoX = prevSqX;
  1811. upTwoY = prevSqY - 2;
  1812. upTwoLegal = true;
  1813. if(prevSqY - 3 >= 0){
  1814. upThreeX = prevSqX;
  1815. upThreeY = prevSqY - 3;
  1816. upThreeLegal = true;
  1817. if(prevSqY - 4 >= 0){
  1818. upFourX = prevSqX;
  1819. upFourY = prevSqY - 4;
  1820. upFourLegal = true;
  1821. if(prevSqY - 5 >= 0){
  1822. upFiveX = prevSqX;
  1823. upFiveY = prevSqY - 5;
  1824. upFiveLegal = true;
  1825. if(prevSqY - 6 >= 0){
  1826. upSixX = prevSqX;
  1827. upSixY = prevSqY - 6;
  1828. upSixLegal = true;
  1829. if(prevSqY - 7 >= 0){
  1830. upSevenX = prevSqX;
  1831. upSevenY = prevSqY - 7;
  1832. upSevenLegal = true;
  1833. }
  1834. }
  1835. }
  1836. }
  1837. }
  1838. }
  1839. }
  1840. if(prevSqY + 1 <= 7){
  1841. downOneX = prevSqX;
  1842. downOneY = prevSqY + 1;
  1843. downOneLegal = true;
  1844. if(prevSqY + 2 <= 7){
  1845. downTwoX = prevSqX;
  1846. downTwoY = prevSqY + 2;
  1847. downTwoLegal = true;
  1848. if(prevSqY + 3 <= 7){
  1849. downThreeX = prevSqX;
  1850. downThreeY = prevSqY + 3;
  1851. downThreeLegal = true;
  1852. if(prevSqY + 4 <= 7){
  1853. downFourX = prevSqX;
  1854. downFourY = prevSqY + 4;
  1855. downFourLegal = true;
  1856. if(prevSqY + 5 <= 7){
  1857. downFiveX = prevSqX;
  1858. downFiveY = prevSqY + 5;
  1859. downFiveLegal = true;
  1860. if(prevSqY + 6 <= 7){
  1861. downSixX = prevSqX;
  1862. downSixY = prevSqY + 6;
  1863. downSixLegal = true;
  1864. if(prevSqY + 7 <= 7){
  1865. downSevenX = prevSqX;
  1866. downSevenY = prevSqY + 7;
  1867. downSevenLegal = true;
  1868. }
  1869. }
  1870. }
  1871. }
  1872. }
  1873. }
  1874. }
  1875.  
  1876. if(leftOneLegal){
  1877. if(mouseSquareX == leftOneX && mouseSquareY == leftOneY){
  1878. legalMove = true;
  1879. }
  1880. if(leftTwoLegal){
  1881. if(mouseSquareX == leftTwoX && mouseSquareY == leftTwoY){
  1882. legalMove = true;
  1883. }
  1884. if(leftThreeLegal){
  1885. if(mouseSquareX == leftThreeX && mouseSquareY == leftThreeY){
  1886. legalMove = true;
  1887. }
  1888. if(leftFourLegal){
  1889. if(mouseSquareX == leftFourX && mouseSquareY == leftFourY){
  1890. legalMove = true;
  1891. }
  1892. if(leftFiveLegal){
  1893. if(mouseSquareX == leftFiveX && mouseSquareY == leftFiveY){
  1894. legalMove = true;
  1895. }
  1896. if(leftSixLegal){
  1897. if(mouseSquareX == leftSixX && mouseSquareY == leftSixY){
  1898. legalMove = true;
  1899. }
  1900. if(leftSevenLegal){
  1901. if(mouseSquareX == leftSevenX && mouseSquareY == leftSevenY){
  1902. legalMove = true;
  1903. }
  1904. }
  1905. }
  1906. }
  1907. }
  1908. }
  1909. }
  1910. }
  1911. if(rightOneLegal){
  1912. if(mouseSquareX == rightOneX && mouseSquareY == rightOneY){
  1913. legalMove = true;
  1914. }
  1915. if(rightTwoLegal){
  1916. if(mouseSquareX == rightTwoX && mouseSquareY == rightTwoY){
  1917. legalMove = true;
  1918. }
  1919. if(rightThreeLegal){
  1920. if(mouseSquareX == rightThreeX && mouseSquareY == rightThreeY){
  1921. legalMove = true;
  1922. }
  1923. if(rightFourLegal){
  1924. if(mouseSquareX == rightFourX && mouseSquareY == rightFourY){
  1925. legalMove = true;
  1926. }
  1927. if(rightFiveLegal){
  1928. if(mouseSquareX == rightFiveX && mouseSquareY == rightFiveY){
  1929. legalMove = true;
  1930. }
  1931. if(rightSixLegal){
  1932. if(mouseSquareX == rightSixX && mouseSquareY == rightSixY){
  1933. legalMove = true;
  1934. }
  1935. if(rightSevenLegal){
  1936. if(mouseSquareX == rightSevenX && mouseSquareY == rightSevenY){
  1937. legalMove = true;
  1938. }
  1939. }
  1940. }
  1941. }
  1942. }
  1943. }
  1944. }
  1945. }
  1946. if(downOneLegal){
  1947. if(mouseSquareX == downOneX && mouseSquareY == downOneY){
  1948. legalMove = true;
  1949. }
  1950. if(downTwoLegal){
  1951. if(mouseSquareX == downTwoX && mouseSquareY == downTwoY){
  1952. legalMove = true;
  1953. }
  1954. if(downThreeLegal){
  1955. if(mouseSquareX == downThreeX && mouseSquareY == downThreeY){
  1956. legalMove = true;
  1957. }
  1958. if(downFourLegal){
  1959. if(mouseSquareX == downFourX && mouseSquareY == downFourY){
  1960. legalMove = true;
  1961. }
  1962. if(downFiveLegal){
  1963. if(mouseSquareX == downFiveX && mouseSquareY == downFiveY){
  1964. legalMove = true;
  1965. }
  1966. if(downSixLegal){
  1967. if(mouseSquareX == downSixX && mouseSquareY == downSixY){
  1968. legalMove = true;
  1969. }
  1970. if(downSevenLegal){
  1971. if(mouseSquareX == downSevenX && mouseSquareY == downSevenY){
  1972. legalMove = true;
  1973. }
  1974. }
  1975. }
  1976. }
  1977. }
  1978. }
  1979. }
  1980. }
  1981. if(upOneLegal){
  1982. if(mouseSquareX == upOneX && mouseSquareY == upOneY){
  1983. legalMove = true;
  1984. }
  1985. if(upTwoLegal){
  1986. if(mouseSquareX == upTwoX && mouseSquareY == upTwoY){
  1987. legalMove = true;
  1988. }
  1989. if(upThreeLegal){
  1990. if(mouseSquareX == upThreeX && mouseSquareY == upThreeY){
  1991. legalMove = true;
  1992. }
  1993. if(upFourLegal){
  1994. if(mouseSquareX == upFourX && mouseSquareY == upFourY){
  1995. legalMove = true;
  1996. }
  1997. if(upFiveLegal){
  1998. if(mouseSquareX == upFiveX && mouseSquareY == upFiveY){
  1999. legalMove = true;
  2000. }
  2001. if(upSixLegal){
  2002. if(mouseSquareX == upSixX && mouseSquareY == upSixY){
  2003. legalMove = true;
  2004. }
  2005. if(upSevenLegal){
  2006. if(mouseSquareX == upSevenX && mouseSquareY == upSevenY){
  2007. legalMove = true;
  2008. }
  2009. }
  2010. }
  2011. }
  2012. }
  2013. }
  2014. }
  2015. }
  2016.  
  2017. if(legalMove){
  2018. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  2019. pickedPiece = null;
  2020. piecePicked = false;
  2021. piecesOnBoard.set(mouseSquareX,mouseSquareY,whiteQueensRook);
  2022.  
  2023. prevSqX = Math.floor(prevX / squareDim);
  2024. prevSqY = Math.floor(prevY / squareDim);
  2025.  
  2026. piecesOnBoard.set(prevSqX,prevSqY, null);
  2027.  
  2028. whiteToMove = false;
  2029. toMoveSquare.setColor(Color.black);
  2030. legalMove = false;
  2031. } else {
  2032. pickedPiece.setPosition(prevX,prevY);
  2033. pickedPiece = null;
  2034. piecePicked = false;
  2035. }
  2036. } else {
  2037. if(prevSqX - 1 >= 0){
  2038. leftOneX = prevSqX - 1;
  2039. leftOneY = prevSqY;
  2040. leftOneLegal = true;
  2041. if(prevSqX - 2 >= 0){
  2042. leftTwoX = prevSqX - 2;
  2043. leftTwoY = prevSqY;
  2044. leftTwoLegal = true;
  2045. if(prevSqX - 3 >= 0){
  2046. leftThreeX = prevSqX - 3;
  2047. leftThreeY = prevSqY;
  2048. leftThreeLegal = true;
  2049. if(prevSqX - 4 >= 0){
  2050. leftFourX = prevSqX - 4;
  2051. leftFourY = prevSqY;
  2052. leftFourLegal = true;
  2053. if(prevSqX - 5 >= 0){
  2054. leftFiveX = prevSqX - 5;
  2055. leftFiveY = prevSqY;
  2056. leftFiveLegal = true;
  2057. if(prevSqX - 6 >= 0){
  2058. leftSixX = prevSqX - 6;
  2059. leftSixY = prevSqY;
  2060. leftSixLegal = true;
  2061. if(prevSqX - 7 == 0){
  2062. leftSevenX = prevSqX - 7;
  2063. leftSevenY = prevSqY;
  2064. leftSevenLegal = true;
  2065. }
  2066. }
  2067. }
  2068. }
  2069. }
  2070. }
  2071. }
  2072. if(prevSqX + 1 <= 7){
  2073. rightOneX = prevSqX + 1;
  2074. rightOneY = prevSqY;
  2075. rightOneLegal = true;
  2076. if(prevSqX + 2 <= 7){
  2077. rightTwoX = prevSqX + 2;
  2078. rightTwoY = prevSqY;
  2079. rightTwoLegal = true;
  2080. if(prevSqX + 3 <= 7){
  2081. rightThreeX = prevSqX + 3;
  2082. rightThreeY = prevSqY;
  2083. rightThreeLegal = true;
  2084. if(prevSqX + 4 <= 7){
  2085. rightFourX = prevSqX + 4;
  2086. rightFourY = prevSqY;
  2087. rightFourLegal = true;
  2088. if(prevSqX + 5 <= 7){
  2089. rightFiveX = prevSqX + 5;
  2090. rightFiveY = prevSqY;
  2091. rightFiveLegal = true;
  2092. if(prevSqX + 6 <= 7){
  2093. rightSixX = prevSqX + 6;
  2094. rightSixY = prevSqY;
  2095. rightSixLegal = true;
  2096. if(prevSqX + 7 <= 7){
  2097. rightSevenX = prevSqX + 7;
  2098. rightSevenY = prevSqY;
  2099. rightSevenLegal = true;
  2100. }
  2101. }
  2102. }
  2103. }
  2104. }
  2105. }
  2106. }
  2107. if(prevSqY - 1 >= 0){
  2108. upOneX = prevSqX;
  2109. upOneY = prevSqY - 1;
  2110. upOneLegal = true;
  2111. if(prevSqY - 2 >= 0){
  2112. upTwoX = prevSqX;
  2113. upTwoY = prevSqY - 2;
  2114. upTwoLegal = true;
  2115. if(prevSqY - 3 >= 0){
  2116. upThreeX = prevSqX;
  2117. upThreeY = prevSqY - 3;
  2118. upThreeLegal = true;
  2119. if(prevSqY - 4 >= 0){
  2120. upFourX = prevSqX;
  2121. upFourY = prevSqY - 4;
  2122. upFourLegal = true;
  2123. if(prevSqY - 5 >= 0){
  2124. upFiveX = prevSqX;
  2125. upFiveY = prevSqY - 5;
  2126. upFiveLegal = true;
  2127. if(prevSqY - 6 >= 0){
  2128. upSixX = prevSqX;
  2129. upSixY = prevSqY - 6;
  2130. upSixLegal = true;
  2131. if(prevSqY - 7 >= 0){
  2132. upSevenX = prevSqX;
  2133. upSevenY = prevSqY - 7;
  2134. upSevenLegal = true;
  2135. }
  2136. }
  2137. }
  2138. }
  2139. }
  2140. }
  2141. }
  2142. if(prevSqY + 1 <= 7){
  2143. downOneX = prevSqX;
  2144. downOneY = prevSqY + 1;
  2145. downOneLegal = true;
  2146. if(prevSqY + 2 <= 7){
  2147. downTwoX = prevSqX;
  2148. downTwoY = prevSqY + 2;
  2149. downTwoLegal = true;
  2150. if(prevSqY + 3 <= 7){
  2151. downThreeX = prevSqX;
  2152. downThreeY = prevSqY + 3;
  2153. downThreeLegal = true;
  2154. if(prevSqY + 4 <= 7){
  2155. downFourX = prevSqX;
  2156. downFourY = prevSqY + 4;
  2157. downFourLegal = true;
  2158. if(prevSqY + 5 <= 7){
  2159. downFiveX = prevSqX;
  2160. downFiveY = prevSqY + 5;
  2161. downFiveLegal = true;
  2162. if(prevSqY + 6 <= 7){
  2163. downSixX = prevSqX;
  2164. downSixY = prevSqY + 6;
  2165. downSixLegal = true;
  2166. if(prevSqY + 7 <= 7){
  2167. downSevenX = prevSqX;
  2168. downSevenY = prevSqY + 7;
  2169. downSevenLegal = true;
  2170. }
  2171. }
  2172. }
  2173. }
  2174. }
  2175. }
  2176. }
  2177.  
  2178. if(leftOneLegal){
  2179. if(mouseSquareX == leftOneX && mouseSquareY == leftOneY){
  2180. legalMove = true;
  2181. }
  2182. if(leftTwoLegal){
  2183. if(mouseSquareX == leftTwoX && mouseSquareY == leftTwoY){
  2184. legalMove = true;
  2185. }
  2186. if(leftThreeLegal){
  2187. if(mouseSquareX == leftThreeX && mouseSquareY == leftThreeY){
  2188. legalMove = true;
  2189. }
  2190. if(leftFourLegal){
  2191. if(mouseSquareX == leftFourX && mouseSquareY == leftFourY){
  2192. legalMove = true;
  2193. }
  2194. if(leftFiveLegal){
  2195. if(mouseSquareX == leftFiveX && mouseSquareY == leftFiveY){
  2196. legalMove = true;
  2197. }
  2198. if(leftSixLegal){
  2199. if(mouseSquareX == leftSixX && mouseSquareY == leftSixY){
  2200. legalMove = true;
  2201. }
  2202. if(leftSevenLegal){
  2203. if(mouseSquareX == leftSevenX && mouseSquareY == leftSevenY){
  2204. legalMove = true;
  2205. }
  2206. }
  2207. }
  2208. }
  2209. }
  2210. }
  2211. }
  2212. }
  2213. if(rightOneLegal){
  2214. if(mouseSquareX == rightOneX && mouseSquareY == rightOneY){
  2215. legalMove = true;
  2216. }
  2217. if(rightTwoLegal){
  2218. if(mouseSquareX == rightTwoX && mouseSquareY == rightTwoY){
  2219. legalMove = true;
  2220. }
  2221. if(rightThreeLegal){
  2222. if(mouseSquareX == rightThreeX && mouseSquareY == rightThreeY){
  2223. legalMove = true;
  2224. }
  2225. if(rightFourLegal){
  2226. if(mouseSquareX == rightFourX && mouseSquareY == rightFourY){
  2227. legalMove = true;
  2228. }
  2229. if(rightFiveLegal){
  2230. if(mouseSquareX == rightFiveX && mouseSquareY == rightFiveY){
  2231. legalMove = true;
  2232. }
  2233. if(rightSixLegal){
  2234. if(mouseSquareX == rightSixX && mouseSquareY == rightSixY){
  2235. legalMove = true;
  2236. }
  2237. if(rightSevenLegal){
  2238. if(mouseSquareX == rightSevenX && mouseSquareY == rightSevenY){
  2239. legalMove = true;
  2240. }
  2241. }
  2242. }
  2243. }
  2244. }
  2245. }
  2246. }
  2247. }
  2248. if(downOneLegal){
  2249. if(mouseSquareX == downOneX && mouseSquareY == downOneY){
  2250. legalMove = true;
  2251. }
  2252. if(downTwoLegal){
  2253. if(mouseSquareX == downTwoX && mouseSquareY == downTwoY){
  2254. legalMove = true;
  2255. }
  2256. if(downThreeLegal){
  2257. if(mouseSquareX == downThreeX && mouseSquareY == downThreeY){
  2258. legalMove = true;
  2259. }
  2260. if(downFourLegal){
  2261. if(mouseSquareX == downFourX && mouseSquareY == downFourY){
  2262. legalMove = true;
  2263. }
  2264. if(downFiveLegal){
  2265. if(mouseSquareX == downFiveX && mouseSquareY == downFiveY){
  2266. legalMove = true;
  2267. }
  2268. if(downSixLegal){
  2269. if(mouseSquareX == downSixX && mouseSquareY == downSixY){
  2270. legalMove = true;
  2271. }
  2272. if(downSevenLegal){
  2273. if(mouseSquareX == downSevenX && mouseSquareY == downSevenY){
  2274. legalMove = true;
  2275. }
  2276. }
  2277. }
  2278. }
  2279. }
  2280. }
  2281. }
  2282. }
  2283. if(upOneLegal){
  2284. if(mouseSquareX == upOneX && mouseSquareY == upOneY){
  2285. legalMove = true;
  2286. }
  2287. if(upTwoLegal){
  2288. if(mouseSquareX == upTwoX && mouseSquareY == upTwoY){
  2289. legalMove = true;
  2290. }
  2291. if(upThreeLegal){
  2292. if(mouseSquareX == upThreeX && mouseSquareY == upThreeY){
  2293. legalMove = true;
  2294. }
  2295. if(upFourLegal){
  2296. if(mouseSquareX == upFourX && mouseSquareY == upFourY){
  2297. legalMove = true;
  2298. }
  2299. if(upFiveLegal){
  2300. if(mouseSquareX == upFiveX && mouseSquareY == upFiveY){
  2301. legalMove = true;
  2302. }
  2303. if(upSixLegal){
  2304. if(mouseSquareX == upSixX && mouseSquareY == upSixY){
  2305. legalMove = true;
  2306. }
  2307. if(upSevenLegal){
  2308. if(mouseSquareX == upSevenX && mouseSquareY == upSevenY){
  2309. legalMove = true;
  2310. }
  2311. }
  2312. }
  2313. }
  2314. }
  2315. }
  2316. }
  2317. }
  2318.  
  2319. if(legalMove){
  2320. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  2321. pickedPiece = null;
  2322. piecePicked = false;
  2323. piecesOnBoard.set(mouseSquareX,mouseSquareY,whiteKingsRook);
  2324.  
  2325. prevSqX = Math.floor(prevX / squareDim);
  2326. prevSqY = Math.floor(prevY / squareDim);
  2327.  
  2328. piecesOnBoard.set(prevSqX,prevSqY, null);
  2329.  
  2330. whiteToMove = false;
  2331. toMoveSquare.setColor(Color.black);
  2332. legalMove = false;
  2333. } else {
  2334. pickedPiece.setPosition(prevX,prevY);
  2335. pickedPiece = null;
  2336. piecePicked = false;
  2337. }
  2338. }
  2339. }
  2340.  
  2341. function moveBlackRook(){
  2342. legalMove = false;
  2343.  
  2344. var leftOneX = 0;
  2345. var leftOneY = 0;
  2346. var leftTwoX = 0;
  2347. var leftTwoY = 0;
  2348. var leftThreeX = 0;
  2349. var leftThreeY = 0;
  2350. var leftFourX = 0;
  2351. var leftFourY = 0;
  2352. var leftFiveX = 0;
  2353. var leftFiveY = 0;
  2354. var leftSixX = 0;
  2355. var leftSixY = 0;
  2356. var leftSevenX = 0;
  2357. var leftSevenY = 0;
  2358.  
  2359. var rightOneX = 0;
  2360. var rightOneY = 0;
  2361. var rightTwoX = 0;
  2362. var rightTwoY = 0;
  2363. var rightThreeX = 0;
  2364. var rightThreeY = 0;
  2365. var rightFourX = 0;
  2366. var rightFourY = 0;
  2367. var rightFiveX = 0;
  2368. var rightFiveY = 0;
  2369. var rightSixX = 0;
  2370. var rightSixY = 0;
  2371. var rightSevenX = 0;
  2372. var rightSevenY = 0;
  2373.  
  2374. var upOneX = 0;
  2375. var upOneY = 0;
  2376. var upTwoX = 0;
  2377. var upTwoY = 0;
  2378. var upThreeX = 0;
  2379. var upThreeY = 0;
  2380. var upFourX = 0;
  2381. var upFourY = 0;
  2382. var upFiveX = 0;
  2383. var upFiveY = 0;
  2384. var upSixX = 0;
  2385. var upSixY = 0;
  2386. var upSevenX = 0;
  2387. var upSevenY = 0;
  2388.  
  2389. var downOneX = 0;
  2390. var downOneY = 0;
  2391. var downTwoX = 0;
  2392. var downTwoY = 0;
  2393. var downThreeX = 0;
  2394. var downThreeY = 0;
  2395. var downFourX = 0;
  2396. var downFourY = 0;
  2397. var downFiveX = 0;
  2398. var downFiveY = 0;
  2399. var downSixX = 0;
  2400. var downSixY = 0;
  2401. var downSevenX = 0;
  2402. var downSevenY = 0;
  2403.  
  2404. var leftOneLegal = false;
  2405. var leftTwoLegal = false;
  2406. var leftThreeLegal = false;
  2407. var leftFourLegal = false;
  2408. var leftFiveLegal = false;
  2409. var leftSixLegal = false;
  2410. var leftSevenLegal = false;
  2411.  
  2412. var rightOneLegal = false;
  2413. var rightTwoLegal = false;
  2414. var rightThreeLegal = false;
  2415. var rightFourLegal = false;
  2416. var rightFiveLegal = false;
  2417. var rightSixLegal = false;
  2418. var rightSevenLegal = false;
  2419.  
  2420. var upOneLegal = false;
  2421. var upTwoLegal = false;
  2422. var upThreeLegal = false;
  2423. var upFourLegal = false;
  2424. var upFiveLegal = false;
  2425. var upSixLegal = false;
  2426. var upSevenLegal = false;
  2427.  
  2428. var downOneLegal = false;
  2429. var downTwoLegal = false;
  2430. var downThreeLegal = false;
  2431. var downFourLegal = false;
  2432. var downFiveLegal = false;
  2433. var downSixLegal = false;
  2434. var downSevenLegal = false;
  2435.  
  2436. prevSqX = Math.floor(prevX / squareDim);
  2437. prevSqY = Math.floor(prevY / squareDim);
  2438.  
  2439. if(pickedPiece == blackQueensRook){
  2440. if(prevSqX - 1 >= 0){
  2441. leftOneX = prevSqX - 1;
  2442. leftOneY = prevSqY;
  2443. leftOneLegal = true;
  2444. if(prevSqX - 2 >= 0){
  2445. leftTwoX = prevSqX - 2;
  2446. leftTwoY = prevSqY;
  2447. leftTwoLegal = true;
  2448. if(prevSqX - 3 >= 0){
  2449. leftThreeX = prevSqX - 3;
  2450. leftThreeY = prevSqY;
  2451. leftThreeLegal = true;
  2452. if(prevSqX - 4 >= 0){
  2453. leftFourX = prevSqX - 4;
  2454. leftFourY = prevSqY;
  2455. leftFourLegal = true;
  2456. if(prevSqX - 5 >= 0){
  2457. leftFiveX = prevSqX - 5;
  2458. leftFiveY = prevSqY;
  2459. leftFiveLegal = true;
  2460. if(prevSqX - 6 >= 0){
  2461. leftSixX = prevSqX - 6;
  2462. leftSixY = prevSqY;
  2463. leftSixLegal = true;
  2464. if(prevSqX - 7 == 0){
  2465. leftSevenX = prevSqX - 7;
  2466. leftSevenY = prevSqY;
  2467. leftSevenLegal = true;
  2468. }
  2469. }
  2470. }
  2471. }
  2472. }
  2473. }
  2474. }
  2475. if(prevSqX + 1 <= 7){
  2476. rightOneX = prevSqX + 1;
  2477. rightOneY = prevSqY;
  2478. rightOneLegal = true;
  2479. if(prevSqX + 2 <= 7){
  2480. rightTwoX = prevSqX + 2;
  2481. rightTwoY = prevSqY;
  2482. rightTwoLegal = true;
  2483. if(prevSqX + 3 <= 7){
  2484. rightThreeX = prevSqX + 3;
  2485. rightThreeY = prevSqY;
  2486. rightThreeLegal = true;
  2487. if(prevSqX + 4 <= 7){
  2488. rightFourX = prevSqX + 4;
  2489. rightFourY = prevSqY;
  2490. rightFourLegal = true;
  2491. if(prevSqX + 5 <= 7){
  2492. rightFiveX = prevSqX + 5;
  2493. rightFiveY = prevSqY;
  2494. rightFiveLegal = true;
  2495. if(prevSqX + 6 <= 7){
  2496. rightSixX = prevSqX + 6;
  2497. rightSixY = prevSqY;
  2498. rightSixLegal = true;
  2499. if(prevSqX + 7 <= 7){
  2500. rightSevenX = prevSqX + 7;
  2501. rightSevenY = prevSqY;
  2502. rightSevenLegal = true;
  2503. }
  2504. }
  2505. }
  2506. }
  2507. }
  2508. }
  2509. }
  2510. if(prevSqY - 1 >= 0){
  2511. upOneX = prevSqX;
  2512. upOneY = prevSqY - 1;
  2513. upOneLegal = true;
  2514. if(prevSqY - 2 >= 0){
  2515. upTwoX = prevSqX;
  2516. upTwoY = prevSqY - 2;
  2517. upTwoLegal = true;
  2518. if(prevSqY - 3 >= 0){
  2519. upThreeX = prevSqX;
  2520. upThreeY = prevSqY - 3;
  2521. upThreeLegal = true;
  2522. if(prevSqY - 4 >= 0){
  2523. upFourX = prevSqX;
  2524. upFourY = prevSqY - 4;
  2525. upFourLegal = true;
  2526. if(prevSqY - 5 >= 0){
  2527. upFiveX = prevSqX;
  2528. upFiveY = prevSqY - 5;
  2529. upFiveLegal = true;
  2530. if(prevSqY - 6 >= 0){
  2531. upSixX = prevSqX;
  2532. upSixY = prevSqY - 6;
  2533. upSixLegal = true;
  2534. if(prevSqY - 7 >= 0){
  2535. upSevenX = prevSqX;
  2536. upSevenY = prevSqY - 7;
  2537. upSevenLegal = true;
  2538. }
  2539. }
  2540. }
  2541. }
  2542. }
  2543. }
  2544. }
  2545. if(prevSqY + 1 <= 7){
  2546. downOneX = prevSqX;
  2547. downOneY = prevSqY + 1;
  2548. downOneLegal = true;
  2549. if(prevSqY + 2 <= 7){
  2550. downTwoX = prevSqX;
  2551. downTwoY = prevSqY + 2;
  2552. downTwoLegal = true;
  2553. if(prevSqY + 3 <= 7){
  2554. downThreeX = prevSqX;
  2555. downThreeY = prevSqY + 3;
  2556. downThreeLegal = true;
  2557. if(prevSqY + 4 <= 7){
  2558. downFourX = prevSqX;
  2559. downFourY = prevSqY + 4;
  2560. downFourLegal = true;
  2561. if(prevSqY + 5 <= 7){
  2562. downFiveX = prevSqX;
  2563. downFiveY = prevSqY + 5;
  2564. downFiveLegal = true;
  2565. if(prevSqY + 6 <= 7){
  2566. downSixX = prevSqX;
  2567. downSixY = prevSqY + 6;
  2568. downSixLegal = true;
  2569. if(prevSqY + 7 <= 7){
  2570. downSevenX = prevSqX;
  2571. downSevenY = prevSqY + 7;
  2572. downSevenLegal = true;
  2573. }
  2574. }
  2575. }
  2576. }
  2577. }
  2578. }
  2579. }
  2580.  
  2581. if(leftOneLegal){
  2582. if(mouseSquareX == leftOneX && mouseSquareY == leftOneY){
  2583. legalMove = true;
  2584. }
  2585. if(leftTwoLegal){
  2586. if(mouseSquareX == leftTwoX && mouseSquareY == leftTwoY){
  2587. legalMove = true;
  2588. }
  2589. if(leftThreeLegal){
  2590. if(mouseSquareX == leftThreeX && mouseSquareY == leftThreeY){
  2591. legalMove = true;
  2592. }
  2593. if(leftFourLegal){
  2594. if(mouseSquareX == leftFourX && mouseSquareY == leftFourY){
  2595. legalMove = true;
  2596. }
  2597. if(leftFiveLegal){
  2598. if(mouseSquareX == leftFiveX && mouseSquareY == leftFiveY){
  2599. legalMove = true;
  2600. }
  2601. if(leftSixLegal){
  2602. if(mouseSquareX == leftSixX && mouseSquareY == leftSixY){
  2603. legalMove = true;
  2604. }
  2605. if(leftSevenLegal){
  2606. if(mouseSquareX == leftSevenX && mouseSquareY == leftSevenY){
  2607. legalMove = true;
  2608. }
  2609. }
  2610. }
  2611. }
  2612. }
  2613. }
  2614. }
  2615. }
  2616. if(rightOneLegal){
  2617. if(mouseSquareX == rightOneX && mouseSquareY == rightOneY){
  2618. legalMove = true;
  2619. }
  2620. if(rightTwoLegal){
  2621. if(mouseSquareX == rightTwoX && mouseSquareY == rightTwoY){
  2622. legalMove = true;
  2623. }
  2624. if(rightThreeLegal){
  2625. if(mouseSquareX == rightThreeX && mouseSquareY == rightThreeY){
  2626. legalMove = true;
  2627. }
  2628. if(rightFourLegal){
  2629. if(mouseSquareX == rightFourX && mouseSquareY == rightFourY){
  2630. legalMove = true;
  2631. }
  2632. if(rightFiveLegal){
  2633. if(mouseSquareX == rightFiveX && mouseSquareY == rightFiveY){
  2634. legalMove = true;
  2635. }
  2636. if(rightSixLegal){
  2637. if(mouseSquareX == rightSixX && mouseSquareY == rightSixY){
  2638. legalMove = true;
  2639. }
  2640. if(rightSevenLegal){
  2641. if(mouseSquareX == rightSevenX && mouseSquareY == rightSevenY){
  2642. legalMove = true;
  2643. }
  2644. }
  2645. }
  2646. }
  2647. }
  2648. }
  2649. }
  2650. }
  2651. if(downOneLegal){
  2652. if(mouseSquareX == downOneX && mouseSquareY == downOneY){
  2653. legalMove = true;
  2654. }
  2655. if(downTwoLegal){
  2656. if(mouseSquareX == downTwoX && mouseSquareY == downTwoY){
  2657. legalMove = true;
  2658. }
  2659. if(downThreeLegal){
  2660. if(mouseSquareX == downThreeX && mouseSquareY == downThreeY){
  2661. legalMove = true;
  2662. }
  2663. if(downFourLegal){
  2664. if(mouseSquareX == downFourX && mouseSquareY == downFourY){
  2665. legalMove = true;
  2666. }
  2667. if(downFiveLegal){
  2668. if(mouseSquareX == downFiveX && mouseSquareY == downFiveY){
  2669. legalMove = true;
  2670. }
  2671. if(downSixLegal){
  2672. if(mouseSquareX == downSixX && mouseSquareY == downSixY){
  2673. legalMove = true;
  2674. }
  2675. if(downSevenLegal){
  2676. if(mouseSquareX == downSevenX && mouseSquareY == downSevenY){
  2677. legalMove = true;
  2678. }
  2679. }
  2680. }
  2681. }
  2682. }
  2683. }
  2684. }
  2685. }
  2686. if(upOneLegal){
  2687. if(mouseSquareX == upOneX && mouseSquareY == upOneY){
  2688. legalMove = true;
  2689. }
  2690. if(upTwoLegal){
  2691. if(mouseSquareX == upTwoX && mouseSquareY == upTwoY){
  2692. legalMove = true;
  2693. }
  2694. if(upThreeLegal){
  2695. if(mouseSquareX == upThreeX && mouseSquareY == upThreeY){
  2696. legalMove = true;
  2697. }
  2698. if(upFourLegal){
  2699. if(mouseSquareX == upFourX && mouseSquareY == upFourY){
  2700. legalMove = true;
  2701. }
  2702. if(upFiveLegal){
  2703. if(mouseSquareX == upFiveX && mouseSquareY == upFiveY){
  2704. legalMove = true;
  2705. }
  2706. if(upSixLegal){
  2707. if(mouseSquareX == upSixX && mouseSquareY == upSixY){
  2708. legalMove = true;
  2709. }
  2710. if(upSevenLegal){
  2711. if(mouseSquareX == upSevenX && mouseSquareY == upSevenY){
  2712. legalMove = true;
  2713. }
  2714. }
  2715. }
  2716. }
  2717. }
  2718. }
  2719. }
  2720. }
  2721.  
  2722. if(legalMove){
  2723. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  2724. pickedPiece = null;
  2725. piecePicked = false;
  2726. piecesOnBoard.set(mouseSquareX,mouseSquareY,blackQueensRook);
  2727.  
  2728. prevSqX = Math.floor(prevX / squareDim);
  2729. prevSqY = Math.floor(prevY / squareDim);
  2730.  
  2731. piecesOnBoard.set(prevSqX,prevSqY, null);
  2732.  
  2733. whiteToMove = true;
  2734. toMoveSquare.setColor(Color.white);
  2735. legalMove = false;
  2736. } else {
  2737. pickedPiece.setPosition(prevX,prevY);
  2738. pickedPiece = null;
  2739. piecePicked = false;
  2740. }
  2741. } else {
  2742. if(prevSqX - 1 >= 0){
  2743. leftOneX = prevSqX - 1;
  2744. leftOneY = prevSqY;
  2745. leftOneLegal = true;
  2746. if(prevSqX - 2 >= 0){
  2747. leftTwoX = prevSqX - 2;
  2748. leftTwoY = prevSqY;
  2749. leftTwoLegal = true;
  2750. if(prevSqX - 3 >= 0){
  2751. leftThreeX = prevSqX - 3;
  2752. leftThreeY = prevSqY;
  2753. leftThreeLegal = true;
  2754. if(prevSqX - 4 >= 0){
  2755. leftFourX = prevSqX - 4;
  2756. leftFourY = prevSqY;
  2757. leftFourLegal = true;
  2758. if(prevSqX - 5 >= 0){
  2759. leftFiveX = prevSqX - 5;
  2760. leftFiveY = prevSqY;
  2761. leftFiveLegal = true;
  2762. if(prevSqX - 6 >= 0){
  2763. leftSixX = prevSqX - 6;
  2764. leftSixY = prevSqY;
  2765. leftSixLegal = true;
  2766. if(prevSqX - 7 == 0){
  2767. leftSevenX = prevSqX - 7;
  2768. leftSevenY = prevSqY;
  2769. leftSevenLegal = true;
  2770. }
  2771. }
  2772. }
  2773. }
  2774. }
  2775. }
  2776. }
  2777. if(prevSqX + 1 <= 7){
  2778. rightOneX = prevSqX + 1;
  2779. rightOneY = prevSqY;
  2780. rightOneLegal = true;
  2781. if(prevSqX + 2 <= 7){
  2782. rightTwoX = prevSqX + 2;
  2783. rightTwoY = prevSqY;
  2784. rightTwoLegal = true;
  2785. if(prevSqX + 3 <= 7){
  2786. rightThreeX = prevSqX + 3;
  2787. rightThreeY = prevSqY;
  2788. rightThreeLegal = true;
  2789. if(prevSqX + 4 <= 7){
  2790. rightFourX = prevSqX + 4;
  2791. rightFourY = prevSqY;
  2792. rightFourLegal = true;
  2793. if(prevSqX + 5 <= 7){
  2794. rightFiveX = prevSqX + 5;
  2795. rightFiveY = prevSqY;
  2796. rightFiveLegal = true;
  2797. if(prevSqX + 6 <= 7){
  2798. rightSixX = prevSqX + 6;
  2799. rightSixY = prevSqY;
  2800. rightSixLegal = true;
  2801. if(prevSqX + 7 <= 7){
  2802. rightSevenX = prevSqX + 7;
  2803. rightSevenY = prevSqY;
  2804. rightSevenLegal = true;
  2805. }
  2806. }
  2807. }
  2808. }
  2809. }
  2810. }
  2811. }
  2812. if(prevSqY - 1 >= 0){
  2813. upOneX = prevSqX;
  2814. upOneY = prevSqY - 1;
  2815. upOneLegal = true;
  2816. if(prevSqY - 2 >= 0){
  2817. upTwoX = prevSqX;
  2818. upTwoY = prevSqY - 2;
  2819. upTwoLegal = true;
  2820. if(prevSqY - 3 >= 0){
  2821. upThreeX = prevSqX;
  2822. upThreeY = prevSqY - 3;
  2823. upThreeLegal = true;
  2824. if(prevSqY - 4 >= 0){
  2825. upFourX = prevSqX;
  2826. upFourY = prevSqY - 4;
  2827. upFourLegal = true;
  2828. if(prevSqY - 5 >= 0){
  2829. upFiveX = prevSqX;
  2830. upFiveY = prevSqY - 5;
  2831. upFiveLegal = true;
  2832. if(prevSqY - 6 >= 0){
  2833. upSixX = prevSqX;
  2834. upSixY = prevSqY - 6;
  2835. upSixLegal = true;
  2836. if(prevSqY - 7 >= 0){
  2837. upSevenX = prevSqX;
  2838. upSevenY = prevSqY - 7;
  2839. upSevenLegal = true;
  2840. }
  2841. }
  2842. }
  2843. }
  2844. }
  2845. }
  2846. }
  2847. if(prevSqY + 1 <= 7){
  2848. downOneX = prevSqX;
  2849. downOneY = prevSqY + 1;
  2850. downOneLegal = true;
  2851. if(prevSqY + 2 <= 7){
  2852. downTwoX = prevSqX;
  2853. downTwoY = prevSqY + 2;
  2854. downTwoLegal = true;
  2855. if(prevSqY + 3 <= 7){
  2856. downThreeX = prevSqX;
  2857. downThreeY = prevSqY + 3;
  2858. downThreeLegal = true;
  2859. if(prevSqY + 4 <= 7){
  2860. downFourX = prevSqX;
  2861. downFourY = prevSqY + 4;
  2862. downFourLegal = true;
  2863. if(prevSqY + 5 <= 7){
  2864. downFiveX = prevSqX;
  2865. downFiveY = prevSqY + 5;
  2866. downFiveLegal = true;
  2867. if(prevSqY + 6 <= 7){
  2868. downSixX = prevSqX;
  2869. downSixY = prevSqY + 6;
  2870. downSixLegal = true;
  2871. if(prevSqY + 7 <= 7){
  2872. downSevenX = prevSqX;
  2873. downSevenY = prevSqY + 7;
  2874. downSevenLegal = true;
  2875. }
  2876. }
  2877. }
  2878. }
  2879. }
  2880. }
  2881. }
  2882.  
  2883. if(leftOneLegal){
  2884. if(mouseSquareX == leftOneX && mouseSquareY == leftOneY){
  2885. legalMove = true;
  2886. }
  2887. if(leftTwoLegal){
  2888. if(mouseSquareX == leftTwoX && mouseSquareY == leftTwoY){
  2889. legalMove = true;
  2890. }
  2891. if(leftThreeLegal){
  2892. if(mouseSquareX == leftThreeX && mouseSquareY == leftThreeY){
  2893. legalMove = true;
  2894. }
  2895. if(leftFourLegal){
  2896. if(mouseSquareX == leftFourX && mouseSquareY == leftFourY){
  2897. legalMove = true;
  2898. }
  2899. if(leftFiveLegal){
  2900. if(mouseSquareX == leftFiveX && mouseSquareY == leftFiveY){
  2901. legalMove = true;
  2902. }
  2903. if(leftSixLegal){
  2904. if(mouseSquareX == leftSixX && mouseSquareY == leftSixY){
  2905. legalMove = true;
  2906. }
  2907. if(leftSevenLegal){
  2908. if(mouseSquareX == leftSevenX && mouseSquareY == leftSevenY){
  2909. legalMove = true;
  2910. }
  2911. }
  2912. }
  2913. }
  2914. }
  2915. }
  2916. }
  2917. }
  2918. if(rightOneLegal){
  2919. if(mouseSquareX == rightOneX && mouseSquareY == rightOneY){
  2920. legalMove = true;
  2921. }
  2922. if(rightTwoLegal){
  2923. if(mouseSquareX == rightTwoX && mouseSquareY == rightTwoY){
  2924. legalMove = true;
  2925. }
  2926. if(rightThreeLegal){
  2927. if(mouseSquareX == rightThreeX && mouseSquareY == rightThreeY){
  2928. legalMove = true;
  2929. }
  2930. if(rightFourLegal){
  2931. if(mouseSquareX == rightFourX && mouseSquareY == rightFourY){
  2932. legalMove = true;
  2933. }
  2934. if(rightFiveLegal){
  2935. if(mouseSquareX == rightFiveX && mouseSquareY == rightFiveY){
  2936. legalMove = true;
  2937. }
  2938. if(rightSixLegal){
  2939. if(mouseSquareX == rightSixX && mouseSquareY == rightSixY){
  2940. legalMove = true;
  2941. }
  2942. if(rightSevenLegal){
  2943. if(mouseSquareX == rightSevenX && mouseSquareY == rightSevenY){
  2944. legalMove = true;
  2945. }
  2946. }
  2947. }
  2948. }
  2949. }
  2950. }
  2951. }
  2952. }
  2953. if(downOneLegal){
  2954. if(mouseSquareX == downOneX && mouseSquareY == downOneY){
  2955. legalMove = true;
  2956. }
  2957. if(downTwoLegal){
  2958. if(mouseSquareX == downTwoX && mouseSquareY == downTwoY){
  2959. legalMove = true;
  2960. }
  2961. if(downThreeLegal){
  2962. if(mouseSquareX == downThreeX && mouseSquareY == downThreeY){
  2963. legalMove = true;
  2964. }
  2965. if(downFourLegal){
  2966. if(mouseSquareX == downFourX && mouseSquareY == downFourY){
  2967. legalMove = true;
  2968. }
  2969. if(downFiveLegal){
  2970. if(mouseSquareX == downFiveX && mouseSquareY == downFiveY){
  2971. legalMove = true;
  2972. }
  2973. if(downSixLegal){
  2974. if(mouseSquareX == downSixX && mouseSquareY == downSixY){
  2975. legalMove = true;
  2976. }
  2977. if(downSevenLegal){
  2978. if(mouseSquareX == downSevenX && mouseSquareY == downSevenY){
  2979. legalMove = true;
  2980. }
  2981. }
  2982. }
  2983. }
  2984. }
  2985. }
  2986. }
  2987. }
  2988. if(upOneLegal){
  2989. if(mouseSquareX == upOneX && mouseSquareY == upOneY){
  2990. legalMove = true;
  2991. }
  2992. if(upTwoLegal){
  2993. if(mouseSquareX == upTwoX && mouseSquareY == upTwoY){
  2994. legalMove = true;
  2995. }
  2996. if(upThreeLegal){
  2997. if(mouseSquareX == upThreeX && mouseSquareY == upThreeY){
  2998. legalMove = true;
  2999. }
  3000. if(upFourLegal){
  3001. if(mouseSquareX == upFourX && mouseSquareY == upFourY){
  3002. legalMove = true;
  3003. }
  3004. if(upFiveLegal){
  3005. if(mouseSquareX == upFiveX && mouseSquareY == upFiveY){
  3006. legalMove = true;
  3007. }
  3008. if(upSixLegal){
  3009. if(mouseSquareX == upSixX && mouseSquareY == upSixY){
  3010. legalMove = true;
  3011. }
  3012. if(upSevenLegal){
  3013. if(mouseSquareX == upSevenX && mouseSquareY == upSevenY){
  3014. legalMove = true;
  3015. }
  3016. }
  3017. }
  3018. }
  3019. }
  3020. }
  3021. }
  3022. }
  3023.  
  3024. if(legalMove){
  3025. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  3026. pickedPiece = null;
  3027. piecePicked = false;
  3028. piecesOnBoard.set(mouseSquareX,mouseSquareY,blackKingsRook);
  3029.  
  3030. prevSqX = Math.floor(prevX / squareDim);
  3031. prevSqY = Math.floor(prevY / squareDim);
  3032.  
  3033. piecesOnBoard.set(prevSqX,prevSqY, null);
  3034.  
  3035. whiteToMove = true;
  3036. toMoveSquare.setColor(Color.white);
  3037. legalMove = false;
  3038. } else {
  3039. pickedPiece.setPosition(prevX,prevY);
  3040. pickedPiece = null;
  3041. piecePicked = false;
  3042. }
  3043. }
  3044. }
  3045.  
  3046. function moveWhiteBishop(){
  3047. legalMove = false;
  3048.  
  3049. var oneTLX = 0;
  3050. var oneTLY = 0;
  3051. var twoTLX = 0;
  3052. var twoTLY = 0;
  3053. var threeTLX = 0;
  3054. var threeTLY = 0;
  3055. var fourTLX = 0;
  3056. var fourTLY = 0;
  3057. var fiveTLX = 0;
  3058. var fiveTLY = 0;
  3059. var sixTLX = 0;
  3060. var sixTLY = 0;
  3061. var sevenTLX = 0;
  3062. var sevenTLY = 0;
  3063.  
  3064. var oneTRX = 0;
  3065. var oneTRY = 0;
  3066. var twoTRX = 0;
  3067. var twoTRY = 0;
  3068. var threeTRX = 0;
  3069. var threeTRY = 0;
  3070. var fourTRX = 0;
  3071. var fourTRY = 0;
  3072. var fiveTRX = 0;
  3073. var fiveTRY = 0;
  3074. var sixTRX = 0;
  3075. var sixTRY = 0;
  3076. var sevenTRX = 0;
  3077. var sevenTRY = 0;
  3078.  
  3079. var oneBLX = 0;
  3080. var oneBLY = 0;
  3081. var twoBLX = 0;
  3082. var twoBLY = 0;
  3083. var threeBLX = 0;
  3084. var threeBLY = 0;
  3085. var fourBLX = 0;
  3086. var fourBLY = 0;
  3087. var fiveBLX = 0;
  3088. var fiveBLY = 0;
  3089. var sixBLX = 0;
  3090. var sixBLY = 0;
  3091. var sevenBLX = 0;
  3092. var sevenBLY = 0;
  3093.  
  3094. var oneBRX = 0;
  3095. var oneBRY = 0;
  3096. var twoBRX = 0;
  3097. var twoBRY = 0;
  3098. var threeBRX = 0;
  3099. var threeBRY = 0;
  3100. var fourBRX = 0;
  3101. var fourBRY = 0;
  3102. var fiveBRX = 0;
  3103. var fiveBRY = 0;
  3104. var sixBRX = 0;
  3105. var sixBRY = 0;
  3106. var sevenBRX = 0;
  3107. var sevenBRY = 0;
  3108.  
  3109. var oneTLLegal = false;
  3110. var twoTLLegal = false;
  3111. var threeTLLegal = false;
  3112. var fourTLLegal = false;
  3113. var fiveTLLegal = false;
  3114. var sixTLLegal = false;
  3115. var sevenTLLegal = false;
  3116.  
  3117. var oneTRLegal = false;
  3118. var twoTRLegal = false;
  3119. var threeTRLegal = false;
  3120. var fourTRLegal = false;
  3121. var fiveTRLegal = false;
  3122. var sixTRLegal = false;
  3123. var sevenTRLegal = false;
  3124.  
  3125. var oneBLLegal = false;
  3126. var twoBLLegal = false;
  3127. var threeBLLegal = false;
  3128. var fourBLLegal = false;
  3129. var fiveBLLegal = false;
  3130. var sixBLLegal = false;
  3131. var sevenBLLegal = false;
  3132.  
  3133. var oneBRLegal = false;
  3134. var twoBRLegal = false;
  3135. var threeBRLegal = false;
  3136. var fourBRLegal = false;
  3137. var fiveBRLegal = false;
  3138. var sixBRLegal = false;
  3139. var sevenBRLegal = false;
  3140.  
  3141. prevSqX = Math.floor(prevX / squareDim);
  3142. prevSqY = Math.floor(prevY / squareDim);
  3143.  
  3144. if(pickedPiece == whiteQueensBishop){
  3145. if(prevSqX - 1 >= 0 && prevSqY - 1 >= 0){
  3146. oneTLLegal = true;
  3147. oneTLX = prevSqX - 1;
  3148. oneTLY = prevSqY - 1;
  3149. if(prevSqX - 2 >= 0 && prevSqY - 2 >= 0){
  3150. twoTLLegal = true;
  3151. twoTLX = prevSqX - 2;
  3152. twoTLY = prevSqY - 2;
  3153. if(prevSqX - 3 >= 0 && prevSqY - 3 >= 0){
  3154. threeTLLegal = true;
  3155. threeTLX = prevSqX - 3;
  3156. threeTLY = prevSqY - 3;
  3157. if(prevSqX - 4 >= 0 && prevSqY - 4 >= 0){
  3158. fourTLLegal = true;
  3159. fourTLX = prevSqX - 4;
  3160. fourTLY = prevSqY - 4;
  3161. if(prevSqX - 5 >= 0 && prevSqY - 5 >= 0){
  3162. fiveTLLegal = true;
  3163. fiveTLX = prevSqX - 5;
  3164. fiveTLY = prevSqY - 5;
  3165. if(prevSqX - 6 >= 0 && prevSqY - 6 >= 0){
  3166. sixTLLegal = true;
  3167. sixTLX = prevSqX - 6;
  3168. sixTLY = prevSqY - 6;
  3169. if(prevSqX - 7 >= 0 && prevSqY - 7 >= 0){
  3170. sevenTLLegal = true;
  3171. sevenTLX = prevSqX - 7;
  3172. sevenTLY = prevSqY - 7;
  3173. }
  3174. }
  3175. }
  3176. }
  3177. }
  3178. }
  3179. }
  3180. if(prevSqX + 1 >= 0 && prevSqY - 1 >= 0){
  3181. oneTRLegal = true;
  3182. oneTRX = prevSqX + 1;
  3183. oneTRY = prevSqY - 1;
  3184. if(prevSqX + 2 >= 0 && prevSqY - 2 >= 0){
  3185. twoTRLegal = true;
  3186. twoTRX = prevSqX + 2;
  3187. twoTRY = prevSqY - 2;
  3188. if(prevSqX + 3 >= 0 && prevSqY - 3 >= 0){
  3189. threeTRLegal = true;
  3190. threeTRX = prevSqX + 3;
  3191. threeTRY = prevSqY - 3;
  3192. if(prevSqX + 4 >= 0 && prevSqY - 4 >= 0){
  3193. fourTRLegal = true;
  3194. fourTRX = prevSqX + 4;
  3195. fourTRY = prevSqY - 4;
  3196. if(prevSqX + 5 >= 0 && prevSqY - 5 >= 0){
  3197. fiveTRLegal = true;
  3198. fiveTRX = prevSqX + 5;
  3199. fiveTRY = prevSqY - 5;
  3200. if(prevSqX + 6 >= 0 && prevSqY - 6 >= 0){
  3201. sixTRLegal = true;
  3202. sixTRX = prevSqX + 6;
  3203. sixTRY = prevSqY - 6;
  3204. if(prevSqX + 7 >= 0 && prevSqY - 7 >= 0){
  3205. sevenTRLegal = true;
  3206. sevenTRX = prevSqX + 7;
  3207. sevenTRY = prevSqY - 7;
  3208. }
  3209. }
  3210. }
  3211. }
  3212. }
  3213. }
  3214. }
  3215. if(prevSqX - 1 >= 0 && prevSqY + 1 >= 0){
  3216. oneBLLegal = true;
  3217. oneBLX = prevSqX - 1;
  3218. oneBLY = prevSqY + 1;
  3219. if(prevSqX - 2 >= 0 && prevSqY + 2 >= 0){
  3220. twoBLLegal = true;
  3221. twoBLX = prevSqX - 2;
  3222. twoBLY = prevSqY + 2;
  3223. if(prevSqX - 3 >= 0 && prevSqY + 3 >= 0){
  3224. threeBLLegal = true;
  3225. threeBLX = prevSqX - 3;
  3226. threeBLY = prevSqY + 3;
  3227. if(prevSqX - 4 >= 0 && prevSqY + 4 >= 0){
  3228. fourBLLegal = true;
  3229. fourBLX = prevSqX - 4;
  3230. fourBLY = prevSqY + 4;
  3231. if(prevSqX - 5 >= 0 && prevSqY + 5 >= 0){
  3232. fiveBLLegal = true;
  3233. fiveBLX = prevSqX - 5;
  3234. fiveBLY = prevSqY + 5;
  3235. if(prevSqX - 6 >= 0 && prevSqY + 6 >= 0){
  3236. sixBLLegal = true;
  3237. sixBLX = prevSqX - 6;
  3238. sixBLY = prevSqY + 6;
  3239. if(prevSqX - 7 >= 0 && prevSqY + 7 >= 0){
  3240. sevenBLLegal = true;
  3241. sevenBLX = prevSqX - 7;
  3242. sevenBLY = prevSqY + 7;
  3243. }
  3244. }
  3245. }
  3246. }
  3247. }
  3248. }
  3249. }
  3250. if(prevSqX + 1 >= 0 && prevSqY + 1 >= 0){
  3251. oneBRLegal = true;
  3252. oneBRX = prevSqX + 1;
  3253. oneBRY = prevSqY + 1;
  3254. if(prevSqX + 2 >= 0 && prevSqY + 2 >= 0){
  3255. twoBRLegal = true;
  3256. twoBRX = prevSqX + 2;
  3257. twoBRY = prevSqY + 2;
  3258. if(prevSqX + 3 >= 0 && prevSqY + 3 >= 0){
  3259. threeBRLegal = true;
  3260. threeBRX = prevSqX + 3;
  3261. threeBRY = prevSqY + 3;
  3262. if(prevSqX + 4 >= 0 && prevSqY + 4 >= 0){
  3263. fourBRLegal = true;
  3264. fourBRX = prevSqX + 4;
  3265. fourBRY = prevSqY + 4;
  3266. if(prevSqX + 5 >= 0 && prevSqY + 5 >= 0){
  3267. fiveBRLegal = true;
  3268. fiveBRX = prevSqX + 5;
  3269. fiveBRY = prevSqY + 5;
  3270. if(prevSqX + 6 >= 0 && prevSqY + 6 >= 0){
  3271. sixBRLegal = true;
  3272. sixBRX = prevSqX + 6;
  3273. sixBRY = prevSqY + 6;
  3274. if(prevSqX + 7 >= 0 && prevSqY + 7 >= 0){
  3275. sevenBRLegal = true;
  3276. sevenBRX = prevSqX + 7;
  3277. sevenBRY = prevSqY + 7;
  3278. }
  3279. }
  3280. }
  3281. }
  3282. }
  3283. }
  3284. }
  3285.  
  3286. if(oneTLLegal){
  3287. if(mouseSquareX == oneTLX && mouseSquareY == oneTLY){
  3288. legalMove = true;
  3289. }
  3290. if(twoTLLegal){
  3291. if(mouseSquareX == twoTLX && mouseSquareY == twoTLY){
  3292. legalMove = true;
  3293. }
  3294. if(threeTLLegal){
  3295. if(mouseSquareX == threeTLX && mouseSquareY == threeTLY){
  3296. legalMove = true;
  3297. }
  3298. if(fourTLLegal){
  3299. if(mouseSquareX == fourTLX && mouseSquareY == fourTLY){
  3300. legalMove = true;
  3301. }
  3302. if(fiveTLLegal){
  3303. if(mouseSquareX == fiveTLX && mouseSquareY == fiveTLY){
  3304. legalMove = true;
  3305. }
  3306. if(sixTLLegal){
  3307. if(mouseSquareX == sixTLX && mouseSquareY == sixTLY){
  3308. legalMove = true;
  3309. }
  3310. if(sevenTLLegal){
  3311. if(mouseSquareX == sevenTLX && mouseSquareY == sevenTLY){
  3312. legalMove = true;
  3313. }
  3314. }
  3315. }
  3316. }
  3317. }
  3318. }
  3319. }
  3320. }
  3321. if(oneTRLegal){
  3322. if(mouseSquareX == oneTRX && mouseSquareY == oneTRY){
  3323. legalMove = true;
  3324. }
  3325. if(twoTRLegal){
  3326. if(mouseSquareX == twoTRX && mouseSquareY == twoTRY){
  3327. legalMove = true;
  3328. }
  3329. if(threeTRLegal){
  3330. if(mouseSquareX == threeTRX && mouseSquareY == threeTRY){
  3331. legalMove = true;
  3332. }
  3333. if(fourTRLegal){
  3334. if(mouseSquareX == fourTRX && mouseSquareY == fourTRY){
  3335. legalMove = true;
  3336. }
  3337. if(fiveTRLegal){
  3338. if(mouseSquareX == fiveTRX && mouseSquareY == fiveTRY){
  3339. legalMove = true;
  3340. }
  3341. if(sixTRLegal){
  3342. if(mouseSquareX == sixTRX && mouseSquareY == sixTRY){
  3343. legalMove = true;
  3344. }
  3345. if(sevenTRLegal){
  3346. if(mouseSquareX == sevenTRX && mouseSquareY == sevenTRY){
  3347. legalMove = true;
  3348. }
  3349. }
  3350. }
  3351. }
  3352. }
  3353. }
  3354. }
  3355. }
  3356. if(oneBLLegal){
  3357. if(mouseSquareX == oneBLX && mouseSquareY == oneBLY){
  3358. legalMove = true;
  3359. }
  3360. if(twoBLLegal){
  3361. if(mouseSquareX == twoBLX && mouseSquareY == twoBLY){
  3362. legalMove = true;
  3363. }
  3364. if(threeBLLegal){
  3365. if(mouseSquareX == threeBLX && mouseSquareY == threeBLY){
  3366. legalMove = true;
  3367. }
  3368. if(fourBLLegal){
  3369. if(mouseSquareX == fourBLX && mouseSquareY == fourBLY){
  3370. legalMove = true;
  3371. }
  3372. if(fiveBLLegal){
  3373. if(mouseSquareX == fiveBLX && mouseSquareY == fiveBLY){
  3374. legalMove = true;
  3375. }
  3376. if(sixBLLegal){
  3377. if(mouseSquareX == sixBLX && mouseSquareY == sixBLY){
  3378. legalMove = true;
  3379. }
  3380. if(sevenBLLegal){
  3381. if(mouseSquareX == sevenBLX && mouseSquareY == sevenBLY){
  3382. legalMove = true;
  3383. }
  3384. }
  3385. }
  3386. }
  3387. }
  3388. }
  3389. }
  3390. }
  3391. if(oneBRLegal){
  3392. if(mouseSquareX == oneBRX && mouseSquareY == oneBRY){
  3393. legalMove = true;
  3394. }
  3395. if(twoBRLegal){
  3396. if(mouseSquareX == twoBRX && mouseSquareY == twoBRY){
  3397. legalMove = true;
  3398. }
  3399. if(threeBRLegal){
  3400. if(mouseSquareX == threeBRX && mouseSquareY == threeBRY){
  3401. legalMove = true;
  3402. }
  3403. if(fourBRLegal){
  3404. if(mouseSquareX == fourBRX && mouseSquareY == fourBRY){
  3405. legalMove = true;
  3406. }
  3407. if(fiveBRLegal){
  3408. if(mouseSquareX == fiveBRX && mouseSquareY == fiveBRY){
  3409. legalMove = true;
  3410. }
  3411. if(sixBRLegal){
  3412. if(mouseSquareX == sixBRX && mouseSquareY == sixBRY){
  3413. legalMove = true;
  3414. }
  3415. if(sevenBRLegal){
  3416. if(mouseSquareX == sevenBRX && mouseSquareY == sevenBRY){
  3417. legalMove = true;
  3418. }
  3419. }
  3420. }
  3421. }
  3422. }
  3423. }
  3424. }
  3425. }
  3426. if(legalMove){
  3427. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  3428. pickedPiece = null;
  3429. piecePicked = false;
  3430. piecesOnBoard.set(mouseSquareX,mouseSquareY,whiteQueensBishop);
  3431.  
  3432. prevSqX = Math.floor(prevX / squareDim);
  3433. prevSqY = Math.floor(prevY / squareDim);
  3434.  
  3435. piecesOnBoard.set(prevSqX,prevSqY, null);
  3436.  
  3437. whiteToMove = false;
  3438. toMoveSquare.setColor(Color.black);
  3439. legalMove = false;
  3440. } else {
  3441. pickedPiece.setPosition(prevX,prevY);
  3442. pickedPiece = null;
  3443. piecePicked = false;
  3444. }
  3445. } else {
  3446. if(prevSqX - 1 >= 0 && prevSqY - 1 >= 0){
  3447. oneTLLegal = true;
  3448. oneTLX = prevSqX - 1;
  3449. oneTLY = prevSqY - 1;
  3450. if(prevSqX - 2 >= 0 && prevSqY - 2 >= 0){
  3451. twoTLLegal = true;
  3452. twoTLX = prevSqX - 2;
  3453. twoTLY = prevSqY - 2;
  3454. if(prevSqX - 3 >= 0 && prevSqY - 3 >= 0){
  3455. threeTLLegal = true;
  3456. threeTLX = prevSqX - 3;
  3457. threeTLY = prevSqY - 3;
  3458. if(prevSqX - 4 >= 0 && prevSqY - 4 >= 0){
  3459. fourTLLegal = true;
  3460. fourTLX = prevSqX - 4;
  3461. fourTLY = prevSqY - 4;
  3462. if(prevSqX - 5 >= 0 && prevSqY - 5 >= 0){
  3463. fiveTLLegal = true;
  3464. fiveTLX = prevSqX - 5;
  3465. fiveTLY = prevSqY - 5;
  3466. if(prevSqX - 6 >= 0 && prevSqY - 6 >= 0){
  3467. sixTLLegal = true;
  3468. sixTLX = prevSqX - 6;
  3469. sixTLY = prevSqY - 6;
  3470. if(prevSqX - 7 >= 0 && prevSqY - 7 >= 0){
  3471. sevenTLLegal = true;
  3472. sevenTLX = prevSqX - 7;
  3473. sevenTLY = prevSqY - 7;
  3474. }
  3475. }
  3476. }
  3477. }
  3478. }
  3479. }
  3480. }
  3481. if(prevSqX + 1 >= 0 && prevSqY - 1 >= 0){
  3482. oneTRLegal = true;
  3483. oneTRX = prevSqX + 1;
  3484. oneTRY = prevSqY - 1;
  3485. if(prevSqX + 2 >= 0 && prevSqY - 2 >= 0){
  3486. twoTRLegal = true;
  3487. twoTRX = prevSqX + 2;
  3488. twoTRY = prevSqY - 2;
  3489. if(prevSqX + 3 >= 0 && prevSqY - 3 >= 0){
  3490. threeTRLegal = true;
  3491. threeTRX = prevSqX + 3;
  3492. threeTRY = prevSqY - 3;
  3493. if(prevSqX + 4 >= 0 && prevSqY - 4 >= 0){
  3494. fourTRLegal = true;
  3495. fourTRX = prevSqX + 4;
  3496. fourTRY = prevSqY - 4;
  3497. if(prevSqX + 5 >= 0 && prevSqY - 5 >= 0){
  3498. fiveTRLegal = true;
  3499. fiveTRX = prevSqX + 5;
  3500. fiveTRY = prevSqY - 5;
  3501. if(prevSqX + 6 >= 0 && prevSqY - 6 >= 0){
  3502. sixTRLegal = true;
  3503. sixTRX = prevSqX + 6;
  3504. sixTRY = prevSqY - 6;
  3505. if(prevSqX + 7 >= 0 && prevSqY - 7 >= 0){
  3506. sevenTRLegal = true;
  3507. sevenTRX = prevSqX + 7;
  3508. sevenTRY = prevSqY - 7;
  3509. }
  3510. }
  3511. }
  3512. }
  3513. }
  3514. }
  3515. }
  3516. if(prevSqX - 1 >= 0 && prevSqY + 1 >= 0){
  3517. oneBLLegal = true;
  3518. oneBLX = prevSqX - 1;
  3519. oneBLY = prevSqY + 1;
  3520. if(prevSqX - 2 >= 0 && prevSqY + 2 >= 0){
  3521. twoBLLegal = true;
  3522. twoBLX = prevSqX - 2;
  3523. twoBLY = prevSqY + 2;
  3524. if(prevSqX - 3 >= 0 && prevSqY + 3 >= 0){
  3525. threeBLLegal = true;
  3526. threeBLX = prevSqX - 3;
  3527. threeBLY = prevSqY + 3;
  3528. if(prevSqX - 4 >= 0 && prevSqY + 4 >= 0){
  3529. fourBLLegal = true;
  3530. fourBLX = prevSqX - 4;
  3531. fourBLY = prevSqY + 4;
  3532. if(prevSqX - 5 >= 0 && prevSqY + 5 >= 0){
  3533. fiveBLLegal = true;
  3534. fiveBLX = prevSqX - 5;
  3535. fiveBLY = prevSqY + 5;
  3536. if(prevSqX - 6 >= 0 && prevSqY + 6 >= 0){
  3537. sixBLLegal = true;
  3538. sixBLX = prevSqX - 6;
  3539. sixBLY = prevSqY + 6;
  3540. if(prevSqX - 7 >= 0 && prevSqY + 7 >= 0){
  3541. sevenBLLegal = true;
  3542. sevenBLX = prevSqX - 7;
  3543. sevenBLY = prevSqY + 7;
  3544. }
  3545. }
  3546. }
  3547. }
  3548. }
  3549. }
  3550. }
  3551. if(prevSqX + 1 >= 0 && prevSqY + 1 >= 0){
  3552. oneBRLegal = true;
  3553. oneBRX = prevSqX + 1;
  3554. oneBRY = prevSqY + 1;
  3555. if(prevSqX + 2 >= 0 && prevSqY + 2 >= 0){
  3556. twoBRLegal = true;
  3557. twoBRX = prevSqX + 2;
  3558. twoBRY = prevSqY + 2;
  3559. if(prevSqX + 3 >= 0 && prevSqY + 3 >= 0){
  3560. threeBRLegal = true;
  3561. threeBRX = prevSqX + 3;
  3562. threeBRY = prevSqY + 3;
  3563. if(prevSqX + 4 >= 0 && prevSqY + 4 >= 0){
  3564. fourBRLegal = true;
  3565. fourBRX = prevSqX + 4;
  3566. fourBRY = prevSqY + 4;
  3567. if(prevSqX + 5 >= 0 && prevSqY + 5 >= 0){
  3568. fiveBRLegal = true;
  3569. fiveBRX = prevSqX + 5;
  3570. fiveBRY = prevSqY + 5;
  3571. if(prevSqX + 6 >= 0 && prevSqY + 6 >= 0){
  3572. sixBRLegal = true;
  3573. sixBRX = prevSqX + 6;
  3574. sixBRY = prevSqY + 6;
  3575. if(prevSqX + 7 >= 0 && prevSqY + 7 >= 0){
  3576. sevenBRLegal = true;
  3577. sevenBRX = prevSqX + 7;
  3578. sevenBRY = prevSqY + 7;
  3579. }
  3580. }
  3581. }
  3582. }
  3583. }
  3584. }
  3585. }
  3586.  
  3587. if(oneTLLegal){
  3588. if(mouseSquareX == oneTLX && mouseSquareY == oneTLY){
  3589. legalMove = true;
  3590. }
  3591. if(twoTLLegal){
  3592. if(mouseSquareX == twoTLX && mouseSquareY == twoTLY){
  3593. legalMove = true;
  3594. }
  3595. if(threeTLLegal){
  3596. if(mouseSquareX == threeTLX && mouseSquareY == threeTLY){
  3597. legalMove = true;
  3598. }
  3599. if(fourTLLegal){
  3600. if(mouseSquareX == fourTLX && mouseSquareY == fourTLY){
  3601. legalMove = true;
  3602. }
  3603. if(fiveTLLegal){
  3604. if(mouseSquareX == fiveTLX && mouseSquareY == fiveTLY){
  3605. legalMove = true;
  3606. }
  3607. if(sixTLLegal){
  3608. if(mouseSquareX == sixTLX && mouseSquareY == sixTLY){
  3609. legalMove = true;
  3610. }
  3611. if(sevenTLLegal){
  3612. if(mouseSquareX == sevenTLX && mouseSquareY == sevenTLY){
  3613. legalMove = true;
  3614. }
  3615. }
  3616. }
  3617. }
  3618. }
  3619. }
  3620. }
  3621. }
  3622. if(oneTRLegal){
  3623. if(mouseSquareX == oneTRX && mouseSquareY == oneTRY){
  3624. legalMove = true;
  3625. }
  3626. if(twoTRLegal){
  3627. if(mouseSquareX == twoTRX && mouseSquareY == twoTRY){
  3628. legalMove = true;
  3629. }
  3630. if(threeTRLegal){
  3631. if(mouseSquareX == threeTRX && mouseSquareY == threeTRY){
  3632. legalMove = true;
  3633. }
  3634. if(fourTRLegal){
  3635. if(mouseSquareX == fourTRX && mouseSquareY == fourTRY){
  3636. legalMove = true;
  3637. }
  3638. if(fiveTRLegal){
  3639. if(mouseSquareX == fiveTRX && mouseSquareY == fiveTRY){
  3640. legalMove = true;
  3641. }
  3642. if(sixTRLegal){
  3643. if(mouseSquareX == sixTRX && mouseSquareY == sixTRY){
  3644. legalMove = true;
  3645. }
  3646. if(sevenTRLegal){
  3647. if(mouseSquareX == sevenTRX && mouseSquareY == sevenTRY){
  3648. legalMove = true;
  3649. }
  3650. }
  3651. }
  3652. }
  3653. }
  3654. }
  3655. }
  3656. }
  3657. if(oneBLLegal){
  3658. if(mouseSquareX == oneBLX && mouseSquareY == oneBLY){
  3659. legalMove = true;
  3660. }
  3661. if(twoBLLegal){
  3662. if(mouseSquareX == twoBLX && mouseSquareY == twoBLY){
  3663. legalMove = true;
  3664. }
  3665. if(threeBLLegal){
  3666. if(mouseSquareX == threeBLX && mouseSquareY == threeBLY){
  3667. legalMove = true;
  3668. }
  3669. if(fourBLLegal){
  3670. if(mouseSquareX == fourBLX && mouseSquareY == fourBLY){
  3671. legalMove = true;
  3672. }
  3673. if(fiveBLLegal){
  3674. if(mouseSquareX == fiveBLX && mouseSquareY == fiveBLY){
  3675. legalMove = true;
  3676. }
  3677. if(sixBLLegal){
  3678. if(mouseSquareX == sixBLX && mouseSquareY == sixBLY){
  3679. legalMove = true;
  3680. }
  3681. if(sevenBLLegal){
  3682. if(mouseSquareX == sevenBLX && mouseSquareY == sevenBLY){
  3683. legalMove = true;
  3684. }
  3685. }
  3686. }
  3687. }
  3688. }
  3689. }
  3690. }
  3691. }
  3692. if(oneBRLegal){
  3693. if(mouseSquareX == oneBRX && mouseSquareY == oneBRY){
  3694. legalMove = true;
  3695. }
  3696. if(twoBRLegal){
  3697. if(mouseSquareX == twoBRX && mouseSquareY == twoBRY){
  3698. legalMove = true;
  3699. }
  3700. if(threeBRLegal){
  3701. if(mouseSquareX == threeBRX && mouseSquareY == threeBRY){
  3702. legalMove = true;
  3703. }
  3704. if(fourBRLegal){
  3705. if(mouseSquareX == fourBRX && mouseSquareY == fourBRY){
  3706. legalMove = true;
  3707. }
  3708. if(fiveBRLegal){
  3709. if(mouseSquareX == fiveBRX && mouseSquareY == fiveBRY){
  3710. legalMove = true;
  3711. }
  3712. if(sixBRLegal){
  3713. if(mouseSquareX == sixBRX && mouseSquareY == sixBRY){
  3714. legalMove = true;
  3715. }
  3716. if(sevenBRLegal){
  3717. if(mouseSquareX == sevenBRX && mouseSquareY == sevenBRY){
  3718. legalMove = true;
  3719. }
  3720. }
  3721. }
  3722. }
  3723. }
  3724. }
  3725. }
  3726. }
  3727. if(legalMove){
  3728. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  3729. pickedPiece = null;
  3730. piecePicked = false;
  3731. piecesOnBoard.set(mouseSquareX,mouseSquareY,whiteKingsBishop);
  3732.  
  3733. prevSqX = Math.floor(prevX / squareDim);
  3734. prevSqY = Math.floor(prevY / squareDim);
  3735.  
  3736. piecesOnBoard.set(prevSqX,prevSqY, null);
  3737.  
  3738. whiteToMove = false;
  3739. toMoveSquare.setColor(Color.black);
  3740. legalMove = false;
  3741. } else {
  3742. pickedPiece.setPosition(prevX,prevY);
  3743. pickedPiece = null;
  3744. piecePicked = false;
  3745. }
  3746. }
  3747. }
  3748.  
  3749. function moveBlackBishop(){
  3750. legalMove = false;
  3751.  
  3752. var oneTLX = 0;
  3753. var oneTLY = 0;
  3754. var twoTLX = 0;
  3755. var twoTLY = 0;
  3756. var threeTLX = 0;
  3757. var threeTLY = 0;
  3758. var fourTLX = 0;
  3759. var fourTLY = 0;
  3760. var fiveTLX = 0;
  3761. var fiveTLY = 0;
  3762. var sixTLX = 0;
  3763. var sixTLY = 0;
  3764. var sevenTLX = 0;
  3765. var sevenTLY = 0;
  3766.  
  3767. var oneTRX = 0;
  3768. var oneTRY = 0;
  3769. var twoTRX = 0;
  3770. var twoTRY = 0;
  3771. var threeTRX = 0;
  3772. var threeTRY = 0;
  3773. var fourTRX = 0;
  3774. var fourTRY = 0;
  3775. var fiveTRX = 0;
  3776. var fiveTRY = 0;
  3777. var sixTRX = 0;
  3778. var sixTRY = 0;
  3779. var sevenTRX = 0;
  3780. var sevenTRY = 0;
  3781.  
  3782. var oneBLX = 0;
  3783. var oneBLY = 0;
  3784. var twoBLX = 0;
  3785. var twoBLY = 0;
  3786. var threeBLX = 0;
  3787. var threeBLY = 0;
  3788. var fourBLX = 0;
  3789. var fourBLY = 0;
  3790. var fiveBLX = 0;
  3791. var fiveBLY = 0;
  3792. var sixBLX = 0;
  3793. var sixBLY = 0;
  3794. var sevenBLX = 0;
  3795. var sevenBLY = 0;
  3796.  
  3797. var oneBRX = 0;
  3798. var oneBRY = 0;
  3799. var twoBRX = 0;
  3800. var twoBRY = 0;
  3801. var threeBRX = 0;
  3802. var threeBRY = 0;
  3803. var fourBRX = 0;
  3804. var fourBRY = 0;
  3805. var fiveBRX = 0;
  3806. var fiveBRY = 0;
  3807. var sixBRX = 0;
  3808. var sixBRY = 0;
  3809. var sevenBRX = 0;
  3810. var sevenBRY = 0;
  3811.  
  3812. var oneTLLegal = false;
  3813. var twoTLLegal = false;
  3814. var threeTLLegal = false;
  3815. var fourTLLegal = false;
  3816. var fiveTLLegal = false;
  3817. var sixTLLegal = false;
  3818. var sevenTLLegal = false;
  3819.  
  3820. var oneTRLegal = false;
  3821. var twoTRLegal = false;
  3822. var threeTRLegal = false;
  3823. var fourTRLegal = false;
  3824. var fiveTRLegal = false;
  3825. var sixTRLegal = false;
  3826. var sevenTRLegal = false;
  3827.  
  3828. var oneBLLegal = false;
  3829. var twoBLLegal = false;
  3830. var threeBLLegal = false;
  3831. var fourBLLegal = false;
  3832. var fiveBLLegal = false;
  3833. var sixBLLegal = false;
  3834. var sevenBLLegal = false;
  3835.  
  3836. var oneBRLegal = false;
  3837. var twoBRLegal = false;
  3838. var threeBRLegal = false;
  3839. var fourBRLegal = false;
  3840. var fiveBRLegal = false;
  3841. var sixBRLegal = false;
  3842. var sevenBRLegal = false;
  3843.  
  3844. prevSqX = Math.floor(prevX / squareDim);
  3845. prevSqY = Math.floor(prevY / squareDim);
  3846.  
  3847. if(pickedPiece == blackQueensBishop){
  3848. if(prevSqX - 1 >= 0 && prevSqY - 1 >= 0){
  3849. oneTLLegal = true;
  3850. oneTLX = prevSqX - 1;
  3851. oneTLY = prevSqY - 1;
  3852. if(prevSqX - 2 >= 0 && prevSqY - 2 >= 0){
  3853. twoTLLegal = true;
  3854. twoTLX = prevSqX - 2;
  3855. twoTLY = prevSqY - 2;
  3856. if(prevSqX - 3 >= 0 && prevSqY - 3 >= 0){
  3857. threeTLLegal = true;
  3858. threeTLX = prevSqX - 3;
  3859. threeTLY = prevSqY - 3;
  3860. if(prevSqX - 4 >= 0 && prevSqY - 4 >= 0){
  3861. fourTLLegal = true;
  3862. fourTLX = prevSqX - 4;
  3863. fourTLY = prevSqY - 4;
  3864. if(prevSqX - 5 >= 0 && prevSqY - 5 >= 0){
  3865. fiveTLLegal = true;
  3866. fiveTLX = prevSqX - 5;
  3867. fiveTLY = prevSqY - 5;
  3868. if(prevSqX - 6 >= 0 && prevSqY - 6 >= 0){
  3869. sixTLLegal = true;
  3870. sixTLX = prevSqX - 6;
  3871. sixTLY = prevSqY - 6;
  3872. if(prevSqX - 7 >= 0 && prevSqY - 7 >= 0){
  3873. sevenTLLegal = true;
  3874. sevenTLX = prevSqX - 7;
  3875. sevenTLY = prevSqY - 7;
  3876. }
  3877. }
  3878. }
  3879. }
  3880. }
  3881. }
  3882. }
  3883. if(prevSqX + 1 >= 0 && prevSqY - 1 >= 0){
  3884. oneTRLegal = true;
  3885. oneTRX = prevSqX + 1;
  3886. oneTRY = prevSqY - 1;
  3887. if(prevSqX + 2 >= 0 && prevSqY - 2 >= 0){
  3888. twoTRLegal = true;
  3889. twoTRX = prevSqX + 2;
  3890. twoTRY = prevSqY - 2;
  3891. if(prevSqX + 3 >= 0 && prevSqY - 3 >= 0){
  3892. threeTRLegal = true;
  3893. threeTRX = prevSqX + 3;
  3894. threeTRY = prevSqY - 3;
  3895. if(prevSqX + 4 >= 0 && prevSqY - 4 >= 0){
  3896. fourTRLegal = true;
  3897. fourTRX = prevSqX + 4;
  3898. fourTRY = prevSqY - 4;
  3899. if(prevSqX + 5 >= 0 && prevSqY - 5 >= 0){
  3900. fiveTRLegal = true;
  3901. fiveTRX = prevSqX + 5;
  3902. fiveTRY = prevSqY - 5;
  3903. if(prevSqX + 6 >= 0 && prevSqY - 6 >= 0){
  3904. sixTRLegal = true;
  3905. sixTRX = prevSqX + 6;
  3906. sixTRY = prevSqY - 6;
  3907. if(prevSqX + 7 >= 0 && prevSqY - 7 >= 0){
  3908. sevenTRLegal = true;
  3909. sevenTRX = prevSqX + 7;
  3910. sevenTRY = prevSqY - 7;
  3911. }
  3912. }
  3913. }
  3914. }
  3915. }
  3916. }
  3917. }
  3918. if(prevSqX - 1 >= 0 && prevSqY + 1 >= 0){
  3919. oneBLLegal = true;
  3920. oneBLX = prevSqX - 1;
  3921. oneBLY = prevSqY + 1;
  3922. if(prevSqX - 2 >= 0 && prevSqY + 2 >= 0){
  3923. twoBLLegal = true;
  3924. twoBLX = prevSqX - 2;
  3925. twoBLY = prevSqY + 2;
  3926. if(prevSqX - 3 >= 0 && prevSqY + 3 >= 0){
  3927. threeBLLegal = true;
  3928. threeBLX = prevSqX - 3;
  3929. threeBLY = prevSqY + 3;
  3930. if(prevSqX - 4 >= 0 && prevSqY + 4 >= 0){
  3931. fourBLLegal = true;
  3932. fourBLX = prevSqX - 4;
  3933. fourBLY = prevSqY + 4;
  3934. if(prevSqX - 5 >= 0 && prevSqY + 5 >= 0){
  3935. fiveBLLegal = true;
  3936. fiveBLX = prevSqX - 5;
  3937. fiveBLY = prevSqY + 5;
  3938. if(prevSqX - 6 >= 0 && prevSqY + 6 >= 0){
  3939. sixBLLegal = true;
  3940. sixBLX = prevSqX - 6;
  3941. sixBLY = prevSqY + 6;
  3942. if(prevSqX - 7 >= 0 && prevSqY + 7 >= 0){
  3943. sevenBLLegal = true;
  3944. sevenBLX = prevSqX - 7;
  3945. sevenBLY = prevSqY + 7;
  3946. }
  3947. }
  3948. }
  3949. }
  3950. }
  3951. }
  3952. }
  3953. if(prevSqX + 1 >= 0 && prevSqY + 1 >= 0){
  3954. oneBRLegal = true;
  3955. oneBRX = prevSqX + 1;
  3956. oneBRY = prevSqY + 1;
  3957. if(prevSqX + 2 >= 0 && prevSqY + 2 >= 0){
  3958. twoBRLegal = true;
  3959. twoBRX = prevSqX + 2;
  3960. twoBRY = prevSqY + 2;
  3961. if(prevSqX + 3 >= 0 && prevSqY + 3 >= 0){
  3962. threeBRLegal = true;
  3963. threeBRX = prevSqX + 3;
  3964. threeBRY = prevSqY + 3;
  3965. if(prevSqX + 4 >= 0 && prevSqY + 4 >= 0){
  3966. fourBRLegal = true;
  3967. fourBRX = prevSqX + 4;
  3968. fourBRY = prevSqY + 4;
  3969. if(prevSqX + 5 >= 0 && prevSqY + 5 >= 0){
  3970. fiveBRLegal = true;
  3971. fiveBRX = prevSqX + 5;
  3972. fiveBRY = prevSqY + 5;
  3973. if(prevSqX + 6 >= 0 && prevSqY + 6 >= 0){
  3974. sixBRLegal = true;
  3975. sixBRX = prevSqX + 6;
  3976. sixBRY = prevSqY + 6;
  3977. if(prevSqX + 7 >= 0 && prevSqY + 7 >= 0){
  3978. sevenBRLegal = true;
  3979. sevenBRX = prevSqX + 7;
  3980. sevenBRY = prevSqY + 7;
  3981. }
  3982. }
  3983. }
  3984. }
  3985. }
  3986. }
  3987. }
  3988.  
  3989. if(oneTLLegal){
  3990. if(mouseSquareX == oneTLX && mouseSquareY == oneTLY){
  3991. legalMove = true;
  3992. }
  3993. if(twoTLLegal){
  3994. if(mouseSquareX == twoTLX && mouseSquareY == twoTLY){
  3995. legalMove = true;
  3996. }
  3997. if(threeTLLegal){
  3998. if(mouseSquareX == threeTLX && mouseSquareY == threeTLY){
  3999. legalMove = true;
  4000. }
  4001. if(fourTLLegal){
  4002. if(mouseSquareX == fourTLX && mouseSquareY == fourTLY){
  4003. legalMove = true;
  4004. }
  4005. if(fiveTLLegal){
  4006. if(mouseSquareX == fiveTLX && mouseSquareY == fiveTLY){
  4007. legalMove = true;
  4008. }
  4009. if(sixTLLegal){
  4010. if(mouseSquareX == sixTLX && mouseSquareY == sixTLY){
  4011. legalMove = true;
  4012. }
  4013. if(sevenTLLegal){
  4014. if(mouseSquareX == sevenTLX && mouseSquareY == sevenTLY){
  4015. legalMove = true;
  4016. }
  4017. }
  4018. }
  4019. }
  4020. }
  4021. }
  4022. }
  4023. }
  4024. if(oneTRLegal){
  4025. if(mouseSquareX == oneTRX && mouseSquareY == oneTRY){
  4026. legalMove = true;
  4027. }
  4028. if(twoTRLegal){
  4029. if(mouseSquareX == twoTRX && mouseSquareY == twoTRY){
  4030. legalMove = true;
  4031. }
  4032. if(threeTRLegal){
  4033. if(mouseSquareX == threeTRX && mouseSquareY == threeTRY){
  4034. legalMove = true;
  4035. }
  4036. if(fourTRLegal){
  4037. if(mouseSquareX == fourTRX && mouseSquareY == fourTRY){
  4038. legalMove = true;
  4039. }
  4040. if(fiveTRLegal){
  4041. if(mouseSquareX == fiveTRX && mouseSquareY == fiveTRY){
  4042. legalMove = true;
  4043. }
  4044. if(sixTRLegal){
  4045. if(mouseSquareX == sixTRX && mouseSquareY == sixTRY){
  4046. legalMove = true;
  4047. }
  4048. if(sevenTRLegal){
  4049. if(mouseSquareX == sevenTRX && mouseSquareY == sevenTRY){
  4050. legalMove = true;
  4051. }
  4052. }
  4053. }
  4054. }
  4055. }
  4056. }
  4057. }
  4058. }
  4059. if(oneBLLegal){
  4060. if(mouseSquareX == oneBLX && mouseSquareY == oneBLY){
  4061. legalMove = true;
  4062. }
  4063. if(twoBLLegal){
  4064. if(mouseSquareX == twoBLX && mouseSquareY == twoBLY){
  4065. legalMove = true;
  4066. }
  4067. if(threeBLLegal){
  4068. if(mouseSquareX == threeBLX && mouseSquareY == threeBLY){
  4069. legalMove = true;
  4070. }
  4071. if(fourBLLegal){
  4072. if(mouseSquareX == fourBLX && mouseSquareY == fourBLY){
  4073. legalMove = true;
  4074. }
  4075. if(fiveBLLegal){
  4076. if(mouseSquareX == fiveBLX && mouseSquareY == fiveBLY){
  4077. legalMove = true;
  4078. }
  4079. if(sixBLLegal){
  4080. if(mouseSquareX == sixBLX && mouseSquareY == sixBLY){
  4081. legalMove = true;
  4082. }
  4083. if(sevenBLLegal){
  4084. if(mouseSquareX == sevenBLX && mouseSquareY == sevenBLY){
  4085. legalMove = true;
  4086. }
  4087. }
  4088. }
  4089. }
  4090. }
  4091. }
  4092. }
  4093. }
  4094. if(oneBRLegal){
  4095. if(mouseSquareX == oneBRX && mouseSquareY == oneBRY){
  4096. legalMove = true;
  4097. }
  4098. if(twoBRLegal){
  4099. if(mouseSquareX == twoBRX && mouseSquareY == twoBRY){
  4100. legalMove = true;
  4101. }
  4102. if(threeBRLegal){
  4103. if(mouseSquareX == threeBRX && mouseSquareY == threeBRY){
  4104. legalMove = true;
  4105. }
  4106. if(fourBRLegal){
  4107. if(mouseSquareX == fourBRX && mouseSquareY == fourBRY){
  4108. legalMove = true;
  4109. }
  4110. if(fiveBRLegal){
  4111. if(mouseSquareX == fiveBRX && mouseSquareY == fiveBRY){
  4112. legalMove = true;
  4113. }
  4114. if(sixBRLegal){
  4115. if(mouseSquareX == sixBRX && mouseSquareY == sixBRY){
  4116. legalMove = true;
  4117. }
  4118. if(sevenBRLegal){
  4119. if(mouseSquareX == sevenBRX && mouseSquareY == sevenBRY){
  4120. legalMove = true;
  4121. }
  4122. }
  4123. }
  4124. }
  4125. }
  4126. }
  4127. }
  4128. }
  4129.  
  4130. if(legalMove){
  4131. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  4132. pickedPiece = null;
  4133. piecePicked = false;
  4134. piecesOnBoard.set(mouseSquareX,mouseSquareY,blackQueensBishop);
  4135.  
  4136. prevSqX = Math.floor(prevX / squareDim);
  4137. prevSqY = Math.floor(prevY / squareDim);
  4138.  
  4139. piecesOnBoard.set(prevSqX,prevSqY, null);
  4140.  
  4141. whiteToMove = true;
  4142. toMoveSquare.setColor(Color.white);
  4143. legalMove = false;
  4144. } else {
  4145. pickedPiece.setPosition(prevX,prevY);
  4146. pickedPiece = null;
  4147. piecePicked = false;
  4148. }
  4149. } else {
  4150. if(prevSqX - 1 >= 0 && prevSqY - 1 >= 0){
  4151. oneTLLegal = true;
  4152. oneTLX = prevSqX - 1;
  4153. oneTLY = prevSqY - 1;
  4154. if(prevSqX - 2 >= 0 && prevSqY - 2 >= 0){
  4155. twoTLLegal = true;
  4156. twoTLX = prevSqX - 2;
  4157. twoTLY = prevSqY - 2;
  4158. if(prevSqX - 3 >= 0 && prevSqY - 3 >= 0){
  4159. threeTLLegal = true;
  4160. threeTLX = prevSqX - 3;
  4161. threeTLY = prevSqY - 3;
  4162. if(prevSqX - 4 >= 0 && prevSqY - 4 >= 0){
  4163. fourTLLegal = true;
  4164. fourTLX = prevSqX - 4;
  4165. fourTLY = prevSqY - 4;
  4166. if(prevSqX - 5 >= 0 && prevSqY - 5 >= 0){
  4167. fiveTLLegal = true;
  4168. fiveTLX = prevSqX - 5;
  4169. fiveTLY = prevSqY - 5;
  4170. if(prevSqX - 6 >= 0 && prevSqY - 6 >= 0){
  4171. sixTLLegal = true;
  4172. sixTLX = prevSqX - 6;
  4173. sixTLY = prevSqY - 6;
  4174. if(prevSqX - 7 >= 0 && prevSqY - 7 >= 0){
  4175. sevenTLLegal = true;
  4176. sevenTLX = prevSqX - 7;
  4177. sevenTLY = prevSqY - 7;
  4178. }
  4179. }
  4180. }
  4181. }
  4182. }
  4183. }
  4184. }
  4185. if(prevSqX + 1 >= 0 && prevSqY - 1 >= 0){
  4186. oneTRLegal = true;
  4187. oneTRX = prevSqX + 1;
  4188. oneTRY = prevSqY - 1;
  4189. if(prevSqX + 2 >= 0 && prevSqY - 2 >= 0){
  4190. twoTRLegal = true;
  4191. twoTRX = prevSqX + 2;
  4192. twoTRY = prevSqY - 2;
  4193. if(prevSqX + 3 >= 0 && prevSqY - 3 >= 0){
  4194. threeTRLegal = true;
  4195. threeTRX = prevSqX + 3;
  4196. threeTRY = prevSqY - 3;
  4197. if(prevSqX + 4 >= 0 && prevSqY - 4 >= 0){
  4198. fourTRLegal = true;
  4199. fourTRX = prevSqX + 4;
  4200. fourTRY = prevSqY - 4;
  4201. if(prevSqX + 5 >= 0 && prevSqY - 5 >= 0){
  4202. fiveTRLegal = true;
  4203. fiveTRX = prevSqX + 5;
  4204. fiveTRY = prevSqY - 5;
  4205. if(prevSqX + 6 >= 0 && prevSqY - 6 >= 0){
  4206. sixTRLegal = true;
  4207. sixTRX = prevSqX + 6;
  4208. sixTRY = prevSqY - 6;
  4209. if(prevSqX + 7 >= 0 && prevSqY - 7 >= 0){
  4210. sevenTRLegal = true;
  4211. sevenTRX = prevSqX + 7;
  4212. sevenTRY = prevSqY - 7;
  4213. }
  4214. }
  4215. }
  4216. }
  4217. }
  4218. }
  4219. }
  4220. if(prevSqX - 1 >= 0 && prevSqY + 1 >= 0){
  4221. oneBLLegal = true;
  4222. oneBLX = prevSqX - 1;
  4223. oneBLY = prevSqY + 1;
  4224. if(prevSqX - 2 >= 0 && prevSqY + 2 >= 0){
  4225. twoBLLegal = true;
  4226. twoBLX = prevSqX - 2;
  4227. twoBLY = prevSqY + 2;
  4228. if(prevSqX - 3 >= 0 && prevSqY + 3 >= 0){
  4229. threeBLLegal = true;
  4230. threeBLX = prevSqX - 3;
  4231. threeBLY = prevSqY + 3;
  4232. if(prevSqX - 4 >= 0 && prevSqY + 4 >= 0){
  4233. fourBLLegal = true;
  4234. fourBLX = prevSqX - 4;
  4235. fourBLY = prevSqY + 4;
  4236. if(prevSqX - 5 >= 0 && prevSqY + 5 >= 0){
  4237. fiveBLLegal = true;
  4238. fiveBLX = prevSqX - 5;
  4239. fiveBLY = prevSqY + 5;
  4240. if(prevSqX - 6 >= 0 && prevSqY + 6 >= 0){
  4241. sixBLLegal = true;
  4242. sixBLX = prevSqX - 6;
  4243. sixBLY = prevSqY + 6;
  4244. if(prevSqX - 7 >= 0 && prevSqY + 7 >= 0){
  4245. sevenBLLegal = true;
  4246. sevenBLX = prevSqX - 7;
  4247. sevenBLY = prevSqY + 7;
  4248. }
  4249. }
  4250. }
  4251. }
  4252. }
  4253. }
  4254. }
  4255. if(prevSqX + 1 >= 0 && prevSqY + 1 >= 0){
  4256. oneBRLegal = true;
  4257. oneBRX = prevSqX + 1;
  4258. oneBRY = prevSqY + 1;
  4259. if(prevSqX + 2 >= 0 && prevSqY + 2 >= 0){
  4260. twoBRLegal = true;
  4261. twoBRX = prevSqX + 2;
  4262. twoBRY = prevSqY + 2;
  4263. if(prevSqX + 3 >= 0 && prevSqY + 3 >= 0){
  4264. threeBRLegal = true;
  4265. threeBRX = prevSqX + 3;
  4266. threeBRY = prevSqY + 3;
  4267. if(prevSqX + 4 >= 0 && prevSqY + 4 >= 0){
  4268. fourBRLegal = true;
  4269. fourBRX = prevSqX + 4;
  4270. fourBRY = prevSqY + 4;
  4271. if(prevSqX + 5 >= 0 && prevSqY + 5 >= 0){
  4272. fiveBRLegal = true;
  4273. fiveBRX = prevSqX + 5;
  4274. fiveBRY = prevSqY + 5;
  4275. if(prevSqX + 6 >= 0 && prevSqY + 6 >= 0){
  4276. sixBRLegal = true;
  4277. sixBRX = prevSqX + 6;
  4278. sixBRY = prevSqY + 6;
  4279. if(prevSqX + 7 >= 0 && prevSqY + 7 >= 0){
  4280. sevenBRLegal = true;
  4281. sevenBRX = prevSqX + 7;
  4282. sevenBRY = prevSqY + 7;
  4283. }
  4284. }
  4285. }
  4286. }
  4287. }
  4288. }
  4289. }
  4290.  
  4291. if(oneTLLegal){
  4292. if(mouseSquareX == oneTLX && mouseSquareY == oneTLY){
  4293. legalMove = true;
  4294. }
  4295. if(twoTLLegal){
  4296. if(mouseSquareX == twoTLX && mouseSquareY == twoTLY){
  4297. legalMove = true;
  4298. }
  4299. if(threeTLLegal){
  4300. if(mouseSquareX == threeTLX && mouseSquareY == threeTLY){
  4301. legalMove = true;
  4302. }
  4303. if(fourTLLegal){
  4304. if(mouseSquareX == fourTLX && mouseSquareY == fourTLY){
  4305. legalMove = true;
  4306. }
  4307. if(fiveTLLegal){
  4308. if(mouseSquareX == fiveTLX && mouseSquareY == fiveTLY){
  4309. legalMove = true;
  4310. }
  4311. if(sixTLLegal){
  4312. if(mouseSquareX == sixTLX && mouseSquareY == sixTLY){
  4313. legalMove = true;
  4314. }
  4315. if(sevenTLLegal){
  4316. if(mouseSquareX == sevenTLX && mouseSquareY == sevenTLY){
  4317. legalMove = true;
  4318. }
  4319. }
  4320. }
  4321. }
  4322. }
  4323. }
  4324. }
  4325. }
  4326. if(oneTRLegal){
  4327. if(mouseSquareX == oneTRX && mouseSquareY == oneTRY){
  4328. legalMove = true;
  4329. }
  4330. if(twoTRLegal){
  4331. if(mouseSquareX == twoTRX && mouseSquareY == twoTRY){
  4332. legalMove = true;
  4333. }
  4334. if(threeTRLegal){
  4335. if(mouseSquareX == threeTRX && mouseSquareY == threeTRY){
  4336. legalMove = true;
  4337. }
  4338. if(fourTRLegal){
  4339. if(mouseSquareX == fourTRX && mouseSquareY == fourTRY){
  4340. legalMove = true;
  4341. }
  4342. if(fiveTRLegal){
  4343. if(mouseSquareX == fiveTRX && mouseSquareY == fiveTRY){
  4344. legalMove = true;
  4345. }
  4346. if(sixTRLegal){
  4347. if(mouseSquareX == sixTRX && mouseSquareY == sixTRY){
  4348. legalMove = true;
  4349. }
  4350. if(sevenTRLegal){
  4351. if(mouseSquareX == sevenTRX && mouseSquareY == sevenTRY){
  4352. legalMove = true;
  4353. }
  4354. }
  4355. }
  4356. }
  4357. }
  4358. }
  4359. }
  4360. }
  4361. if(oneBLLegal){
  4362. if(mouseSquareX == oneBLX && mouseSquareY == oneBLY){
  4363. legalMove = true;
  4364. }
  4365. if(twoBLLegal){
  4366. if(mouseSquareX == twoBLX && mouseSquareY == twoBLY){
  4367. legalMove = true;
  4368. }
  4369. if(threeBLLegal){
  4370. if(mouseSquareX == threeBLX && mouseSquareY == threeBLY){
  4371. legalMove = true;
  4372. }
  4373. if(fourBLLegal){
  4374. if(mouseSquareX == fourBLX && mouseSquareY == fourBLY){
  4375. legalMove = true;
  4376. }
  4377. if(fiveBLLegal){
  4378. if(mouseSquareX == fiveBLX && mouseSquareY == fiveBLY){
  4379. legalMove = true;
  4380. }
  4381. if(sixBLLegal){
  4382. if(mouseSquareX == sixBLX && mouseSquareY == sixBLY){
  4383. legalMove = true;
  4384. }
  4385. if(sevenBLLegal){
  4386. if(mouseSquareX == sevenBLX && mouseSquareY == sevenBLY){
  4387. legalMove = true;
  4388. }
  4389. }
  4390. }
  4391. }
  4392. }
  4393. }
  4394. }
  4395. }
  4396. if(oneBRLegal){
  4397. if(mouseSquareX == oneBRX && mouseSquareY == oneBRY){
  4398. legalMove = true;
  4399. }
  4400. if(twoBRLegal){
  4401. if(mouseSquareX == twoBRX && mouseSquareY == twoBRY){
  4402. legalMove = true;
  4403. }
  4404. if(threeBRLegal){
  4405. if(mouseSquareX == threeBRX && mouseSquareY == threeBRY){
  4406. legalMove = true;
  4407. }
  4408. if(fourBRLegal){
  4409. if(mouseSquareX == fourBRX && mouseSquareY == fourBRY){
  4410. legalMove = true;
  4411. }
  4412. if(fiveBRLegal){
  4413. if(mouseSquareX == fiveBRX && mouseSquareY == fiveBRY){
  4414. legalMove = true;
  4415. }
  4416. if(sixBRLegal){
  4417. if(mouseSquareX == sixBRX && mouseSquareY == sixBRY){
  4418. legalMove = true;
  4419. }
  4420. if(sevenBRLegal){
  4421. if(mouseSquareX == sevenBRX && mouseSquareY == sevenBRY){
  4422. legalMove = true;
  4423. }
  4424. }
  4425. }
  4426. }
  4427. }
  4428. }
  4429. }
  4430. }
  4431.  
  4432. if(legalMove){
  4433. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  4434. pickedPiece = null;
  4435. piecePicked = false;
  4436. piecesOnBoard.set(mouseSquareX,mouseSquareY,blackKingsBishop);
  4437.  
  4438. prevSqX = Math.floor(prevX / squareDim);
  4439. prevSqY = Math.floor(prevY / squareDim);
  4440.  
  4441. piecesOnBoard.set(prevSqX,prevSqY, null);
  4442.  
  4443. whiteToMove = true;
  4444. toMoveSquare.setColor(Color.white);
  4445. legalMove = false;
  4446. } else {
  4447. pickedPiece.setPosition(prevX,prevY);
  4448. pickedPiece = null;
  4449. piecePicked = false;
  4450. }
  4451. }
  4452. }
  4453.  
  4454. function moveWhiteQueen(){
  4455. legalMove = false;
  4456.  
  4457. var leftOneX = 0;
  4458. var leftOneY = 0;
  4459. var leftTwoX = 0;
  4460. var leftTwoY = 0;
  4461. var leftThreeX = 0;
  4462. var leftThreeY = 0;
  4463. var leftFourX = 0;
  4464. var leftFourY = 0;
  4465. var leftFiveX = 0;
  4466. var leftFiveY = 0;
  4467. var leftSixX = 0;
  4468. var leftSixY = 0;
  4469. var leftSevenX = 0;
  4470. var leftSevenY = 0;
  4471.  
  4472. var rightOneX = 0;
  4473. var rightOneY = 0;
  4474. var rightTwoX = 0;
  4475. var rightTwoY = 0;
  4476. var rightThreeX = 0;
  4477. var rightThreeY = 0;
  4478. var rightFourX = 0;
  4479. var rightFourY = 0;
  4480. var rightFiveX = 0;
  4481. var rightFiveY = 0;
  4482. var rightSixX = 0;
  4483. var rightSixY = 0;
  4484. var rightSevenX = 0;
  4485. var rightSevenY = 0;
  4486.  
  4487. var upOneX = 0;
  4488. var upOneY = 0;
  4489. var upTwoX = 0;
  4490. var upTwoY = 0;
  4491. var upThreeX = 0;
  4492. var upThreeY = 0;
  4493. var upFourX = 0;
  4494. var upFourY = 0;
  4495. var upFiveX = 0;
  4496. var upFiveY = 0;
  4497. var upSixX = 0;
  4498. var upSixY = 0;
  4499. var upSevenX = 0;
  4500. var upSevenY = 0;
  4501.  
  4502. var downOneX = 0;
  4503. var downOneY = 0;
  4504. var downTwoX = 0;
  4505. var downTwoY = 0;
  4506. var downThreeX = 0;
  4507. var downThreeY = 0;
  4508. var downFourX = 0;
  4509. var downFourY = 0;
  4510. var downFiveX = 0;
  4511. var downFiveY = 0;
  4512. var downSixX = 0;
  4513. var downSixY = 0;
  4514. var downSevenX = 0;
  4515. var downSevenY = 0;
  4516.  
  4517. var leftOneLegal = false;
  4518. var leftTwoLegal = false;
  4519. var leftThreeLegal = false;
  4520. var leftFourLegal = false;
  4521. var leftFiveLegal = false;
  4522. var leftSixLegal = false;
  4523. var leftSevenLegal = false;
  4524.  
  4525. var rightOneLegal = false;
  4526. var rightTwoLegal = false;
  4527. var rightThreeLegal = false;
  4528. var rightFourLegal = false;
  4529. var rightFiveLegal = false;
  4530. var rightSixLegal = false;
  4531. var rightSevenLegal = false;
  4532.  
  4533. var upOneLegal = false;
  4534. var upTwoLegal = false;
  4535. var upThreeLegal = false;
  4536. var upFourLegal = false;
  4537. var upFiveLegal = false;
  4538. var upSixLegal = false;
  4539. var upSevenLegal = false;
  4540.  
  4541. var downOneLegal = false;
  4542. var downTwoLegal = false;
  4543. var downThreeLegal = false;
  4544. var downFourLegal = false;
  4545. var downFiveLegal = false;
  4546. var downSixLegal = false;
  4547. var downSevenLegal = false;
  4548.  
  4549. var oneTLX = 0;
  4550. var oneTLY = 0;
  4551. var twoTLX = 0;
  4552. var twoTLY = 0;
  4553. var threeTLX = 0;
  4554. var threeTLY = 0;
  4555. var fourTLX = 0;
  4556. var fourTLY = 0;
  4557. var fiveTLX = 0;
  4558. var fiveTLY = 0;
  4559. var sixTLX = 0;
  4560. var sixTLY = 0;
  4561. var sevenTLX = 0;
  4562. var sevenTLY = 0;
  4563.  
  4564. var oneTRX = 0;
  4565. var oneTRY = 0;
  4566. var twoTRX = 0;
  4567. var twoTRY = 0;
  4568. var threeTRX = 0;
  4569. var threeTRY = 0;
  4570. var fourTRX = 0;
  4571. var fourTRY = 0;
  4572. var fiveTRX = 0;
  4573. var fiveTRY = 0;
  4574. var sixTRX = 0;
  4575. var sixTRY = 0;
  4576. var sevenTRX = 0;
  4577. var sevenTRY = 0;
  4578.  
  4579. var oneBLX = 0;
  4580. var oneBLY = 0;
  4581. var twoBLX = 0;
  4582. var twoBLY = 0;
  4583. var threeBLX = 0;
  4584. var threeBLY = 0;
  4585. var fourBLX = 0;
  4586. var fourBLY = 0;
  4587. var fiveBLX = 0;
  4588. var fiveBLY = 0;
  4589. var sixBLX = 0;
  4590. var sixBLY = 0;
  4591. var sevenBLX = 0;
  4592. var sevenBLY = 0;
  4593.  
  4594. var oneBRX = 0;
  4595. var oneBRY = 0;
  4596. var twoBRX = 0;
  4597. var twoBRY = 0;
  4598. var threeBRX = 0;
  4599. var threeBRY = 0;
  4600. var fourBRX = 0;
  4601. var fourBRY = 0;
  4602. var fiveBRX = 0;
  4603. var fiveBRY = 0;
  4604. var sixBRX = 0;
  4605. var sixBRY = 0;
  4606. var sevenBRX = 0;
  4607. var sevenBRY = 0;
  4608.  
  4609. var oneTLLegal = false;
  4610. var twoTLLegal = false;
  4611. var threeTLLegal = false;
  4612. var fourTLLegal = false;
  4613. var fiveTLLegal = false;
  4614. var sixTLLegal = false;
  4615. var sevenTLLegal = false;
  4616.  
  4617. var oneTRLegal = false;
  4618. var twoTRLegal = false;
  4619. var threeTRLegal = false;
  4620. var fourTRLegal = false;
  4621. var fiveTRLegal = false;
  4622. var sixTRLegal = false;
  4623. var sevenTRLegal = false;
  4624.  
  4625. var oneBLLegal = false;
  4626. var twoBLLegal = false;
  4627. var threeBLLegal = false;
  4628. var fourBLLegal = false;
  4629. var fiveBLLegal = false;
  4630. var sixBLLegal = false;
  4631. var sevenBLLegal = false;
  4632.  
  4633. var oneBRLegal = false;
  4634. var twoBRLegal = false;
  4635. var threeBRLegal = false;
  4636. var fourBRLegal = false;
  4637. var fiveBRLegal = false;
  4638. var sixBRLegal = false;
  4639. var sevenBRLegal = false;
  4640.  
  4641. prevSqX = Math.floor(prevX / squareDim);
  4642. prevSqY = Math.floor(prevY / squareDim);
  4643.  
  4644. if(prevSqX - 1 >= 0){
  4645. leftOneX = prevSqX - 1;
  4646. leftOneY = prevSqY;
  4647. leftOneLegal = true;
  4648. if(prevSqX - 2 >= 0){
  4649. leftTwoX = prevSqX - 2;
  4650. leftTwoY = prevSqY;
  4651. leftTwoLegal = true;
  4652. if(prevSqX - 3 >= 0){
  4653. leftThreeX = prevSqX - 3;
  4654. leftThreeY = prevSqY;
  4655. leftThreeLegal = true;
  4656. if(prevSqX - 4 >= 0){
  4657. leftFourX = prevSqX - 4;
  4658. leftFourY = prevSqY;
  4659. leftFourLegal = true;
  4660. if(prevSqX - 5 >= 0){
  4661. leftFiveX = prevSqX - 5;
  4662. leftFiveY = prevSqY;
  4663. leftFiveLegal = true;
  4664. if(prevSqX - 6 >= 0){
  4665. leftSixX = prevSqX - 6;
  4666. leftSixY = prevSqY;
  4667. leftSixLegal = true;
  4668. if(prevSqX - 7 == 0){
  4669. leftSevenX = prevSqX - 7;
  4670. leftSevenY = prevSqY;
  4671. leftSevenLegal = true;
  4672. }
  4673. }
  4674. }
  4675. }
  4676. }
  4677. }
  4678. }
  4679. if(prevSqX + 1 <= 7){
  4680. rightOneX = prevSqX + 1;
  4681. rightOneY = prevSqY;
  4682. rightOneLegal = true;
  4683. if(prevSqX + 2 <= 7){
  4684. rightTwoX = prevSqX + 2;
  4685. rightTwoY = prevSqY;
  4686. rightTwoLegal = true;
  4687. if(prevSqX + 3 <= 7){
  4688. rightThreeX = prevSqX + 3;
  4689. rightThreeY = prevSqY;
  4690. rightThreeLegal = true;
  4691. if(prevSqX + 4 <= 7){
  4692. rightFourX = prevSqX + 4;
  4693. rightFourY = prevSqY;
  4694. rightFourLegal = true;
  4695. if(prevSqX + 5 <= 7){
  4696. rightFiveX = prevSqX + 5;
  4697. rightFiveY = prevSqY;
  4698. rightFiveLegal = true;
  4699. if(prevSqX + 6 <= 7){
  4700. rightSixX = prevSqX + 6;
  4701. rightSixY = prevSqY;
  4702. rightSixLegal = true;
  4703. if(prevSqX + 7 <= 7){
  4704. rightSevenX = prevSqX + 7;
  4705. rightSevenY = prevSqY;
  4706. rightSevenLegal = true;
  4707. }
  4708. }
  4709. }
  4710. }
  4711. }
  4712. }
  4713. }
  4714. if(prevSqY - 1 >= 0){
  4715. upOneX = prevSqX;
  4716. upOneY = prevSqY - 1;
  4717. upOneLegal = true;
  4718. if(prevSqY - 2 >= 0){
  4719. upTwoX = prevSqX;
  4720. upTwoY = prevSqY - 2;
  4721. upTwoLegal = true;
  4722. if(prevSqY - 3 >= 0){
  4723. upThreeX = prevSqX;
  4724. upThreeY = prevSqY - 3;
  4725. upThreeLegal = true;
  4726. if(prevSqY - 4 >= 0){
  4727. upFourX = prevSqX;
  4728. upFourY = prevSqY - 4;
  4729. upFourLegal = true;
  4730. if(prevSqY - 5 >= 0){
  4731. upFiveX = prevSqX;
  4732. upFiveY = prevSqY - 5;
  4733. upFiveLegal = true;
  4734. if(prevSqY - 6 >= 0){
  4735. upSixX = prevSqX;
  4736. upSixY = prevSqY - 6;
  4737. upSixLegal = true;
  4738. if(prevSqY - 7 >= 0){
  4739. upSevenX = prevSqX;
  4740. upSevenY = prevSqY - 7;
  4741. upSevenLegal = true;
  4742. }
  4743. }
  4744. }
  4745. }
  4746. }
  4747. }
  4748. }
  4749. if(prevSqY + 1 <= 7){
  4750. downOneX = prevSqX;
  4751. downOneY = prevSqY + 1;
  4752. downOneLegal = true;
  4753. if(prevSqY + 2 <= 7){
  4754. downTwoX = prevSqX;
  4755. downTwoY = prevSqY + 2;
  4756. downTwoLegal = true;
  4757. if(prevSqY + 3 <= 7){
  4758. downThreeX = prevSqX;
  4759. downThreeY = prevSqY + 3;
  4760. downThreeLegal = true;
  4761. if(prevSqY + 4 <= 7){
  4762. downFourX = prevSqX;
  4763. downFourY = prevSqY + 4;
  4764. downFourLegal = true;
  4765. if(prevSqY + 5 <= 7){
  4766. downFiveX = prevSqX;
  4767. downFiveY = prevSqY + 5;
  4768. downFiveLegal = true;
  4769. if(prevSqY + 6 <= 7){
  4770. downSixX = prevSqX;
  4771. downSixY = prevSqY + 6;
  4772. downSixLegal = true;
  4773. if(prevSqY + 7 <= 7){
  4774. downSevenX = prevSqX;
  4775. downSevenY = prevSqY + 7;
  4776. downSevenLegal = true;
  4777. }
  4778. }
  4779. }
  4780. }
  4781. }
  4782. }
  4783. }
  4784.  
  4785. if(leftOneLegal){
  4786. if(mouseSquareX == leftOneX && mouseSquareY == leftOneY){
  4787. legalMove = true;
  4788. }
  4789. if(leftTwoLegal){
  4790. if(mouseSquareX == leftTwoX && mouseSquareY == leftTwoY){
  4791. legalMove = true;
  4792. }
  4793. if(leftThreeLegal){
  4794. if(mouseSquareX == leftThreeX && mouseSquareY == leftThreeY){
  4795. legalMove = true;
  4796. }
  4797. if(leftFourLegal){
  4798. if(mouseSquareX == leftFourX && mouseSquareY == leftFourY){
  4799. legalMove = true;
  4800. }
  4801. if(leftFiveLegal){
  4802. if(mouseSquareX == leftFiveX && mouseSquareY == leftFiveY){
  4803. legalMove = true;
  4804. }
  4805. if(leftSixLegal){
  4806. if(mouseSquareX == leftSixX && mouseSquareY == leftSixY){
  4807. legalMove = true;
  4808. }
  4809. if(leftSevenLegal){
  4810. if(mouseSquareX == leftSevenX && mouseSquareY == leftSevenY){
  4811. legalMove = true;
  4812. }
  4813. }
  4814. }
  4815. }
  4816. }
  4817. }
  4818. }
  4819. }
  4820. if(rightOneLegal){
  4821. if(mouseSquareX == rightOneX && mouseSquareY == rightOneY){
  4822. legalMove = true;
  4823. }
  4824. if(rightTwoLegal){
  4825. if(mouseSquareX == rightTwoX && mouseSquareY == rightTwoY){
  4826. legalMove = true;
  4827. }
  4828. if(rightThreeLegal){
  4829. if(mouseSquareX == rightThreeX && mouseSquareY == rightThreeY){
  4830. legalMove = true;
  4831. }
  4832. if(rightFourLegal){
  4833. if(mouseSquareX == rightFourX && mouseSquareY == rightFourY){
  4834. legalMove = true;
  4835. }
  4836. if(rightFiveLegal){
  4837. if(mouseSquareX == rightFiveX && mouseSquareY == rightFiveY){
  4838. legalMove = true;
  4839. }
  4840. if(rightSixLegal){
  4841. if(mouseSquareX == rightSixX && mouseSquareY == rightSixY){
  4842. legalMove = true;
  4843. }
  4844. if(rightSevenLegal){
  4845. if(mouseSquareX == rightSevenX && mouseSquareY == rightSevenY){
  4846. legalMove = true;
  4847. }
  4848. }
  4849. }
  4850. }
  4851. }
  4852. }
  4853. }
  4854. }
  4855. if(downOneLegal){
  4856. if(mouseSquareX == downOneX && mouseSquareY == downOneY){
  4857. legalMove = true;
  4858. }
  4859. if(downTwoLegal){
  4860. if(mouseSquareX == downTwoX && mouseSquareY == downTwoY){
  4861. legalMove = true;
  4862. }
  4863. if(downThreeLegal){
  4864. if(mouseSquareX == downThreeX && mouseSquareY == downThreeY){
  4865. legalMove = true;
  4866. }
  4867. if(downFourLegal){
  4868. if(mouseSquareX == downFourX && mouseSquareY == downFourY){
  4869. legalMove = true;
  4870. }
  4871. if(downFiveLegal){
  4872. if(mouseSquareX == downFiveX && mouseSquareY == downFiveY){
  4873. legalMove = true;
  4874. }
  4875. if(downSixLegal){
  4876. if(mouseSquareX == downSixX && mouseSquareY == downSixY){
  4877. legalMove = true;
  4878. }
  4879. if(downSevenLegal){
  4880. if(mouseSquareX == downSevenX && mouseSquareY == downSevenY){
  4881. legalMove = true;
  4882. }
  4883. }
  4884. }
  4885. }
  4886. }
  4887. }
  4888. }
  4889. }
  4890. if(upOneLegal){
  4891. if(mouseSquareX == upOneX && mouseSquareY == upOneY){
  4892. legalMove = true;
  4893. }
  4894. if(upTwoLegal){
  4895. if(mouseSquareX == upTwoX && mouseSquareY == upTwoY){
  4896. legalMove = true;
  4897. }
  4898. if(upThreeLegal){
  4899. if(mouseSquareX == upThreeX && mouseSquareY == upThreeY){
  4900. legalMove = true;
  4901. }
  4902. if(upFourLegal){
  4903. if(mouseSquareX == upFourX && mouseSquareY == upFourY){
  4904. legalMove = true;
  4905. }
  4906. if(upFiveLegal){
  4907. if(mouseSquareX == upFiveX && mouseSquareY == upFiveY){
  4908. legalMove = true;
  4909. }
  4910. if(upSixLegal){
  4911. if(mouseSquareX == upSixX && mouseSquareY == upSixY){
  4912. legalMove = true;
  4913. }
  4914. if(upSevenLegal){
  4915. if(mouseSquareX == upSevenX && mouseSquareY == upSevenY){
  4916. legalMove = true;
  4917. }
  4918. }
  4919. }
  4920. }
  4921. }
  4922. }
  4923. }
  4924. }
  4925.  
  4926. if(prevSqX - 1 >= 0 && prevSqY - 1 >= 0){
  4927. oneTLLegal = true;
  4928. oneTLX = prevSqX - 1;
  4929. oneTLY = prevSqY - 1;
  4930. if(prevSqX - 2 >= 0 && prevSqY - 2 >= 0){
  4931. twoTLLegal = true;
  4932. twoTLX = prevSqX - 2;
  4933. twoTLY = prevSqY - 2;
  4934. if(prevSqX - 3 >= 0 && prevSqY - 3 >= 0){
  4935. threeTLLegal = true;
  4936. threeTLX = prevSqX - 3;
  4937. threeTLY = prevSqY - 3;
  4938. if(prevSqX - 4 >= 0 && prevSqY - 4 >= 0){
  4939. fourTLLegal = true;
  4940. fourTLX = prevSqX - 4;
  4941. fourTLY = prevSqY - 4;
  4942. if(prevSqX - 5 >= 0 && prevSqY - 5 >= 0){
  4943. fiveTLLegal = true;
  4944. fiveTLX = prevSqX - 5;
  4945. fiveTLY = prevSqY - 5;
  4946. if(prevSqX - 6 >= 0 && prevSqY - 6 >= 0){
  4947. sixTLLegal = true;
  4948. sixTLX = prevSqX - 6;
  4949. sixTLY = prevSqY - 6;
  4950. if(prevSqX - 7 >= 0 && prevSqY - 7 >= 0){
  4951. sevenTLLegal = true;
  4952. sevenTLX = prevSqX - 7;
  4953. sevenTLY = prevSqY - 7;
  4954. }
  4955. }
  4956. }
  4957. }
  4958. }
  4959. }
  4960. }
  4961. if(prevSqX + 1 >= 0 && prevSqY - 1 >= 0){
  4962. oneTRLegal = true;
  4963. oneTRX = prevSqX + 1;
  4964. oneTRY = prevSqY - 1;
  4965. if(prevSqX + 2 >= 0 && prevSqY - 2 >= 0){
  4966. twoTRLegal = true;
  4967. twoTRX = prevSqX + 2;
  4968. twoTRY = prevSqY - 2;
  4969. if(prevSqX + 3 >= 0 && prevSqY - 3 >= 0){
  4970. threeTRLegal = true;
  4971. threeTRX = prevSqX + 3;
  4972. threeTRY = prevSqY - 3;
  4973. if(prevSqX + 4 >= 0 && prevSqY - 4 >= 0){
  4974. fourTRLegal = true;
  4975. fourTRX = prevSqX + 4;
  4976. fourTRY = prevSqY - 4;
  4977. if(prevSqX + 5 >= 0 && prevSqY - 5 >= 0){
  4978. fiveTRLegal = true;
  4979. fiveTRX = prevSqX + 5;
  4980. fiveTRY = prevSqY - 5;
  4981. if(prevSqX + 6 >= 0 && prevSqY - 6 >= 0){
  4982. sixTRLegal = true;
  4983. sixTRX = prevSqX + 6;
  4984. sixTRY = prevSqY - 6;
  4985. if(prevSqX + 7 >= 0 && prevSqY - 7 >= 0){
  4986. sevenTRLegal = true;
  4987. sevenTRX = prevSqX + 7;
  4988. sevenTRY = prevSqY - 7;
  4989. }
  4990. }
  4991. }
  4992. }
  4993. }
  4994. }
  4995. }
  4996. if(prevSqX - 1 >= 0 && prevSqY + 1 >= 0){
  4997. oneBLLegal = true;
  4998. oneBLX = prevSqX - 1;
  4999. oneBLY = prevSqY + 1;
  5000. if(prevSqX - 2 >= 0 && prevSqY + 2 >= 0){
  5001. twoBLLegal = true;
  5002. twoBLX = prevSqX - 2;
  5003. twoBLY = prevSqY + 2;
  5004. if(prevSqX - 3 >= 0 && prevSqY + 3 >= 0){
  5005. threeBLLegal = true;
  5006. threeBLX = prevSqX - 3;
  5007. threeBLY = prevSqY + 3;
  5008. if(prevSqX - 4 >= 0 && prevSqY + 4 >= 0){
  5009. fourBLLegal = true;
  5010. fourBLX = prevSqX - 4;
  5011. fourBLY = prevSqY + 4;
  5012. if(prevSqX - 5 >= 0 && prevSqY + 5 >= 0){
  5013. fiveBLLegal = true;
  5014. fiveBLX = prevSqX - 5;
  5015. fiveBLY = prevSqY + 5;
  5016. if(prevSqX - 6 >= 0 && prevSqY + 6 >= 0){
  5017. sixBLLegal = true;
  5018. sixBLX = prevSqX - 6;
  5019. sixBLY = prevSqY + 6;
  5020. if(prevSqX - 7 >= 0 && prevSqY + 7 >= 0){
  5021. sevenBLLegal = true;
  5022. sevenBLX = prevSqX - 7;
  5023. sevenBLY = prevSqY + 7;
  5024. }
  5025. }
  5026. }
  5027. }
  5028. }
  5029. }
  5030. }
  5031. if(prevSqX + 1 >= 0 && prevSqY + 1 >= 0){
  5032. oneBRLegal = true;
  5033. oneBRX = prevSqX + 1;
  5034. oneBRY = prevSqY + 1;
  5035. if(prevSqX + 2 >= 0 && prevSqY + 2 >= 0){
  5036. twoBRLegal = true;
  5037. twoBRX = prevSqX + 2;
  5038. twoBRY = prevSqY + 2;
  5039. if(prevSqX + 3 >= 0 && prevSqY + 3 >= 0){
  5040. threeBRLegal = true;
  5041. threeBRX = prevSqX + 3;
  5042. threeBRY = prevSqY + 3;
  5043. if(prevSqX + 4 >= 0 && prevSqY + 4 >= 0){
  5044. fourBRLegal = true;
  5045. fourBRX = prevSqX + 4;
  5046. fourBRY = prevSqY + 4;
  5047. if(prevSqX + 5 >= 0 && prevSqY + 5 >= 0){
  5048. fiveBRLegal = true;
  5049. fiveBRX = prevSqX + 5;
  5050. fiveBRY = prevSqY + 5;
  5051. if(prevSqX + 6 >= 0 && prevSqY + 6 >= 0){
  5052. sixBRLegal = true;
  5053. sixBRX = prevSqX + 6;
  5054. sixBRY = prevSqY + 6;
  5055. if(prevSqX + 7 >= 0 && prevSqY + 7 >= 0){
  5056. sevenBRLegal = true;
  5057. sevenBRX = prevSqX + 7;
  5058. sevenBRY = prevSqY + 7;
  5059. }
  5060. }
  5061. }
  5062. }
  5063. }
  5064. }
  5065. }
  5066.  
  5067. if(oneTLLegal){
  5068. if(mouseSquareX == oneTLX && mouseSquareY == oneTLY){
  5069. legalMove = true;
  5070. }
  5071. if(twoTLLegal){
  5072. if(mouseSquareX == twoTLX && mouseSquareY == twoTLY){
  5073. legalMove = true;
  5074. }
  5075. if(threeTLLegal){
  5076. if(mouseSquareX == threeTLX && mouseSquareY == threeTLY){
  5077. legalMove = true;
  5078. }
  5079. if(fourTLLegal){
  5080. if(mouseSquareX == fourTLX && mouseSquareY == fourTLY){
  5081. legalMove = true;
  5082. }
  5083. if(fiveTLLegal){
  5084. if(mouseSquareX == fiveTLX && mouseSquareY == fiveTLY){
  5085. legalMove = true;
  5086. }
  5087. if(sixTLLegal){
  5088. if(mouseSquareX == sixTLX && mouseSquareY == sixTLY){
  5089. legalMove = true;
  5090. }
  5091. if(sevenTLLegal){
  5092. if(mouseSquareX == sevenTLX && mouseSquareY == sevenTLY){
  5093. legalMove = true;
  5094. }
  5095. }
  5096. }
  5097. }
  5098. }
  5099. }
  5100. }
  5101. }
  5102. if(oneTRLegal){
  5103. if(mouseSquareX == oneTRX && mouseSquareY == oneTRY){
  5104. legalMove = true;
  5105. }
  5106. if(twoTRLegal){
  5107. if(mouseSquareX == twoTRX && mouseSquareY == twoTRY){
  5108. legalMove = true;
  5109. }
  5110. if(threeTRLegal){
  5111. if(mouseSquareX == threeTRX && mouseSquareY == threeTRY){
  5112. legalMove = true;
  5113. }
  5114. if(fourTRLegal){
  5115. if(mouseSquareX == fourTRX && mouseSquareY == fourTRY){
  5116. legalMove = true;
  5117. }
  5118. if(fiveTRLegal){
  5119. if(mouseSquareX == fiveTRX && mouseSquareY == fiveTRY){
  5120. legalMove = true;
  5121. }
  5122. if(sixTRLegal){
  5123. if(mouseSquareX == sixTRX && mouseSquareY == sixTRY){
  5124. legalMove = true;
  5125. }
  5126. if(sevenTRLegal){
  5127. if(mouseSquareX == sevenTRX && mouseSquareY == sevenTRY){
  5128. legalMove = true;
  5129. }
  5130. }
  5131. }
  5132. }
  5133. }
  5134. }
  5135. }
  5136. }
  5137. if(oneBLLegal){
  5138. if(mouseSquareX == oneBLX && mouseSquareY == oneBLY){
  5139. legalMove = true;
  5140. }
  5141. if(twoBLLegal){
  5142. if(mouseSquareX == twoBLX && mouseSquareY == twoBLY){
  5143. legalMove = true;
  5144. }
  5145. if(threeBLLegal){
  5146. if(mouseSquareX == threeBLX && mouseSquareY == threeBLY){
  5147. legalMove = true;
  5148. }
  5149. if(fourBLLegal){
  5150. if(mouseSquareX == fourBLX && mouseSquareY == fourBLY){
  5151. legalMove = true;
  5152. }
  5153. if(fiveBLLegal){
  5154. if(mouseSquareX == fiveBLX && mouseSquareY == fiveBLY){
  5155. legalMove = true;
  5156. }
  5157. if(sixBLLegal){
  5158. if(mouseSquareX == sixBLX && mouseSquareY == sixBLY){
  5159. legalMove = true;
  5160. }
  5161. if(sevenBLLegal){
  5162. if(mouseSquareX == sevenBLX && mouseSquareY == sevenBLY){
  5163. legalMove = true;
  5164. }
  5165. }
  5166. }
  5167. }
  5168. }
  5169. }
  5170. }
  5171. }
  5172. if(oneBRLegal){
  5173. if(mouseSquareX == oneBRX && mouseSquareY == oneBRY){
  5174. legalMove = true;
  5175. }
  5176. if(twoBRLegal){
  5177. if(mouseSquareX == twoBRX && mouseSquareY == twoBRY){
  5178. legalMove = true;
  5179. }
  5180. if(threeBRLegal){
  5181. if(mouseSquareX == threeBRX && mouseSquareY == threeBRY){
  5182. legalMove = true;
  5183. }
  5184. if(fourBRLegal){
  5185. if(mouseSquareX == fourBRX && mouseSquareY == fourBRY){
  5186. legalMove = true;
  5187. }
  5188. if(fiveBRLegal){
  5189. if(mouseSquareX == fiveBRX && mouseSquareY == fiveBRY){
  5190. legalMove = true;
  5191. }
  5192. if(sixBRLegal){
  5193. if(mouseSquareX == sixBRX && mouseSquareY == sixBRY){
  5194. legalMove = true;
  5195. }
  5196. if(sevenBRLegal){
  5197. if(mouseSquareX == sevenBRX && mouseSquareY == sevenBRY){
  5198. legalMove = true;
  5199. }
  5200. }
  5201. }
  5202. }
  5203. }
  5204. }
  5205. }
  5206. }
  5207.  
  5208. if(legalMove){
  5209. pickedPiece.setPosition((mouseSquareX * 8 + 1) * squareDim / 8,(mouseSquareY * 8 + 1) * squareDim / 8);
  5210. pickedPiece = null;
  5211. piecePicked = false;
  5212. piecesOnBoard.set(mouseSquareX,mouseSquareY,whiteQueen);
  5213.  
  5214. prevSqX = Math.floor(prevX / squareDim);
  5215. prevSqY = Math.floor(prevY / squareDim);
  5216.  
  5217. piecesOnBoard.set(prevSqX,prevSqY, null);
  5218.  
  5219. whiteToMove = false;
  5220. toMoveSquare.setColor(Color.black);
  5221. legalMove = false;
  5222. } else {
  5223. pickedPiece.setPosition(prevX,prevY);
  5224. pickedPiece = null;
  5225. piecePicked = false;
  5226. }
  5227. }
  5228.  
  5229. function mmk(){
  5230. prevX = (mouseSquareX * 8 + 1) * squareDim / 8;
  5231. prevY = (mouseSquareY * 8 + 1) * squareDim / 8;
  5232. piecePicked = true;
  5233. }
  5234.  
  5235. function movePickedPiece(e){
  5236. mouseX = e.getX();
  5237. mouseY = e.getY();
  5238.  
  5239. mouseSquareX = Math.floor(mouseX / squareDim);
  5240.  
  5241. if(piecePicked){
  5242. if(mouseY <= width){
  5243. mouseSquareY = Math.floor(mouseY / squareDim);
  5244. } else {
  5245. mouseSquareY = -1;
  5246. }
  5247. }
  5248.  
  5249. if(pickedPiece == null){
  5250. //okay??
  5251. } else {
  5252. if(piecePicked){
  5253. if(mouseY < width){
  5254. pickedPiece.setPosition(mouseX - pieceDim / 2, mouseY - pieceDim / 2);
  5255. }
  5256. }
  5257. }
  5258. }
Advertisement
Add Comment
Please, Sign In to add comment