hashmap集合+ArrayList集合+Collections集合工具类shuffle()和sort()
hashmap中get(key)、put(key/value)
Arraylist中的add()、get(下标值),此时ArrayLIST集合相当于hashmap中的set集合,可以使用迭代器或者增强for遍历内容
或者不使用Arraylist,直接使用entryset得到Map.entry<E>,使用getkey和getvalue得到key值
1 package com.oracle.demo01;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap; public class Doudizhu {
public static void main(String[] args) {
//定义扑克牌Map 默认按照key值从小到大排序
HashMap<Integer,String> pooker=new HashMap<Integer,String>();
//定义装有扑克牌号的集合 单独的与map集合数字一致2
ArrayList<Integer> pookerNum=new ArrayList<Integer>();
//封装数据 4种花色(13个牌)+大小王
String[] color={"♡","","♧","◇"};//点击选择utf-8保存
String[] number={"","A","K","Q","J","","","","","","","",""};
//嵌套for循环,先数字,后花色
int index=;
for(String n:number){
for(String c:color){
pooker.put(index,c+n);
pookerNum.add(index);
index++;
}
}
//封装大小王
pooker.put(, "大王");
pooker.put(, "小王");
pookerNum.add();
pookerNum.add(); //测试
// System.out.println(pooker);
//洗牌
Collections.shuffle(pookerNum);
//创建四个容器
ArrayList<Integer> player1=new ArrayList<Integer>();
ArrayList<Integer> player2=new ArrayList<Integer>();
ArrayList<Integer> player3=new ArrayList<Integer>();
ArrayList<Integer> bottom=new ArrayList<Integer>();
for(int i=;i<pookerNum.size();i++){
if(i<){
bottom.add(pookerNum.get(i));
}else if(i%==){
player1.add(pookerNum.get(i));
}else if(i%==){
player2.add(pookerNum.get(i));
}else if(i%==){
player3.add(pookerNum.get(i));
}
}
//排序
Collections.sort(player1);
Collections.sort(player2);
Collections.sort(player3);
Collections.sort(bottom);
//遍历看牌
System.out.println();
look("",pooker,player1);
look("",pooker,player2);
look("",pooker,player3);
look("底牌",pooker,bottom);
}
//通用的方法
public static void look(String Name,HashMap<Integer,String> pooker,
ArrayList<Integer> bottom){
System.out.print(Name+":");
for(Integer number:bottom){
System.out.print(pooker.get(number)+" ");
}
System.out.println();
}
}
 package com.oracle.demo01;

 import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator; public class DouDiZhu3 {
public static void main(String[] args) {
//定义map集合
HashMap<Integer,String> big=
new HashMap<Integer,String>();
ArrayList<Integer> arr=new ArrayList<Integer>();
//封装数据,通过内外循环,拼接字符串
String[] arr1={"♣","◇","♠","♥"};
String[] arr2={"","A","K","Q","J","","","","","","","",""};
//拼接字符串,并存入map集合中
int index=;
for(String r2:arr2){
for(String r1:arr1){
//必须创建不同的对象,进行存储
arr.add(index);
//System.out.println(arr);
big.put(index, r1+r2);
/* //对arr进行整体的清空
arr.clear();*/
index++;
}
}
//封装大小王
big.put(, "大王");
big.put(, "小王");
arr.add();
arr.add();
//此时为一个对象,会出现值覆盖问题
/*big.put(new ArrayList<Integer>(0), "大王");
big.put(new ArrayList<Integer>(1), "小王");*/
//测试是否存储成功,map自己调用tostring()
System.out.print(big);
//洗牌
Collections.shuffle(arr);
//创建四个容器
ArrayList<Integer> player1=new ArrayList<Integer>();
ArrayList<Integer> player2=new ArrayList<Integer>();
ArrayList<Integer> player3=new ArrayList<Integer>();
ArrayList<Integer> bottom=new ArrayList<Integer>();
for(int i=;i<arr.size();i++){
if(i<){
bottom.add(arr.get(i));
}else if(i%==){
player1.add(arr.get(i));
}else if(i%==){
player2.add(arr.get(i));
}else if(i%==){
player3.add(arr.get(i));
}
}
//排序
Collections.sort(player1);
Collections.sort(player2);
Collections.sort(player3);
Collections.sort(bottom);
//遍历看牌
System.out.println();
look("",big,player1);
look("",big,player2);
look("",big,player3);
look("底牌",big,bottom);
}
//通用的方法
public static void look(String Name,HashMap<Integer,String> big,
ArrayList<Integer> bottom){
System.out.print(Name+":");
//创建迭代器对象 数据类型与要遍历的集合数据类型一致
Iterator<Integer> i=bottom.iterator();
while(i.hasNext()){
int ii=i.next();//对象调用
System.out.print(big.get(ii)+" ");
}
System.out.println();
}
}

java之斗地主的更多相关文章

  1. 通过Java实现斗地主

    功能:洗牌,发牌,对玩家手中的牌排序,看牌 package demo06; import java.util.ArrayList; import java.util.Collections; impo ...

  2. 用Java制作斗地主

    首先,按照斗地主规则,完成洗牌发牌的动作.如图: 具体规则: 1. 组装54张扑克牌 2. 将54张牌顺序打乱 3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. 4. 查看三人各 ...

  3. java模拟斗地主发牌看牌

    import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; public class Dou ...

  4. Java模拟斗地主发牌和洗牌

    package cn.itcast_04; import java.util.ArrayList; import java.util.Collections; import java.util.Has ...

  5. Java实现斗地主发牌(Collections工具类的应用)

    package com.doudou_01; import java.util.ArrayList; import java.util.Collections; import java.util.Li ...

  6. Java模拟斗地主(实现大小排序)

    import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Li ...

  7. Java 模拟斗地主

    模拟斗地主 public class M1 { public static void main(String args[]) { DouDiZhu02(); } private static void ...

  8. Java程序斗地主发牌代码,List、Map集合的应用

    Java集合存储的灵活运用List集合存储 54个编号 Map <key,value> key 对应的是编号 , value 是 牌的花色(红方梅黑)+ 具体的一张牌 ,比如 黑桃2 用2 ...

  9. java 模拟斗地主发牌洗牌

    一 模拟斗地主洗牌发牌 1.案例需求 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 1. 组装54张扑克牌 2. 将54张牌顺序打乱 3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张 ...

随机推荐

  1. MapReduce数据流-概述

  2. shell awk杂项

    awk '{ ;++i<=NF;){ a[i]=a[i]?a[i]",'\''"$i"'\''":"'\''"$i"'\'' ...

  3. 2-3-4 tree留坑

    #include<bits/stdc++.h> #define LL long long #define pii pair<int,int> #define mp make_p ...

  4. behavior planning——14.implement a cost function in C++

    n most situations, a single cost function will not be sufficient to produce complex vehicle behavior ...

  5. pytorch中查看gpu信息

    其他:windows使用nvidia-smi查看gpu信息 为什么将数据转移至GPU的方法叫做.cuda而不是.gpu,就像将数据转移至CPU调用的方法是.cpu?这是因为GPU的编程接口采用CUDA ...

  6. Treap(树堆)入门

    作者:zifeiy 标签:Treap 首先,我么要知道:Treap=Tree+Heap. 这里: Tree指的是二叉排序树: Heap指的是堆. 所以在阅读这篇文章之前需要大家对 二叉查找树 和 堆( ...

  7. MATLAB常用函数, 常见问题

    MATLAB常用函数 1.常用取整函数 round(x):四舍五入函数 floor(x) : 向下取整, 即 floor(1.2)=1,  floor(1.8) = 1 ceil(x) : 向上取整, ...

  8. Python--day49--ORM框架SQLAlchemy之relationship的使用(有时间要从新看,这里状态不好,没有仔细听)

    小贴士:   迭代器:只有在循环的时候才一个一个往外拿 relationship

  9. pytorch实现BiLSTM+CRF用于NER(命名实体识别)

    pytorch实现BiLSTM+CRF用于NER(命名实体识别)在写这篇博客之前,我看了网上关于pytorch,BiLstm+CRF的实现,都是一个版本(对pytorch教程的翻译), 翻译得一点质量 ...

  10. H3C RIP路由表的更新