思想和上一篇的一样,改动了输出形式

实验结果:

JAVA斗地主模拟创牌,洗牌,发牌,个人排序的功能(2)_i++


JAVA斗地主模拟创牌,洗牌,发牌,个人排序的功能(2)_java_02


JAVA斗地主模拟创牌,洗牌,发牌,个人排序的功能(2)_i++_03


JAVA斗地主模拟创牌,洗牌,发牌,个人排序的功能(2)_i++_04


Card.cpp

//设置泛型<>类型约束

public class Card implements Comparable < Card > {  //泛型
private int number;
private int huase;
public int getNumber(){
return number;
}
public void setHuase(int huase){
this.huase=huase;
}
public int getHuase(){
return huase;
}
public void setNumber(int number){
this.number=number;
}
public String toString(){
if(number<=10){
if(huase== 1) return number+"-"+"黑桃";
else if(huase== 2) return number+"-"+"红心";
else if(huase== 3) return number+"-"+"方块";
else if(huase==4) return number+"-"+"梅花";
}
else if(number==13){
if(huase== 1 ) return "K-黑桃";
else if(huase==2) return "K-红心";
else if(huase==3) return "K-方块";
else if(huase== 4) return "k-梅花";
}
else if(number== 11){
if(huase==1 ) return "J-黑桃";
else if(huase== 2) return "J-红心";
else if(huase== 3) return "J-方块";
else if(huase== 4) return "J-梅花";
}
else if(number== 12){
if(huase == 1 ) return "Q-黑桃";
else if(huase == 2) return "Q-红心";
else if(huase == 3) return "Q-方块";
else if(huase == 4) return "Q-梅花";
}
else if(number== 14) return "小鬼";
else if(number== 15) return "大鬼";
return null;
}
public int compareTo(Card o) {
if (this.getNumber() < o.getNumber()) {
return 1;
} else if (this.getNumber() > o.getNumber())
return -1;
else if (this.getNumber() == o.getNumber()) {
if (this.getHuase() < o.getHuase()) return 1;
else if (this.getHuase() > o.getHuase()) return -1;
}
return 0;
}

}
Test2.java
import java.util.Arrays;
import java.util.Scanner;
public class Test2 {
public static Card[] createPocker(){//建牌
Card[] pokers =new Card[54];
Card temp;int n=0;
for(int i=0;i<13;i++) {
for (int j = 0; j <4; j++) {
temp = new Card();
temp.setNumber(i+1);
temp.setHuase(j+1);
pokers[n] = temp;
n++;
}
}
pokers[52]=new Card();
pokers[52].setNumber(14);
//pokers[52].setHuase(1);
pokers[53]=new Card();
pokers[53].setNumber(15);
//pokers[53].setHuase(2);
return pokers;
}

public static Card[] shufflePoker(Card[] pokers){//洗牌
int i,j;Card temp;
i=(int)Math.random()*54;
j=(int)Math.random()*54;
for(int q=0;q<1000;q++) {
temp=pokers[i];pokers[i]=pokers[j];pokers[j]=temp;
}
return pokers;
}

private static Card[][] fapai(Card[]pokers ) {//发牌
Card[][] results = new Card[3][18];
for (int i = 0; i < pokers.length; i++) {
if (i % 3 == 0) {
//第一个人
results[0][i / 3] = pokers[i];
} else if (i % 3 == 1) {
//第二个人
results[1][i / 3] = pokers[i];
} else if (i % 3 == 2) {
//第三个人
results[2][i / 3] = pokers[i];
}
}
return results;
}


private static Card[][] sort1(Card[][] persons){//人工排序从小到大排序
for(Card[]cards:persons){
for(int i=0;i<cards.length;i++){
for(int j=0;j<i;j++){
if(cards[i].getNumber()==cards[j].getNumber()){
if(cards[i].getHuase()<cards[j].getHuase()){
Card temp=cards[i];
cards[i]=cards[j];
cards[j]=temp;
}
}
else if(cards[i].getNumber()<cards[j].getNumber()){
Card temp=cards[i];
cards[i]=cards[j];
cards[j]=temp;
}
}
}
}
return persons;
}

private static Card[][] sort2(Card[][] persons) {//第二种排序
for(Card[] cards:persons){
Arrays.sort(cards);
}
return persons;
}
public static void main(String args[]) {
Card[] pokers=createPocker();//创牌
pokers=shufflePoker(pokers);//洗牌
System.out.println("显示洗牌后结果:");
for(int i=0;i<pokers.length;i++ ){
if(i%4==0) System.out.println(" ");
System.out.print("第"+(i+1)+"张:"+pokers[i]+" ");
}
System.out.println("\n开始发牌:");
Card result[][];
result= fapai(pokers);
System.out.println("显示每个人拿到的牌");
for(int i=0;i<3;i++) {
System.out.println("\n第"+(i+1)+"个人的牌:");
for(int j=0;j<18;j++){
if(j%4==0) System.out.println(" ");
System.out.print(result[i][j]+" ");
}
}
System.out.println("\n每个人的牌进行排序:1.从小到大.2.从大到小");
int choice;Scanner scanner =new Scanner (System.in);
choice =scanner.nextInt();
switch(choice){
case 1:sort1(result);break;
case 2: sort2(result);break;
default: System.out.println("重新选择");
choice =scanner.nextInt();
}
System.out.println();
System.out.println("显示每个人拿到的牌");
for(int i=0;i<3;i++) {
System.out.println("\n第"+(i+1)+"个人的牌:");
for(int j=0;j<18;j++){
if(j%4==0) System.out.println(" ");
System.out.print(result[i][j]+" ");

}
}
}
}