斗地主发牌逻辑
用java实现
//发牌
public static void main(String[] args) {
double d=100;
Mytest2 mytest2=new Mytest2();
List<Integer> player1=new LinkedList();
List<Integer> player2=new LinkedList();
List<Integer> player3=new LinkedList();
int card1=(int)(Math.random()*55+1);
int card2=(int)(Math.random()*55+1);
int card3=(int)(Math.random()*55+1);
/*System.out.println(card1);*/
for (int i = 1; i < 55; i++) {
if (i!=card1&&i!=card2&&i!=card3){
int randomplayer=(int)(Math.random()*3+1);
/*System.out.println(randomplayer);*/
switch (randomplayer){
case 1:
if (player1.size()==17){
if (player2.size()==17){
if (player3.size()==17){
return;
}else{
player3.add(i);
break;
}
}else{
player2.add(i);
break;
}
}else{
player1.add(i);
break;}
case 2:
if (player2.size()==17){
if (player1.size()==17){
if (player3.size()==17){
return;
}else{
player3.add(i);
break;
}
}else{
player1.add(i);
break;
}
}else{
player2.add(i);
break;}
case 3:
if (player3.size()==17){
if (player1.size()==17){
if (player2.size()==17){
return;
}else{
player2.add(i);
break;}
}else{
player1.add(i);
break;
}
}else{
player3.add(i);
break;}
}
}
}
System.out.print(mytest2.hanle(card1));
System.out.print(mytest2.hanle(card2));
System.out.println(mytest2.hanle(card3));
System.out.print("player1:");
for (int i = 0; i < 17; i++) {
System.out.print(mytest2.hanle(player1.get(i))+" ");
}
System.out.println("");
System.out.print("player2:");
for (int i = 0; i < 17; i++) {
System.out.print(mytest2.hanle(player2.get(i))+" ");
}
System.out.println("");
System.out.print("player3:");
for (int i = 0; i < 17; i++) {
System.out.print(mytest2.hanle(player3.get(i))+" ");
}
}
还有一个将数字转换成牌的类
public class Mytest2 {
public Object hanle(int i){
Object o=new Object();
if(i>40){
String[] s=new String[10];
s[1]="J";
s[2]="Q";
s[3]="K";
if (i==53){
return "小鬼";
}
if (i==54){
return "大鬼";
}
i=i-40;
int num=i/4+1;
int color=i%4;
if (color==1){
o=s[num]+"♢";
}
if (color==2){
o=s[num]+"♡";
}
if (color==3){
o=s[num]+"♠";
}
if (color==0){
o=s[num-1]+"♣";
}
return o;
}
int num=i/4+1;
int color=i%4;
if (color==1){
o=num+"♢";
}
if (color==2){
o=num+"♡";
}
if (color==3){
o=num+"♠";
}
if (color==0){
o=(num-1)+"♣";
}
return o;
}}
输出结果:`Q♡4♡2♡
player1:1♠ 3♢ 3♡ 3♣ 5♠ 7♢ 7♣ 8♡ 9♠ 10♡ J♡ Q♢ Q♣ K♢ K♡ K♠ 小鬼
player2:1♢ 2♢ 4♢ 4♣ 6♢ 6♠ 6♣ 7♡ 7♠ 8♢ 8♣ 9♢ 9♡ 9♣ 10♠ 10♣ J♢
player3:1♡ 1♣ 2♠ 2♣ 3♠ 4♠ 5♢ 5♡ 5♣ 6♡ 8♠ 10♢ J♠ J♣ Q♠ K♣ 大鬼
`