📄 jcmovelistgenerator.java
字号:
if ( pieces == 0 ) return true; } return true; } /************************************************************************** * STATIC BLOCK *************************************************************************/ // Pre-processed data structures containing all possible moves from all // possible squares, by piece type private static int KnightMoves[][]; private static int KingMoves[][]; private static int BishopMoves[][][]; private static int RookMoves[][][]; static { // Define the KnightMoves data structure; KnightMoves = new int[ 64 ][]; KnightMoves[ 0 ] = new int[ 2 ]; KnightMoves[ 0 ][ 0 ] = 10; KnightMoves[ 0 ][ 1 ] = 17; KnightMoves[ 1 ] = new int[ 3 ]; KnightMoves[ 1 ][ 0 ] = 16; KnightMoves[ 1 ][ 1 ] = 18; KnightMoves[ 1 ][ 2 ] = 11; KnightMoves[ 2 ] = new int[ 4 ]; KnightMoves[ 2 ][ 0 ] = 8; KnightMoves[ 2 ][ 1 ] = 12; KnightMoves[ 2 ][ 2 ] = 17; KnightMoves[ 2 ][ 3 ] = 19; KnightMoves[ 3 ] = new int[ 4 ]; KnightMoves[ 3 ][ 0 ] = 9; KnightMoves[ 3 ][ 1 ] = 13; KnightMoves[ 3 ][ 2 ] = 18; KnightMoves[ 3 ][ 3 ] = 20; KnightMoves[ 4 ] = new int[ 4 ]; KnightMoves[ 4 ][ 0 ] = 10; KnightMoves[ 4 ][ 1 ] = 14; KnightMoves[ 4 ][ 2 ] = 21; KnightMoves[ 4 ][ 3 ] = 19; KnightMoves[ 5 ] = new int[ 4 ]; KnightMoves[ 5 ][ 0 ] = 11; KnightMoves[ 5 ][ 1 ] = 15; KnightMoves[ 5 ][ 2 ] = 22; KnightMoves[ 5 ][ 3 ] = 20; KnightMoves[ 6 ] = new int[ 3 ]; KnightMoves[ 6 ][ 0 ] = 12; KnightMoves[ 6 ][ 1 ] = 21; KnightMoves[ 6 ][ 2 ] = 23; KnightMoves[ 7 ] = new int[ 2 ]; KnightMoves[ 7 ][ 0 ] = 13; KnightMoves[ 7 ][ 1 ] = 22; KnightMoves[ 8 ] = new int[ 3 ]; KnightMoves[ 8 ][ 0 ] = 2; KnightMoves[ 8 ][ 1 ] = 18; KnightMoves[ 8 ][ 2 ] = 25; KnightMoves[ 9 ] = new int[ 4 ]; KnightMoves[ 9 ][ 0 ] = 3; KnightMoves[ 9 ][ 1 ] = 19; KnightMoves[ 9 ][ 2 ] = 24; KnightMoves[ 9 ][ 3 ] = 26; KnightMoves[ 10 ] = new int[ 6 ]; KnightMoves[ 10 ][ 0 ] = 0; KnightMoves[ 10 ][ 1 ] = 4; KnightMoves[ 10 ][ 2 ] = 20; KnightMoves[ 10 ][ 3 ] = 27; KnightMoves[ 10 ][ 4 ] = 25; KnightMoves[ 10 ][ 5 ] = 16; KnightMoves[ 11 ] = new int[ 6 ]; KnightMoves[ 11 ][ 0 ] = 1; KnightMoves[ 11 ][ 1 ] = 5; KnightMoves[ 11 ][ 2 ] = 21; KnightMoves[ 11 ][ 3 ] = 28; KnightMoves[ 11 ][ 4 ] = 26; KnightMoves[ 11 ][ 5 ] = 17; KnightMoves[ 12 ] = new int[ 6 ]; KnightMoves[ 12 ][ 0 ] = 2; KnightMoves[ 12 ][ 1 ] = 6; KnightMoves[ 12 ][ 2 ] = 22; KnightMoves[ 12 ][ 3 ] = 29; KnightMoves[ 12 ][ 4 ] = 27; KnightMoves[ 12 ][ 5 ] = 18; KnightMoves[ 13 ] = new int[ 6 ]; KnightMoves[ 13 ][ 0 ] = 3; KnightMoves[ 13 ][ 1 ] = 7; KnightMoves[ 13 ][ 2 ] = 23; KnightMoves[ 13 ][ 3 ] = 30; KnightMoves[ 13 ][ 4 ] = 28; KnightMoves[ 13 ][ 5 ] = 19; KnightMoves[ 14 ] = new int[ 4 ]; KnightMoves[ 14 ][ 0 ] = 31; KnightMoves[ 14 ][ 1 ] = 29; KnightMoves[ 14 ][ 2 ] = 20; KnightMoves[ 14 ][ 3 ] = 4; KnightMoves[ 15 ] = new int[ 3 ]; KnightMoves[ 15 ][ 0 ] = 5; KnightMoves[ 15 ][ 1 ] = 21; KnightMoves[ 15 ][ 2 ] = 30; KnightMoves[ 16 ] = new int[ 4 ]; KnightMoves[ 16 ][ 0 ] = 1; KnightMoves[ 16 ][ 1 ] = 10; KnightMoves[ 16 ][ 2 ] = 26; KnightMoves[ 16 ][ 3 ] = 33; KnightMoves[ 17 ] = new int[ 6 ]; KnightMoves[ 17 ][ 0 ] = 0; KnightMoves[ 17 ][ 1 ] = 2; KnightMoves[ 17 ][ 2 ] = 11; KnightMoves[ 17 ][ 3 ] = 27; KnightMoves[ 17 ][ 4 ] = 34; KnightMoves[ 17 ][ 5 ] = 32; KnightMoves[ 18 ] = new int[ 8 ]; KnightMoves[ 18 ][ 0 ] = 1; KnightMoves[ 18 ][ 1 ] = 3; KnightMoves[ 18 ][ 2 ] = 12; KnightMoves[ 18 ][ 3 ] = 28; KnightMoves[ 18 ][ 4 ] = 35; KnightMoves[ 18 ][ 5 ] = 33; KnightMoves[ 18 ][ 6 ] = 24; KnightMoves[ 18 ][ 7 ] = 8; KnightMoves[ 19 ] = new int[ 8 ]; KnightMoves[ 19 ][ 0 ] = 2; KnightMoves[ 19 ][ 1 ] = 4; KnightMoves[ 19 ][ 2 ] = 13; KnightMoves[ 19 ][ 3 ] = 29; KnightMoves[ 19 ][ 4 ] = 36; KnightMoves[ 19 ][ 5 ] = 34; KnightMoves[ 19 ][ 6 ] = 25; KnightMoves[ 19 ][ 7 ] = 9; KnightMoves[ 20 ] = new int[ 8 ]; KnightMoves[ 20 ][ 0 ] = 3; KnightMoves[ 20 ][ 1 ] = 5; KnightMoves[ 20 ][ 2 ] = 14; KnightMoves[ 20 ][ 3 ] = 30; KnightMoves[ 20 ][ 4 ] = 37; KnightMoves[ 20 ][ 5 ] = 35; KnightMoves[ 20 ][ 6 ] = 26; KnightMoves[ 20 ][ 7 ] = 10; KnightMoves[ 21 ] = new int[ 8 ]; KnightMoves[ 21 ][ 0 ] = 4; KnightMoves[ 21 ][ 1 ] = 6; KnightMoves[ 21 ][ 2 ] = 15; KnightMoves[ 21 ][ 3 ] = 31; KnightMoves[ 21 ][ 4 ] = 38; KnightMoves[ 21 ][ 5 ] = 36; KnightMoves[ 21 ][ 6 ] = 27; KnightMoves[ 21 ][ 7 ] = 11; KnightMoves[ 22 ] = new int[ 6 ]; KnightMoves[ 22 ][ 0 ] = 5; KnightMoves[ 22 ][ 1 ] = 7; KnightMoves[ 22 ][ 2 ] = 39; KnightMoves[ 22 ][ 3 ] = 37; KnightMoves[ 22 ][ 4 ] = 28; KnightMoves[ 22 ][ 5 ] = 12; KnightMoves[ 23 ] = new int[ 4 ]; KnightMoves[ 23 ][ 0 ] = 6; KnightMoves[ 23 ][ 1 ] = 38; KnightMoves[ 23 ][ 2 ] = 29; KnightMoves[ 23 ][ 3 ] = 13; KnightMoves[ 24 ] = new int[ 4 ]; KnightMoves[ 24 ][ 0 ] = 9; KnightMoves[ 24 ][ 1 ] = 18; KnightMoves[ 24 ][ 2 ] = 34; KnightMoves[ 24 ][ 3 ] = 41; KnightMoves[ 25 ] = new int[ 6 ]; KnightMoves[ 25 ][ 0 ] = 8; KnightMoves[ 25 ][ 1 ] = 10; KnightMoves[ 25 ][ 2 ] = 19; KnightMoves[ 25 ][ 3 ] = 35; KnightMoves[ 25 ][ 4 ] = 42; KnightMoves[ 25 ][ 5 ] = 40; KnightMoves[ 26 ] = new int[ 8 ]; KnightMoves[ 26 ][ 0 ] = 9; KnightMoves[ 26 ][ 1 ] = 11; KnightMoves[ 26 ][ 2 ] = 20; KnightMoves[ 26 ][ 3 ] = 36; KnightMoves[ 26 ][ 4 ] = 43; KnightMoves[ 26 ][ 5 ] = 41; KnightMoves[ 26 ][ 6 ] = 32; KnightMoves[ 26 ][ 7 ] = 16; KnightMoves[ 27 ] = new int[ 8 ]; KnightMoves[ 27 ][ 0 ] = 10; KnightMoves[ 27 ][ 1 ] = 12; KnightMoves[ 27 ][ 2 ] = 21; KnightMoves[ 27 ][ 3 ] = 37; KnightMoves[ 27 ][ 4 ] = 44; KnightMoves[ 27 ][ 5 ] = 42; KnightMoves[ 27 ][ 6 ] = 33; KnightMoves[ 27 ][ 7 ] = 17; KnightMoves[ 28 ] = new int[ 8 ]; KnightMoves[ 28 ][ 0 ] = 11; KnightMoves[ 28 ][ 1 ] = 13; KnightMoves[ 28 ][ 2 ] = 22; KnightMoves[ 28 ][ 3 ] = 38; KnightMoves[ 28 ][ 4 ] = 45; KnightMoves[ 28 ][ 5 ] = 43; KnightMoves[ 28 ][ 6 ] = 34; KnightMoves[ 28 ][ 7 ] = 18; KnightMoves[ 29 ] = new int[ 8 ]; KnightMoves[ 29 ][ 0 ] = 12; KnightMoves[ 29 ][ 1 ] = 14; KnightMoves[ 29 ][ 2 ] = 23; KnightMoves[ 29 ][ 3 ] = 39; KnightMoves[ 29 ][ 4 ] = 46; KnightMoves[ 29 ][ 5 ] = 44; KnightMoves[ 29 ][ 6 ] = 35; KnightMoves[ 29 ][ 7 ] = 19; KnightMoves[ 30 ] = new int[ 6 ]; KnightMoves[ 30 ][ 0 ] = 13; KnightMoves[ 30 ][ 1 ] = 15; KnightMoves[ 30 ][ 2 ] = 47; KnightMoves[ 30 ][ 3 ] = 45; KnightMoves[ 30 ][ 4 ] = 36; KnightMoves[ 30 ][ 5 ] = 20; KnightMoves[ 31 ] = new int[ 4 ]; KnightMoves[ 31 ][ 0 ] = 14; KnightMoves[ 31 ][ 1 ] = 46; KnightMoves[ 31 ][ 2 ] = 37; KnightMoves[ 31 ][ 3 ] = 21; KnightMoves[ 32 ] = new int[ 4 ]; KnightMoves[ 32 ][ 0 ] = 17; KnightMoves[ 32 ][ 1 ] = 26; KnightMoves[ 32 ][ 2 ] = 42; KnightMoves[ 32 ][ 3 ] = 49; KnightMoves[ 33 ] = new int[ 6 ]; KnightMoves[ 33 ][ 0 ] = 16; KnightMoves[ 33 ][ 1 ] = 18; KnightMoves[ 33 ][ 2 ] = 27; KnightMoves[ 33 ][ 3 ] = 43; KnightMoves[ 33 ][ 4 ] = 50; KnightMoves[ 33 ][ 5 ] = 48; KnightMoves[ 34 ] = new int[ 8 ]; KnightMoves[ 34 ][ 0 ] = 17; KnightMoves[ 34 ][ 1 ] = 19; KnightMoves[ 34 ][ 2 ] = 28; KnightMoves[ 34 ][ 3 ] = 44; KnightMoves[ 34 ][ 4 ] = 51; KnightMoves[ 34 ][ 5 ] = 49; KnightMoves[ 34 ][ 6 ] = 40; KnightMoves[ 34 ][ 7 ] = 24; KnightMoves[ 35 ] = new int[ 8 ]; KnightMoves[ 35 ][ 0 ] = 18; KnightMoves[ 35 ][ 1 ] = 20; KnightMoves[ 35 ][ 2 ] = 29; KnightMoves[ 35 ][ 3 ] = 45; KnightMoves[ 35 ][ 4 ] = 52; KnightMoves[ 35 ][ 5 ] = 50; KnightMoves[ 35 ][ 6 ] = 41; KnightMoves[ 35 ][ 7 ] = 25; KnightMoves[ 36 ] = new int[ 8 ]; KnightMoves[ 36 ][ 0 ] = 19; KnightMoves[ 36 ][ 1 ] = 21; KnightMoves[ 36 ][ 2 ] = 30; KnightMoves[ 36 ][ 3 ] = 46; KnightMoves[ 36 ][ 4 ] = 53; KnightMoves[ 36 ][ 5 ] = 51; KnightMoves[ 36 ][ 6 ] = 42; KnightMoves[ 36 ][ 7 ] = 26; KnightMoves[ 37 ] = new int[ 8 ]; KnightMoves[ 37 ][ 0 ] = 20; KnightMoves[ 37 ][ 1 ] = 22; KnightMoves[ 37 ][ 2 ] = 31; KnightMoves[ 37 ][ 3 ] = 47; KnightMoves[ 37 ][ 4 ] = 54; KnightMoves[ 37 ][ 5 ] = 52; KnightMoves[ 37 ][ 6 ] = 43; KnightMoves[ 37 ][ 7 ] = 27; KnightMoves[ 38 ] = new int[ 6 ]; KnightMoves[ 38 ][ 0 ] = 21; KnightMoves[ 38 ][ 1 ] = 23; KnightMoves[ 38 ][ 2 ] = 55; KnightMoves[ 38 ][ 3 ] = 53; KnightMoves[ 38 ][ 4 ] = 44; KnightMoves[ 38 ][ 5 ] = 28; KnightMoves[ 39 ] = new int[ 4 ]; KnightMoves[ 39 ][ 0 ] = 22; KnightMoves[ 39 ][ 1 ] = 54; KnightMoves[ 39 ][ 2 ] = 45; KnightMoves[ 39 ][ 3 ] = 29; KnightMoves[ 40 ] = new int[ 4 ]; KnightMoves[ 40 ][ 0 ] = 25; KnightMoves[ 40 ][ 1 ] = 34; KnightMoves[ 40 ][ 2 ] = 50; KnightMoves[ 40 ][ 3 ] = 57; KnightMoves[ 41 ] = new int[ 6 ]; KnightMoves[ 41 ][ 0 ] = 26; KnightMoves[ 41 ][ 1 ] = 24; KnightMoves[ 41 ][ 2 ] = 35; KnightMoves[ 41 ][ 3 ] = 51; KnightMoves[ 41 ][ 4 ] = 58; KnightMoves[ 41 ][ 5 ] = 56; KnightMoves[ 42 ] = new int[ 8 ]; KnightMoves[ 42 ][ 0 ] = 25; KnightMoves[ 42 ][ 1 ] = 27; KnightMoves[ 42 ][ 2 ] = 36; KnightMoves[ 42 ][ 3 ] = 52; KnightMoves[ 42 ][ 4 ] = 59; KnightMoves[ 42 ][ 5 ] = 57; KnightMoves[ 42 ][ 6 ] = 48; KnightMoves[ 42 ][ 7 ] = 32; KnightMoves[ 43 ] = new int[ 8 ]; KnightMoves[ 43 ][ 0 ] = 26; KnightMoves[ 43 ][ 1 ] = 28; KnightMoves[ 43 ][ 2 ] = 37; KnightMoves[ 43 ][ 3 ] = 53; KnightMoves[ 43 ][ 4 ] = 60; KnightMoves[ 43 ][ 5 ] = 58; KnightMoves[ 43 ][ 6 ] = 49; KnightMoves[ 43 ][ 7 ] = 33; KnightMoves[ 44 ] = new int[ 8 ]; KnightMoves[ 44 ][ 0 ] = 27; KnightMoves[ 44 ][ 1 ] = 29; KnightMoves[ 44 ][ 2 ] = 38; KnightMoves[ 44 ][ 3 ] = 54; KnightMoves[ 44 ][ 4 ] = 61; KnightMoves[ 44 ][ 5 ] = 59; KnightMoves[ 44 ][ 6 ] = 50; KnightMoves[ 44 ][ 7 ] = 34; KnightMoves[ 45 ] = new int[ 8 ]; KnightMoves[ 45 ][ 0 ] = 28; KnightMoves[ 45 ][ 1 ] = 30; KnightMoves[ 45 ][ 2 ] = 39; KnightMoves[ 45 ][ 3 ] = 55; KnightMoves[ 45 ][ 4 ] = 62; KnightMoves[ 45 ][ 5 ] = 60; KnightMoves[ 45 ][ 6 ] = 51; KnightMoves[ 45 ][ 7 ] = 35; KnightMoves[ 46 ] = new int[ 6 ]; KnightMoves[ 46 ][ 0 ] = 29; KnightMoves[ 46 ][ 1 ] = 31; KnightMoves[ 46 ][ 2 ] = 63; KnightMoves[ 46 ][ 3 ] = 61; KnightMoves[ 46 ][ 4 ] = 52; KnightMoves[ 46 ][ 5 ] = 36; KnightMoves[ 47 ] = new int[ 4 ]; KnightMoves[ 47 ][ 0 ] = 30; KnightMoves[ 47 ][ 1 ] = 62; KnightMoves[ 47 ][ 2 ] = 53; KnightMoves[ 47 ][ 3 ] = 37; KnightMoves[ 48 ] = new int[ 3 ]; KnightMoves[ 48 ][ 0 ] = 33; KnightMoves[ 48 ][ 1 ] = 42; KnightMoves[ 48 ][ 2 ] = 58; KnightMoves[ 49 ] = new int[ 4 ]; KnightMoves[ 49 ][ 0 ] = 32; KnightMoves[ 49 ][ 1 ] = 34; KnightMoves[ 49 ][ 2 ] = 43; KnightMoves[ 49 ][ 3 ] = 59; KnightMoves[ 50 ] = new int[ 6 ]; KnightMoves[ 50 ][ 0 ] = 40; KnightMoves[
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -