java 写一个斗地主程序
时间: 2024-04-26 16:24:39 浏览: 107
好的,下面是一个简单的Java斗地主游戏示例代码。这个示例是一个控制台程序,没有图形界面,但可以让您理解一个基本的斗地主游戏如何实现。
```java
import java.util.*;
public class DouDiZhu {
public static void main(String[] args) {
// 初始化一副牌
List<String> poker = initPoker();
// 洗牌
Collections.shuffle(poker);
// 发牌
List<String> playerA = new ArrayList<>();
List<String> playerB = new ArrayList<>();
List<String> playerC = new ArrayList<>();
List<String> diPai = new ArrayList<>();
for (int i = 0; i < poker.size(); i++) {
String card = poker.get(i);
if (i >= 51) {
diPai.add(card);
} else if (i % 3 == 0) {
playerA.add(card);
} else if (i % 3 == 1) {
playerB.add(card);
} else {
playerC.add(card);
}
}
// 排序
sortCards(playerA);
sortCards(playerB);
sortCards(playerC);
sortCards(diPai);
// 看牌
System.out.println("A: " + playerA);
System.out.println("B: " + playerB);
System.out.println("C: " + playerC);
System.out.println("底牌: " + diPai);
}
// 初始化一副牌
public static List<String> initPoker() {
List<String> poker = new ArrayList<>();
String[] colors = {"♠", "♥", "♦", "♣"};
String[] numbers = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};
for (String color : colors) {
for (String number : numbers) {
poker.add(color + number);
}
}
poker.add("小王");
poker.add("大王");
return poker;
}
// 排序
public static void sortCards(List<String> cards) {
Collections.sort(cards, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return getCardValue(o2) - getCardValue(o1);
}
});
}
// 获取牌面值
public static int getCardValue(String card) {
String number = card.substring(1);
if (number.equals("A")) {
return 14;
} else if (number.equals("K")) {
return 13;
} else if (number.equals("Q")) {
return 12;
} else if (number.equals("J")) {
return 11;
} else if (number.equals("10")) {
return 10;
} else if (number.equals("9")) {
return 9;
} else if (number.equals("8")) {
return 8;
} else if (number.equals("7")) {
return 7;
} else if (number.equals("6")) {
return 6;
} else if (number.equals("5")) {
return 5;
} else if (number.equals("4")) {
return 4;
} else if (number.equals("3")) {
return 3;
} else if (card.equals("小王")) {
return 15;
} else if (card.equals("大王")) {
return 16;
} else {
return 0;
}
}
}
```
在这个示例中,我们首先初始化了一副牌,然后使用Collections.shuffle()方法洗牌。接下来,我们用简单的规则将牌发给三个玩家和底牌,并对它们进行排序。最后,我们打印出每个玩家的牌和底牌。您可以根据需要扩展这个示例,例如添加出牌和判断胜负的逻辑。
阅读全文