需要掌握的知识:这里我是用的Arraylist来存储花色(pokerColor)和牌数(porker_Digital),然后就是一个总的带花色的牌(pokerBox),主要需要掌握的知识就是foreach语句的循环嵌套,Collections的一个洗牌功能(随机打乱list数据),接下来我们进入代码时刻:
import java.awt.List;
import java.io.Serializable;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
/*
* @author Mr liuzhi
* 做个简单控制台的斗地主
*/
public class Fighting_landlords implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* @param args
*/
public static void main(String[] args) {
ArrayList<String> pokerBox = new ArrayList();
ArrayList<String> porker_Digital = new ArrayList<String>();
ArrayList<String> pokerColor = new ArrayList<String>();
pokerColor.add("♠");
pokerColor.add("♥");
pokerColor.add("♣");
pokerColor.add("♦");
for (int i = 2; i <= 10; i++) {
porker_Digital.add(i+"");
}
porker_Digital.add("J");
porker_Digital.add("Q");
porker_Digital.add("K");
porker_Digital.add("A");
for (String string : pokerColor) {
for (String ss : porker_Digital) {
String mess=string+ss;
pokerBox.add(mess);
}
}
pokerBox.add("小王");
pokerBox.add("大王");
Collections.shuffle(pokerBox);
ArrayList<String> jack=new ArrayList();
ArrayList<String> mike=new ArrayList();
ArrayList<String> rose=new ArrayList();
ArrayList<String> bottom=new ArrayList();
for(int i=0;i<pokerBox.size();i++){
if(i>=51){
bottom.add(pokerBox.get(i));
}else if(i%3==0){
jack.add(pokerBox.get(i));
}
else if(i%3==1){
mike.add(pokerBox.get(i));
}else if(i%3==2){
rose.add(pokerBox.get(i));
}
}
System.out.println("jack的牌:"+jack);
System.out.println("rose的牌:"+rose);
System.out.println("mike的牌:"+mike);
System.out.println("底牌:"+bottom);
}
}
输出结果:
总结:这里斗地主的人用TreeSet(如果说是不重复)会更好,通过迭代的方式保证了牌的不重复性。方法很多,多写多做,精益求精,我只是发表了我自己的思路,我也希望能得到你们的思路。