一级标题 模拟斗地主发牌java学习
集合练习
1.只发牌 不排序
package 模拟斗地主;
import java.util.ArrayList;
import java.util.Collections;
public class PokerDemo {
public static void main(String[] args) {
//创建牌盒,也就是集合对象,用ArrayList集合实现
ArrayList<String> array=new ArrayList<String>();
//往牌盒里装盒
/**
* ♦2 ♦3
* ♣2 ♣3
* ♠2
* 大王,小王
*/
//定义花色数组
String []colors= {"♦","♣","♥","♠"};
//定义点数数组
String []numbers= {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
for(String color:colors) {
for(String number:numbers) {
array.add(color+number);
}
}
array.add("小王");
array.add("大王");
Collections.shuffle(array);
//System.out.println(array);
//发牌,也就是遍历集合
ArrayList<String> lqxArray=new ArrayList<String>();
ArrayList<String> lyArray=new ArrayList<String>();
ArrayList<String> fqyArray=new ArrayList<String>();
ArrayList<String> dpArray=new ArrayList<String>();
for(int i=0;i<array.size();i++) {
String poker=array.get(i);
if(i>=array.size()-3) {
dpArray.add(poker);
}else if(i%3==0) {
lqxArray.add(poker);
}else if(i%3==1) {
lyArray.add(poker);
}else if(i%3==2) {
fqyArray.add(poker);
}
}
lookPoker("林青霞", lqxArray);
lookPoker("柳岩", lyArray);
lookPoker("风清扬", fqyArray);
lookPoker("底牌", dpArray);
}
public static void lookPoker(String name,ArrayList<String> array) {
System.out.println(name+"的牌是:");
for(String poker:array) {
System.out.print(poker+" ");
}
System.out.println();
}
}
2.发牌 并排序
package 模拟斗地主;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;
public class PokerDemo2 {
public static void main(String[] args) {
//创建HashMap,键是编号,值是牌
HashMap<Integer,String> hm=new HashMap<Integer, String>();
//创建ArrayList,存储编号
ArrayList<Integer>array=new ArrayList<Integer>();
//定义花色数组
String []colors= {"♦","♣","♥","♠"};
//定义点数数组
String []numbers= {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
int index=0;
for(String number:numbers) {
for(String color:colors) {
hm.put(index, color+number);
array.add(index);
index++;
}
}
hm.put(index, "小王");
array.add(index);
index++;
hm.put(index, "大王");
array.add(index);
//洗牌
Collections.shuffle(array);
TreeSet<Integer> lqxSet=new TreeSet<Integer>();
TreeSet<Integer> lySet=new TreeSet<Integer>();
TreeSet<Integer> fqySet=new TreeSet<Integer>();
TreeSet<Integer> dpSet=new TreeSet<Integer>();
for(int i=0;i<array.size();i++) {
int x=array.get(i);
if(i>=array.size()-3) {
dpSet.add(x);
}else if(x%3==0) {
lqxSet.add(x);
}else if(x%3==1) {
lySet.add(x);
}
else if(x%3==2) {
fqySet.add(x);
}
}
lookPoker("林青霞", lqxSet, hm);
lookPoker("柳岩", lySet, hm);
lookPoker("风清扬", fqySet, hm);
lookPoker("底牌", dpSet, hm);
}
//定义方法拿牌
public static void lookPoker(String name,TreeSet<Integer>ts,HashMap<Integer,String>hm) {
System.out.println(name+"的牌是:");
for(Integer key:ts) {
String poker=hm.get(key);
System.out.print(poker+" ");
}
System.out.println();
}
}