基于java斗地主设计报告_基于java实现斗地主代码实例解析
斗地主
规则:
1. 组装54张扑克牌
2. 将54张牌顺序打乱
3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。
4. 查看三人各自手中的牌(按照牌的大小排序)、底牌
手中扑克牌从大到小的摆放顺序:大王,小王,2,A,K,Q,J,10,9,8,7,6,5, 4,3
分析:
准备牌:
完成数字与纸牌的映射关系:
使用双列Map(HashMap)集合,完成一个数字与字符串纸牌的对应关系(相当于一个字典)。
洗牌:
通过数字完成洗牌发牌
发牌:
将每个人以及底牌设计为ArrayList,将最后3张牌直接存放于底牌,剩余牌通过对3取模依次发牌。
存放的过程中要求数字大小与斗地主规则的大小对应。
将代表不同纸牌的数字分配给不同的玩家与底牌。
看牌:
通过Map集合找到对应字符展示。
通过查询纸牌与数字的对应关系,由数字转成纸牌字符串再进行展示。
代码:
package com.oracle.demo01;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class DouDiZhu {
public static void main(String[] args) {
Mappooker=new HashMap();
ArrayListpookerNumer=new ArrayList();
//封装Map
String[] color={"♠","♦","♥","♣"};
String[] number={"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
int index=2;
for (String n : number) {
for (String c : color) {
//封装Map
pooker.put(index, c+n);
//封装集合
pookerNumer.add(index);
index++;
}
}
//封装大小王
pooker.put(0, "大王");
pookerNumer.add(0);
pooker.put(1, "小王");
pookerNumer.add(1);
//System.out.println(pooker);
//System.out.println(pookerNumer);
//洗牌
Collections.shuffle(pookerNumer);
//System.out.println(pookerNumer);
//创建四个容器
ArrayListplayer1=new ArrayList();
ArrayListplayer2=new ArrayList();
ArrayListplayer3=new ArrayList();
ArrayListbottom=new ArrayList();
//发牌
for (int i = 0; i< pookerNumer.size(); i++) {
if(i<3){
bottom.add(pookerNumer.get(i));
}else if(i%3==0){
player1.add(pookerNumer.get(i));
}else if(i%3==1){
player2.add(pookerNumer.get(i));
}else if(i%3==2){
player3.add(pookerNumer.get(i));
}
}
//排序
Collections.sort(player1);
Collections.sort(player2);
Collections.sort(player3);
Collections.sort(bottom);
//调用看牌的方法
look("渣渣灰",pooker,player1);
look("古天乐",pooker,player2);
look("刘嘉玲",pooker,player3);
look("底牌",pooker,bottom);
}
//看牌的方法
public static void look(String name,Mappooker,ArrayListplayer){
System.out.println(name+":");
for (int num : player) {
System.out.print(pooker.get(num)+" ");
}
System.out.println();
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
基于java斗地主设计报告_基于java实现斗地主代码实例解析相关推荐
- java仓库管理设计报告_基于JAVA的仓库管理系统设计毕业设计.doc
基于JAVA的仓库管理系统设计毕业设计 毕 业 设 计 论 文 专业班级:072班 学生姓名: 指导教师: 密级:内部 系别名称: 信息工程系 专业班级:072班 学生姓名: 学 号: 指导教师: A ...
- java课程设计拼图_基于Java拼图游戏的设计与实现(含录像)
基于拼图游戏的设计与实现(含录像) 摘 要 本拼图游戏是基于J2SE平台开发的,它是一个Application,它的游戏规则和诺亚舟里的拼图游戏是一样的.这个游戏将一张大图切割成N张小图,然后在 ...
- python基于svm项目+课程设计报告_基于机器学习的脑电病理诊断
是新朋友吗?记得先点蓝字关注我哦- (图片来自于网络) 1 引言 将机器学习方法应用于脑电信号的自动分析,特别是在基于脑电信号的临床诊断领域,因其巨大的应用前景而引起了广泛的兴趣.例如,它是检测和预测 ...
- java界面设计股票_利用JAVA实现股票交易系统设计参考.doc
利用JAVA实现股票交易系统设计参考 目 录 摘要1 关键词1 Abstract2 Key words2 1 概述3 1.1 Java体系结构3 1.2 Java的优点3 1.3 Java的应用3 2 ...
- java管理系统中期报告_基于Java的图书馆管理系统的设计-中期报告
基于Java的图书馆管理系统的设计-中期报告 毕业设计(论文)中期报告 毕业设计(论文)题目:基于Java的图书馆管理系统的设计 专业:计算机 学生信息: 指导教师信息: 报告提交日期:2012年5月 ...
- java程序实现剪刀石头布功能_基于JAVA的剪刀石头布游戏设计——Java课程设计报告_...
基于JAVA的剪刀石头布游戏设计 1剪刀石头布游戏设计思路阐述 在设计游戏时,我们要充分考虑到剪刀石头布游戏的特性,以及多种技术的实现: ⑴构造创建服务器端和客户端 ⑵创建输入输出流 ⑶编写服务器端处 ...
- java万年历开题报告_基于java平台的多历法万年历软件#(开题报告+论文+源代码)...
基于java平台的多历法万年历软件#(开题报告+论文+源代码) 如有需要请联系 QQ:1294122080 摘要 1.论文题目:基于java的多历法万年历软件 2. 专 业:计算机科学与技术 3.指导 ...
- 超市管理系统java swing+mysql报告_基于java+swing+mysql的超市管理系统
运行环境:java jdk 1.8 IDE环境:Eclipse,Myeclipse,IDEA都可以 硬件环境:windows 7/8/10 2G内存以上(推荐4G,4G以上更好) 可以实现: 销售管理 ...
- java万年历开题报告_基于单片机的万年历开题报告.doc
基于单片机的万年历开题报告.doc 还剩 13页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 基于单片机的万年历开题报告,考.动手制作的能力,我们在其 ...
最新文章
- 【Graph4NLP】阿尔伯塔大学博士毕业论文:基于图结构的自然语言处理
- 内存管理vma_(十三)Linux内存管理之vma/malloc/mmap
- 部署安装kubernetes client-python,执行pip install setup.py时报错
- GDCM:读取两个DICOM文件保存在另外dicom文件中的测试程序
- 小李飞刀:用python刷题ing....
- Linux下显示当前目录下的全部目录或文件
- std::vector 从大到小排序
- 进阶 09 Map集合
- shape中的ring标签的使用方法
- pymysql长时间连接自动断开解决方案
- 背景图片虚化的效果的css样式的实现
- java实现三进制转十进制
- 校验非空的注解@NotNull怎么取得自定义的message
- python实现微信自动加群_为Python开发人员提供实时代码片段,Kite获1700万美元A轮融资...
- 云服务器 虚拟主机 服务器
- 麒麟服务器v10系统安装时报错,银河麒麟V10服务器版本编译安装php7.2.12
- P1456 Monkey King 左偏树模板题
- c/c++ 计算屏幕的PPI
- 【Python123】 存款买房(B)
- 西门子西门子smart200和V90伺服程序
热门文章
- 春节特辑・戏说天津卫
- 图像质量评价学习笔记02:IQA模型性能评价指标(PLCC、SROCC、KROCC、RMSE)
- python quit()讲解_Python locals.QUIT属性代码示例
- 石基信息:战略性收购思迅软件,线下支付平台布局完善
- Uniapp实现小程序获取用户微信信息功能
- Give root password for maintenace (or press Control-D to continue):解决方法
- Color Space: Ycc
- 数据结构栈之中缀表达式求值(实现计算器综合计算)
- 印度区块链项目Matic Network的应用场景分析
- 我在京东的第417天:陷入了情绪的泥沼