文章待编辑
问题描述
用java写一个程序,模拟斗地主的发牌流程,有3个玩家,54张牌,每个玩家随机发17张牌,并且留三张底牌。
import java.util.Arrays;
import java.util.Random;
public class deal1 {
public static void main(String[] args) {
String[] patterns = {"♣", "♦", "♥", "♠"};
String[] faces = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
String[] cards = new String[54];
int index = 0;
for (String pattern : patterns) {
for (String face : faces) {
cards[index++] = pattern+face;
}
}
cards[52]="小王";
cards[53]="大王";
System.out.println(Arrays.toString(cards));
Random random = new Random();
String[] player1 = new String[17];
String[] player2 = new String[17];
String[] player3 = new String[17];
String[] pool = new String[3];
int cardLeft=54;
for (int i = 0; i < player1.length; i++) {
int drawIndex=random.nextInt(cardLeft);
player1[i]=cards[drawIndex];
cards[drawIndex] = cards[cardLeft-1];
cardLeft--;
}
for (int i = 0; i < player2.length; i++) {
int drawIndex=random.nextInt(cardLeft);
player2[i]=cards[drawIndex];
cards[drawIndex] = cards[cardLeft-1];
cardLeft--;
}
for (int i = 0; i < player3.length; i++) {
int drawIndex=random.nextInt(cardLeft);
player3[i]=cards[drawIndex];
cards[drawIndex] = cards[cardLeft-1];
cardLeft--;
}
for (int i = 0; i < pool.length; i++) {
int drawIndex=random.nextInt(cardLeft);
pool[i]=cards[drawIndex];
cards[drawIndex] = cards[cardLeft-1];
cardLeft--;
}
System.out.println("玩家1"+Arrays.toString(player1));
System.out.println("玩家2"+Arrays.toString(player2));
System.out.println("玩家3"+Arrays.toString(player3));
System.out.println("底牌"+Arrays.toString(pool));
}
}