需求:
在启动游戏房间时,应提前准备好54张牌完成洗牌,发牌,牌顺序逻辑。
分析:
1.当系统启动的同时需要准备好数据的时候,就可以用静态代码块了。
2.洗牌就是打乱牌的顺序。
3.定义三个玩家、依次发出51张牌
4.给玩家的牌进行排序
代码实现:
Card类(卡牌类)
package collection.map.d4_collection_test;
/**
定义牌的类
*/
public class Card {
private String size;
private String color;
private int index;//真正的牌的大小
public void setIndex(int index) {
this.index = index;
}
public Card() {
}
public Card(String size, String color,int index) {
this.size = size;
this.color = color;
this.index = index;
}
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getIndex() {
return index;
}
/**
* 重写toString,直接输出牌的大小与花色
* @return
*/
@Override
public String toString() {
return size+color;
}
}
GemeDemo类(实现类)
package collection.map.d4_collection_test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class GameDemo {
/**
1.定义一个静态集合对象,存放54张牌
*/
public static List<Card> allcards=new ArrayList<>();
/**
2.做牌,定义静态代码块初始化牌数据
*/
static {
//3.定义点数:个数确定,类型确定,使用数组
String[] sizes={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
//4.定义花色:个数确定,类型确定,使用数组
String[] colors={"♥","♠","♦","♣"};
//5.组合点数和花色
int index=0;//记录牌的大小
for (String size : sizes) {
index++;
for (String color : colors) {
//6.封装为牌对象
Card c=new Card(size,color,index);
//7.添加到集合中
allcards.add(c);
}
}
//封装大小王,存入集合
Card c1=new Card("","
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)