斗地主游戏设计
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class GameDemo {
/**
目标:设计一个斗地主的游戏。
总共有54张牌。"3","4","5","6","7","8","9","10","J","Q","K","A","2"
小王:?;大王:?
花色: "♠", "♥", "♣", "♦"
组合4种花色,大小王各一张。还要定义牌的大小规则。
功能:
1.定义一幅牌。
2.洗牌。
3.3个玩家
4.发牌。
*/
//1.定义一个类,存放牌对象
//2.定义一个静态集合,存放54张牌
//List<Card> cards=new ArrayList<>();
public static List<Card> cards=new ArrayList<>();
//3.预先准备好牌并洗好牌,因此用静态代码块定义
static {
//定义数组分别存放牌的标签和花色
String[] number={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
String[] shape={"♠", "♥", "♣", "♦"};
//将牌进行组合
int size=0;
for (int i = 0; i < number.length; i++) {
size++;//牌的大小规则,方便后面的排序
for (int i1 = 0; i1 < shape.length; i1++) {
//获取每一次组合的牌封装成牌对象
Card card=new Card(number[i],shape[i1],size);
//将牌放到集合里边
cards.add(card);
}
}
//加入小王和大王
Card c1=new Card("","?",++size);
Card c2=new Card("","?",++size);
Collections.addAll(cards,c1,c2);
System.out.println("初始牌"+cards);
//54张牌准备完毕
//4.洗牌
Collections.shuffle(cards);
System.out.println("洗过的牌"+cards);
}
public static void main(String[] args) {
//5.发牌,先取出3张地主牌,每人17张,
//准备三个玩家,定义成集合形式
//最后三张牌一起打包
List<Card> p1=cards.subList(0,17);
List<Card> p2=cards.subList(17,34);
List<Card> p3=cards.subList(34,51);
List<Card> last=cards.subList(51,54);
// System.out.println(p1);
// System.out.println(p2);
// System.out.println(p3);
// System.out.println(last);
//6.帮玩家排序
//定义一个方法
sortCard(p1);
sortCard(p2);
sortCard(p3);
System.out.println(p1);
System.out.println(p2);
System.out.println(p3);
System.out.println(last);
}
private static void sortCard(List<Card> cards) {
Collections.sort(cards, new Comparator<Card>() {
@Override
public int compare(Card o1, Card o2) {
return o1.getSize()- o2.getSize();
}
});
}
}
public class Card {
private String number;
private String shape;
private int size;
public Card() {
}
public Card(String number, String shape, int size) {
this.number = number;
this.shape = shape;
this.size = size;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getShape() {
return shape;
}
public void setShape(String shape) {
this.shape = shape;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
@Override
public String toString() {
return shape+number;
}
}
版权声明:本文为qq_50977286原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。