升级版/普通版)(集合综合运用)"/>
Java 模拟斗地主(升级版/普通版)(集合综合运用)
普通版
需求:
.通过程序实现斗地主过程中的洗牌
思路:
1.创建一个牌盒,也就是定义一个集合对象,用arraylist实现
2.往牌盒里面装牌
3.洗牌,用collections 的 shuffle函数实现
4.发牌,也就是遍历集合 ,给三个玩家发牌
5.看牌,也就是三个玩家分别遍历自己的牌
package collections模拟斗地主升级版_集合综合案例;import java.util.ArrayList;
import java.util.Collections;import ArrayList存储学生对象并遍历.student;public class pokerdemo简单版本 {/*
需求:.通过程序实现斗地主过程中的洗牌
思路:1.创建一个牌盒,也就是定义一个集合对象,用arraylist实现2.往牌盒里面装牌3.洗牌,用collections 的 shuffle函数实现4.发牌,也就是遍历集合 ,给三个玩家发牌5.看牌,也就是三个玩家分别遍历自己的牌*/public static void main(String[] args) {
// 1.创建一个牌盒,也就是定义一个集合对象,用arraylist实现ArrayList<String> array = new ArrayList<String>();// 2.往牌盒里面装牌/* ♣A....♣k* ♦A....♦K* ♥A....♥K* ♠A....♠K* 大王,小王*/ String colors []= {"♣","♦","♥","♠"};
// 定义一个点数数组String numbers []= {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
// 拼接for (String color : colors) {for (String number : numbers) {array.add(color+number);}}array.add("大boss");array.add("小boss");// 3.洗牌,用collections 的 shuffle函数实现Collections.shuffle(array);// 4.发牌,也就是遍历集合 ,给三个玩家发牌ArrayList<String> 刘德华 = new ArrayList<String>();ArrayList<String> 林青霞 = new ArrayList<String>();ArrayList<String> 王祖贤 = new ArrayList<String>();ArrayList<String> 三张底牌 = new ArrayList<String>();// .public E get(int index)返回指定索引处的元素for (int i = 0; i <array.size(); i++) {if(i>=array.size()-3) {三张底牌.add(array.get(i));}if(i%3==0) {刘德华.add(array.get(i));}if(i%3==1) {林青霞.add(array.get(i));}if(i%3==2) {王祖贤.add(array.get(i));}}
// 5.看牌,也就是三个玩家分别遍历自己的牌System.out.println("刘德华的牌是"+刘德华);System.out.println("林青霞的牌是"+林青霞);System.out.println("王祖贤的牌是"+王祖贤);System.out.println("三张底牌是"+三张底牌);}
}
升级版
需求:
.通过程序实现斗地主过程中的洗牌,发牌和看牌,要求对牌进行排序
思路:
1.创建HashMap,键是编号,值是牌
2.创建arraylist,存储编号
3.创建花色数组和点数数组
4.从0开始,往hashmap里面储存编号,同时往arraylist里面储存编号
5.洗牌,洗的是编号,用collections的shuffle方法实现
6.发牌(发的也是编号,为了保证编号是排序的,创建treeSet集合实现)
7.定义方法看牌(遍历treeset集合,获取编号,到hashmap集合找对应的牌)
8.调用看牌方法
package collections模拟斗地主升级版_集合综合案例;import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeSet;import Hashmap存储学生对象并遍历.student;public class pokerdemo升级版 {/*
需求:.通过程序实现斗地主过程中的洗牌,发牌和看牌,要求对牌进行排序
思路:1.创建HashMap,键是编号,值是牌2.创建arraylist,存储编号3.创建花色数组和点数数组4.从0开始,往hashmap里面储存编号,同时往arraylist里面储存编号5.洗牌,洗的是编号,用collections的shuffle方法实现6.发牌(发的也是编号,为了保证编号是排序的,创建treeSet集合实现)7.定义方法看牌(遍历treeset集合,获取编号,到hashmap集合找对应的牌)8.调用看牌方法*/public static void main(String[] args) {
// 1.创建HashMap,键是编号,值是牌
// 2.创建arraylist,存储编号Map<Integer,String> hm = new HashMap<Integer,String>();ArrayList<Integer> array = new ArrayList<Integer>();
// 3.创建花色数组和点数数组String colors []= {"♣","♦","♥","♠"};String numbers []= {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
// 4.从0开始,往hashmap里面储存编号,同时往arraylist里面储存编号int index = 0 ;for (String color : colors) {for (String number : numbers) {hm.put(index, color+number);array.add(index);index++;}}hm.put(index,"小王");array.add(index);index++;hm.put(index,"大王");array.add(index);// 5.洗牌,洗的是编号,用collections的shuffle方法实现Collections.shuffle(array);// 6.发牌(发的也是编号,为了保证编号是排序的,创建treeSet集合实现)TreeSet<Integer> 林青霞 =new TreeSet<Integer>(); TreeSet<Integer> 周杰伦 =new TreeSet<Integer>();TreeSet<Integer> 王祖贤 =new TreeSet<Integer>();TreeSet<Integer> 三底牌 =new TreeSet<Integer>();for (int i = 0; i <array.size(); i++) {if(i>=array.size()-3){三底牌.add(array.get(i));}if(i%3==0) {林青霞.add(array.get(i));}if(i%3==1) {周杰伦.add(array.get(i));}if(i%3==2) {王祖贤.add(array.get(i));}}
// 8.调用看牌方法lookPoker("三底牌", 三底牌, hm);lookPoker("林青霞", 林青霞, hm);lookPoker("周杰伦", 周杰伦, hm);lookPoker("王祖贤", 王祖贤, hm);}// 7.定义方法看牌(遍历treeset集合,获取编号,到hashmap集合找对应的牌)public static void lookPoker(String name,TreeSet<Integer> ts,Map<Integer, String> hm) {System.out.print(name+"的牌是");for (Integer key : ts) {String poker = hm.get(key);System.out.print(poker+" ");}System.out.println();}
}
更多推荐
Java 模拟斗地主(升级版/普通版)(集合综合运用)
发布评论