T6.神経衰弱

T6.神経衰弱

問題1.

トランプ52枚をシャッフルして任意の位置の札を2枚取り出し、同じ数字かどうかを判定するプログラムを作成してください。

【仕様】
1.ソート済みの配列をシャッフルするクラスを作成する(Shuffle.java)
  ・シャッフルのアルゴリズムは以下に示す
2.トランプ52枚に相当する整数値を札の名前付き、かつ11=J,12=Q,13=K,1=Aのトランプ形式で表示し、選択された2枚のカードの値が同じかどうか判定するクラスを作成する(Card.java)
  ・トランプ形式の出力メソッドは以下に示す
  ・カードの判定は2枚が同じときtrue,違うときはfalseを返す
3.実行クラスでは以下の整数値による整列されたトランプの値を配列で宣言し、これをシャッフルしたのちカードを2枚選択して同じ数値かどうか結果を出力する(ShuffleCardMain.java)
  ・整数値の100番台はハートとする
  ・整数値の200番台はダイヤとする
  ・整数値の300番台はスペードとする
  ・整数値の400番台はクローバとする
  ・カードの選択位置は1番から52番までの数字とする

【クラス図】
--------------------------------------
クラス名 
Shuffle
--------------------------------------
フィールド定義
--------------------------------------
メソッド定義
+Shuffle(array:int[]):
+printArray(array:int[]):void
--------------------------------------
#:protected
-:private
+:public

【クラス図】
--------------------------------------
クラス名 
Card
--------------------------------------
フィールド定義
--------------------------------------
メソッド定義
+printArrayCard(card:int[]):void
+printCard(card:int[],i:int):void
+pairCheck(card:int[],s1:int,s2:int):boolean
--------------------------------------
#:protected
-:private
+:public


【出力のメソッド】
public void printArrayCard(int card[]){  //配列全体
    for(int i = 0;i < card.length;i++){
        System.out.printf("%d枚目:",i+1);
        if(card[i]/100==1){
            if(card[i]%100==1)System.out.printf("ハートA\n");
            else if(card[i]%100==11)System.out.printf("ハートJ\n");
            else if(card[i]%100==12)System.out.printf("ハートQ\n");
            else if(card[i]%100==13)System.out.printf("ハートK\n");
            else System.out.printf("ハート%d\n",card[i]%100);
        }
        if(card[i]/100==2){
            if(card[i]%100==1)System.out.printf("ダイヤA\n");
            else if(card[i]%100==11)System.out.printf("ダイヤJ\n");
            else if(card[i]%100==12)System.out.printf("ダイヤQ\n");
            else if(card[i]%100==13)System.out.printf("ダイヤK\n");
            else System.out.printf("ダイヤ%d\n",card[i]%100);
        }
        if(card[i]/100==3){
            if(card[i]%100==1)System.out.printf("スペードA\n");
            else if(card[i]%100==11)System.out.printf("スペードJ\n");
            else if(card[i]%100==12)System.out.printf("スペードQ\n");
            else if(card[i]%100==13)System.out.printf("スペードK\n");
            else System.out.printf("スペード%d\n",card[i]%100);
        }
        if(card[i]/100==4){
            if(card[i]%100==1)System.out.printf("クローバA\n");
            else if(card[i]%100==11)System.out.printf("クローバJ\n");
            else if(card[i]%100==12)System.out.printf("クローバQ\n");
            else if(card[i]%100==13)System.out.printf("クローバK\n");
            else System.out.printf("クローバ%d\n",card[i]%100);
        }
    }
    System.out.printf("\n");
}
public void printCard(int card[],int i){   //任意の位置のカードのみ選択
        if(card[i]/100==1){
            if(card[i]%100==1)System.out.printf("ハートA\n");
            else if(card[i]%100==11)System.out.printf("ハートJ\n");
            else if(card[i]%100==12)System.out.printf("ハートQ\n");
            else if(card[i]%100==13)System.out.printf("ハートK\n");
            else System.out.printf("ハート%d\n",card[i]%100);
        }
        if(card[i]/100==2){
            if(card[i]%100==1)System.out.printf("ダイヤA\n");
            else if(card[i]%100==11)System.out.printf("ダイヤJ\n");
            else if(card[i]%100==12)System.out.printf("ダイヤQ\n");
            else if(card[i]%100==13)System.out.printf("ダイヤK\n");
            else System.out.printf("ダイヤ%d\n",card[i]%100);
        }
        if(card[i]/100==3){
            if(card[i]%100==1)System.out.printf("スペードA\n");
            else if(card[i]%100==11)System.out.printf("スペードJ\n");
            else if(card[i]%100==12)System.out.printf("スペードQ\n");
            else if(card[i]%100==13)System.out.printf("スペードK\n");
            else System.out.printf("スペード%d\n ",card[i]%100);
        }
        if(card[i]/100==4){
            if(card[i]%100==1)System.out.printf("クローバA\n ");
            else if(card[i]%100==11)System.out.printf("クローバJ\n");
            else if(card[i]%100==12)System.out.printf("クローバQ\n");
            else if(card[i]%100==13)System.out.printf("クローバK\n");
            else System.out.printf("クローバ%d\n",card[i]%100);
        }
}


【シャッフルのアルゴリズム】


【実行メソッド】


【実行結果】



問題2.

同じ数値のカードが出るまで、繰り返すようmainプログラムを変更してください。