java模拟斗地主发牌看牌
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
public class Doudizhu {
public static void main(String[]args){
//存放扑克牌
//牌类+对应花色
HashMap<Integer, String> pooker = new HashMap<Integer,String>();
//牌的编号
ArrayList<Integer> pookerNum = new ArrayList<Integer>();
//牌类
String[] nums = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
String[] colors = {"黑","红","梅","方"};
int index = 2;
for(String num:nums){
for(String color:colors){
pooker.put(index, color+num);
pookerNum.add(index);
index++;
}
}
pooker.put(0, "大王");
pookerNum.add(0);
pooker.put(1, "小王");
pookerNum.add(1);
//System.out.println(pooker);
//System.out.println(pookerNum);
//洗牌。打乱顺序
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=0;i<pookerNum.size();i++){
if(i>pookerNum.size()-1-3){
bottom.add(pookerNum.get(i));
}else
if(i%3==0){
player1.add(pookerNum.get(i));
}else
if(i%3==1){
player2.add(pookerNum.get(i));
}else
if(i%3==2){
player3.add(pookerNum.get(i));
}
}
//整理牌
Collections.sort(player1);
Collections.sort(player2);
Collections.sort(player3);
//看牌
look("player1",player1,pooker);
look("player2",player2,pooker);
look("player3",player3,pooker);
look("底 牌",bottom, pooker);
}
public static void look(String name,ArrayList<Integer> player,HashMap<Integer, String> pooker){
System.out.print(name+": ");
for(Integer key:player){
String value = pooker.get(key);
System.out.print(value+" ");
}
System.out.println("\n");
}
}
java模拟斗地主发牌看牌的更多相关文章
- java 模拟斗地主发牌洗牌
一 模拟斗地主洗牌发牌 1.案例需求 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 1. 组装54张扑克牌 2. 将54张牌顺序打乱 3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张 ...
- Java模拟斗地主发牌和洗牌
package cn.itcast_04; import java.util.ArrayList; import java.util.Collections; import java.util.Has ...
- java集合--模拟斗地主发牌洗牌
import java.util.*; /** * @Date: 2020/6/17 19:53 */public class Test04 { public static void main(Str ...
- Java学习笔记34(集合框架八:综合案例:模拟斗地主的洗牌发牌)
规则: 1.54张扑克牌,有花色 2.顺序打乱,一人一张依次发牌,一人17张,留三张作为底牌 3.看牌:按大小王2A....43的序排列打印 示例: package demo; import java ...
- Java程序斗地主发牌代码,List、Map集合的应用
Java集合存储的灵活运用List集合存储 54个编号 Map <key,value> key 对应的是编号 , value 是 牌的花色(红方梅黑)+ 具体的一张牌 ,比如 黑桃2 用2 ...
- Java 模拟斗地主
模拟斗地主 public class M1 { public static void main(String args[]) { DouDiZhu02(); } private static void ...
- Java模拟斗地主(实现大小排序)
import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Li ...
- Java实现斗地主发牌(Collections工具类的应用)
package com.doudou_01; import java.util.ArrayList; import java.util.Collections; import java.util.Li ...
- php 模拟斗地主发牌简单易懂
闲来无聊,就写了这个方法,也算是熟悉下php的数组操作,还请各位大神多指教.$arr 数组,好像有点问题,应该 2=>'方片2',3=>'梅花2',4=>'红心2',5=>'黑 ...
随机推荐
- Luogu 1402 酒店之王(二分图最大匹配)
Luogu 1402 酒店之王(二分图最大匹配) Description XX酒店的老板想成为酒店之王,本着这种希望,第一步要将酒店变得人性化.由于很多来住店的旅客有自己喜好的房间色调.阳光等,也有自 ...
- 软件安装(JDK+MySQL+TOMCAT)
一,JDK安装 1,查看当前Linux系统是否已经安装了JDK 输入 rpm -qa | grep java 如果有: 卸载两个openJDK,输入rpm -e --nodeps 要卸载的软件 2,上 ...
- Docker for windows10 配置镜像加速
windows玩docker的时候,经常碰到这种问题: Error response from daemon: Get https://registry-1.docker.io/v2/: net/ht ...
- 什么是B-Tree
B-Tree就是我们常说的B树,一定不要读成B减树,否则就很丢人了.B树这种数据结构常常用于实现数据库索引,因为它的查找效率比较高. B-Tree与二叉查找树的对比 我们知道二叉查找树查询的时间复杂度 ...
- WPF转换器之通用转换器
WPF中的转换器是一个非常好的数据类型转换解决方案,实用和强大, 它的作用是将源数据转换为WPF自身需要的类型,对数据实体没有侵略性,会在项目工程中频繁使用.所以掌握转换器是WPF开发的必备技能. 我 ...
- (转)VmWare下安装CentOS7图文安装教程
场景:克服安装Linux的恐惧,想装就装.在一篇博客中看到的,很有借鉴意义 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源 ...
- (转)spring学习之@ModelAttribute运用详解
@ModelAttribute使用详解 1 @ModelAttribute注释方法 例子(1),(2),(3)类似,被@ModelAttribute注释的方法会在此controller每个方法执行前被 ...
- ionic时间插件ion-datetime-picker
https://github.com/katemihalikova/ion-datetime-picker
- easyui项目问题集锦
1.级联问题(combobox) combobox至多可以保存2个东西value和text,但我需要第三个数的时候,怎么办?比如,省.市.区的三级级联,我选择市的时候,需要市id,市name,区号,邮 ...
- Java微信开发_02_本地服务器映射外网
一.工具列表 内网穿透的相关工具有: (1)natapp 官网 :https://natapp.cn/ (2)花生壳 官网:https://console.oray.com/ (2)ngrok 官网: ...