javase模拟斗地主洗牌和发牌(54)
1、使用Arraylist集合:
1 package com.it18zhang.day08; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 6 public class PokerDemo { 7 8 public static void main(String[] args) { 9 // TODO Auto-generated method stub 10 //牌合 11 ArrayList<String> al = new ArrayList<>(); 12 String[] colors={ "♠", "♥", "♣", "♦" }; 13 String[] nums={ "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", 14 "J", "Q", "K" }; 15 for (String color : colors) { 16 for (String num : nums) { 17 String pai=color.concat(num); 18 al.add(pai); 19 } 20 } 21 al.add("大王"); 22 al.add("小王"); 23 ArrayList<String> p1 = new ArrayList<>(); 24 ArrayList<String> p2 = new ArrayList<>(); 25 ArrayList<String> p3 = new ArrayList<>(); 26 ArrayList<String> dipai = new ArrayList<>(); 27 Collections.shuffle(al); 28 for(int i=0;i<al.size();i++){ 29 if(i>=al.size()-3){ 30 dipai.add(al.get(i)); 31 } 32 else if(i%3==0){ 33 p1.add(al.get(i)); 34 } 35 else if(i%3==1){ 36 p2.add(al.get(i)); 37 } 38 else if(i%3==2){ 39 p3.add(al.get(i)); 40 } 41 } 42 lookPoker("p1", p1); 43 lookPoker("p2", p2); 44 lookPoker("p3", p3); 45 } 46 public static void lookPoker(String name,ArrayList<String> array){ 47 System.out.println(name+"的牌是:"); 48 for (String string : array) { 49 System.out.print(string+" "); 50 } 51 System.out.println(); 52 } 53 }
2、使用HashMap集合
1 package com.lianxi1; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.HashMap; 6 import java.util.TreeSet; 7 8 public class PokerDemo { 9 10 public static void main(String[] args) { 11 //牌盒,用于存放牌及编号 12 HashMap<Integer, String> map = new HashMap<>(); 13 //集合,用于存放编号 14 ArrayList<Integer> list = new ArrayList<>(); 15 //花色数组 16 String[] colors={"♠", "♥", "♣", "♦"}; 17 //点数数组 18 String[] nums={"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", 19 "K", "A", "2", }; 20 int index=0; 21 //分别存放牌及编号到集合中 22 for (String color : colors) { 23 for (String num : nums) { 24 String pork=color.concat(num); 25 map.put(index, pork); 26 list.add(index); 27 index++; 28 } 29 } 30 map.put(index, "小王"); 31 list.add(index); 32 index++; 33 map.put(index, "大王"); 34 list.add(index); 35 //洗牌(对编号集合进行) 36 Collections.shuffle(list); 37 //定义四个集合,用于存放底牌及玩家的手牌编号(由于排序,使用treeSet) 38 TreeSet<Integer> dipai = new TreeSet<>(); 39 TreeSet<Integer> p1 = new TreeSet<>(); 40 TreeSet<Integer> p2 = new TreeSet<>(); 41 TreeSet<Integer> p3 = new TreeSet<>(); 42 //发牌,实际是编号 43 for(int i=0;i<list.size();i++){ 44 if(i>=(list.size()-3)){ 45 dipai.add(list.get(i)); 46 } 47 else if(i % 3==0){ 48 p1.add(list.get(i)); 49 } 50 else if(i % 3==1){ 51 p2.add(list.get(i)); 52 } 53 else if(i % 3==2){ 54 p3.add(list.get(i)); 55 } 56 } 57 //看牌 58 lookPork("p1", p1, map); 59 lookPork("p2", p2, map); 60 lookPork("p3", p3, map); 61 lookPork("dipai", dipai, map); 62 63 } 64 //对人的牌进行遍历 65 public static void lookPork(String name,TreeSet<Integer> ts,HashMap<Integer, String> map){ 66 System.out.println(name+"的手牌是:"); 67 for (Integer key : ts) { 68 System.out.print(map.get(key)+" "); 69 } 70 System.out.println(); 71 } 72 }
转载于:https://www.cnblogs.com/yihaifutai/p/6754353.html
javase模拟斗地主洗牌和发牌(54)相关推荐
- Java实现模拟斗地主洗牌、发牌、看牌并排序
1.模拟斗地主洗牌.发牌.看牌 /* * 模拟斗地主洗牌.发牌.看牌*/package PokerDemo;import java.util.ArrayList; import java.util.C ...
- Java——集合(模拟斗地主洗牌和发牌进行排序)
//改进版,没有进行按牌的地位从小到大排序 package com.yy.test;import java.util.ArrayList; import java.util.Collections;p ...
- 模拟斗地主洗牌及发牌
1,模拟斗地主洗牌和发牌并对牌进行排序的代码实现:创建一个集合对象,并将扑克牌储存进去.HashMap存储索引和扑克牌.拼接扑克牌将索引和扑克牌在hm中(获取数字颜色后将索引0-51添加到list集合 ...
- 集合框架练习—使用JAVA语言模拟斗地主洗牌、发牌并对牌进行排序案例代码。
未排序前: package File;import java.util.ArrayList; import java.util.Collections;public class Poker {/*** ...
- 小伙子利用C++模拟斗地主洗牌和发牌,欢乐斗地主游戏源码展现!
C++ 6.0写的网络版斗地主游戏,程序基于directx SDK开发,因此你在编译时需要引入相应文件才可以,本斗地主可以支持双人对战.网络对战,游戏随机产生地主,动画发牌,界面也不错,还有声音,学习 ...
- 18.集合框架(Map集合,HashMap和Hashtable的区别,Collections(集合工具类),集合练习,模拟斗地主(洗牌,发牌,看牌))
1.Map集合概述和特点 1.需求: 根据学号获取学生姓名 2.Map接口概述 查看API可以知道: 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能 ...
- 【JAVASE】模拟斗地主洗牌发牌
1.案例介绍 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 组装54张扑克牌 54张牌顺序打乱 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. 查看三人各自手中的牌(按照牌的大 ...
- java中Map集合、模拟斗地主洗牌发牌、JDK9对集合添加的优化
1.1 Map集合概述 Map集合概述 Map==>映射(一个对应一个) Map是一个接口,只要实现了该接口的类都是双列集合. 双列集合每次存储元素时都需要存储两个元素,一个元素称为键,一个元素 ...
- 模拟斗地主洗牌发牌-JAVA
1.1案例介绍 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 1.组装54张扑克牌 2.将54张牌顺序打乱 3.三个玩家参与游戏,三人交替摸牌,,每人17张牌,最后三张留作底牌. 4.查看三人各 ...
最新文章
- es根据磁盘使用情况来决定是否分配shard
- pip install jieba安装慢,安装失败,安装不解决办法
- mysql导出csv格式去除字段中的\n\r
- SDS趋势之二:对象存储将替代文件存储
- 如何快速清除 Ubuntu 的系统缓存
- 软件_crontab任务配置失败原因总结和技巧
- golang搭建静态web服务器的实现方法
- [Python] random.uniform( ) 函数教程与实例解析
- RemObjects
- react 动态路 嵌套动子路由_深入揭秘前端路由的本质
- Navicat Premium 15注册出现“rsa public key not find”
- Java软件工程师职业规划
- mysql根据出生日期计算年龄并查询
- 复变函数题目(持续更新)
- web服务 面试可能会问的问题
- 怎样用计算机放音乐,QQ音乐怎么用手机控制电脑放歌曲,qq音乐怎么连接电脑|qq音乐怎么用手机控制电脑...
- shift键计算机功能,分享新手必会的快捷键:shift键的11个妙用!
- 数学问 高考数学复习资料策略整理
- ABBYY FineReader 14之如何选择正确的OCR选项
- 11. Python3 测试代码