java之斗地主
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之斗地主的更多相关文章
- 通过Java实现斗地主
功能:洗牌,发牌,对玩家手中的牌排序,看牌 package demo06; import java.util.ArrayList; import java.util.Collections; impo ...
- 用Java制作斗地主
首先,按照斗地主规则,完成洗牌发牌的动作.如图: 具体规则: 1. 组装54张扑克牌 2. 将54张牌顺序打乱 3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. 4. 查看三人各 ...
- java模拟斗地主发牌看牌
import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; public class Dou ...
- Java模拟斗地主发牌和洗牌
package cn.itcast_04; import java.util.ArrayList; import java.util.Collections; import java.util.Has ...
- Java实现斗地主发牌(Collections工具类的应用)
package com.doudou_01; import java.util.ArrayList; import java.util.Collections; import java.util.Li ...
- Java模拟斗地主(实现大小排序)
import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Li ...
- Java 模拟斗地主
模拟斗地主 public class M1 { public static void main(String args[]) { DouDiZhu02(); } private static void ...
- Java程序斗地主发牌代码,List、Map集合的应用
Java集合存储的灵活运用List集合存储 54个编号 Map <key,value> key 对应的是编号 , value 是 牌的花色(红方梅黑)+ 具体的一张牌 ,比如 黑桃2 用2 ...
- java 模拟斗地主发牌洗牌
一 模拟斗地主洗牌发牌 1.案例需求 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 1. 组装54张扑克牌 2. 将54张牌顺序打乱 3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张 ...
随机推荐
- Getting started with the basics of programming exercises_2
1.编写简单power函数 #include<stdio.h> int power(int m, int n); // test power function int main(void) ...
- 洛谷P1488 肥猫的游戏 题解 博弈论入门
题目链接:https://www.luogu.org/problem/P1488 其实这道题目我只需要 \(n\) 以及黑色三角形的三个端点编号就可以了. 我们假设在一个 \(n\) 边形中,黑色三角 ...
- Laravel根据Ip获取国家,城市信息
https://blog.csdn.net/zhezhebie/article/details/79097133 1.安装: composer require geoip2/geoip2:~2.0 2 ...
- PyTorch官方中文文档:torch.optim 优化器参数
内容预览: step(closure) 进行单次优化 (参数更新). 参数: closure (callable) –...~ 参数: params (iterable) – 待优化参数的iterab ...
- Spring Boot JPA 懒加载
最近在使用spring jpa 的过程中经常遇到懒加载的错误:"` org.hibernate.LazyInitializationException: could not initiali ...
- IDEA sql自动补全/sql自动提示/sql列名提示
一.启用idea的database插件 File->Settings->Plugins 搜索Database Tools and SQL 选择Enable 启用或者勾选 二.新建Datab ...
- Spring Data Jpa 简单使用事务
对于两张表,需要顺序操作,必须全部表均操作成功才可,否则两张表不操作. 例如,现在有device,collectionpoint两张表,向两张表顺序执行insert操作 SQL如下 INSERT IN ...
- P1110 变身
题目描述 给你一个长度为n的数组a,他们的坐标从1到n,并且他们的数值也在1到n之间且两两不同. 数组中的每个元素每轮回合都会变身,变身的结果取决于该元素当前的值,如果在某一个回合该元素的值为u,则下 ...
- js基础——正则表达式
1.创建方式: var box = new RegExp('box');//第一个参数字符串 var box = new RegExp('box','ig');//第二个参数可选模式修饰符 等同于 v ...
- UVa 1627 - Team them up!——[0-1背包]
Your task is to divide a number of persons into two teams, in such a way, that: everyone belongs to ...