⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jcmovelistgenerator.java

📁 这是自己在学习编写下象棋时参考过的很好的程序。
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
       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 + -