トランプトランプトランプアルゴリズム実現

2803 ワード

トランプトランプトランプアルゴリズムは将棋ゲームでよく使われる基礎アルゴリズムであり、ゲーム開発者のニーズでもある.
よく知られているベースアルゴリズムの一つです.このアルゴリズムの実装方法について説明します.以下を参照してください.
トランプとトランプのシミュレーション
まず、トランプの各カードに番号を設定します.次のアルゴリズムで実現される番号ルールは次のとおりです.
紅桃は小さい頃から大きい順に:1-13
ブロックは小さい順に14-26です.
黒桃は小さい頃から27-39の順だった.
梅の花は小さい頃から大きい順に:40-52
王さんは53、王さんは54
アルゴリズムは以下のように実現される.
まず、108個の数字を含む配列を上記の番号規則に従って初期化します.
この配列からランダムに1つの数字を抽出するたびに、プレイヤーデータを保存する配列に割り当てられます.
 
            :

import java.util.*;

/**

 *        

 *   : 2  ,   108 ,  4  , 8   

 */

public class Exec{

       public static void main(String[] args){

              //  108     

              int[] total = new int[108];

              //        

              int[][] player = new int[4][25];

              //          

              int leftNum = 108;

              //    

              int ranNumber;

              //    

              Random random = new Random();

              

              //     

              for(int i = 0;i < total.length;i++){

                     total[i] = (i + 1) % 54;

                     //       

                     if(total[i] == 0){

                            total[i] = 54;   

                     }

                            

              }

              

              //    

              for(int i = 0;i < 25;i++){

                     //      

                     for(int j = 0;j < player.length;j++){

                            //      

                            ranNumber = random.nextInt(leftNum);

                            //  

                            player[j][i] = total[ranNumber];

                            //        

                            total[ranNumber] = total[leftNum - 1];

                            //        1

                            leftNum--;      

                     }     

              }

              

              //          

              for(int i = 0;i < player.length;i++){

                     for(int j = 0;j < player[i].length;j++){

                            System.out.print("  " + player[i][j]);    

                     }

                     System.out.println();

              }

              //  

              for(int i = 0;i < 8;i++){

                     System.out.print("  " + total[i]);   

              }

              System.out.println();

       }

}

実行結果:
 
C:/java>java Exec
50 31 52 24 10 29 29 32 36 46 8 28 27 41 17 17 38 41 46 18 34 24 4 21 6
22 53 54 42 16 48 38 35 31 2 45 26 47 32 51 9 49 45 34 27 3 11 54 25 1
37 5 10 13 39 42 36 6 47 4 30 37 20 12 14 8 3 40 30 12 23 52 43 9 23
15 49 14 35 7 44 33 40 48 44 1 19 43 39 20 15 7 51 26 11 2 8 16 21 18 5
25 2 50 53 33 19 22 13