斗地主

规则:

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实现斗地主代码实例解析相关推荐

  1. java仓库管理设计报告_基于JAVA的仓库管理系统设计毕业设计.doc

    基于JAVA的仓库管理系统设计毕业设计 毕 业 设 计 论 文 专业班级:072班 学生姓名: 指导教师: 密级:内部 系别名称: 信息工程系 专业班级:072班 学生姓名: 学 号: 指导教师: A ...

  2. java课程设计拼图_基于Java拼图游戏的设计与实现(含录像)

    基于拼图游戏的设计与实现(含录像) 摘    要 本拼图游戏是基于J2SE平台开发的,它是一个Application,它的游戏规则和诺亚舟里的拼图游戏是一样的.这个游戏将一张大图切割成N张小图,然后在 ...

  3. python基于svm项目+课程设计报告_基于机器学习的脑电病理诊断

    是新朋友吗?记得先点蓝字关注我哦- (图片来自于网络) 1 引言 将机器学习方法应用于脑电信号的自动分析,特别是在基于脑电信号的临床诊断领域,因其巨大的应用前景而引起了广泛的兴趣.例如,它是检测和预测 ...

  4. java界面设计股票_利用JAVA实现股票交易系统设计参考.doc

    利用JAVA实现股票交易系统设计参考 目 录 摘要1 关键词1 Abstract2 Key words2 1 概述3 1.1 Java体系结构3 1.2 Java的优点3 1.3 Java的应用3 2 ...

  5. java管理系统中期报告_基于Java的图书馆管理系统的设计-中期报告

    基于Java的图书馆管理系统的设计-中期报告 毕业设计(论文)中期报告 毕业设计(论文)题目:基于Java的图书馆管理系统的设计 专业:计算机 学生信息: 指导教师信息: 报告提交日期:2012年5月 ...

  6. java程序实现剪刀石头布功能_基于JAVA的剪刀石头布游戏设计——Java课程设计报告_...

    基于JAVA的剪刀石头布游戏设计 1剪刀石头布游戏设计思路阐述 在设计游戏时,我们要充分考虑到剪刀石头布游戏的特性,以及多种技术的实现: ⑴构造创建服务器端和客户端 ⑵创建输入输出流 ⑶编写服务器端处 ...

  7. java万年历开题报告_基于java平台的多历法万年历软件#(开题报告+论文+源代码)...

    基于java平台的多历法万年历软件#(开题报告+论文+源代码) 如有需要请联系 QQ:1294122080 摘要 1.论文题目:基于java的多历法万年历软件 2. 专 业:计算机科学与技术 3.指导 ...

  8. 超市管理系统java swing+mysql报告_基于java+swing+mysql的超市管理系统

    运行环境:java jdk 1.8 IDE环境:Eclipse,Myeclipse,IDEA都可以 硬件环境:windows 7/8/10 2G内存以上(推荐4G,4G以上更好) 可以实现: 销售管理 ...

  9. java万年历开题报告_基于单片机的万年历开题报告.doc

    基于单片机的万年历开题报告.doc 还剩 13页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 基于单片机的万年历开题报告,考.动手制作的能力,我们在其 ...

最新文章

  1. 【Graph4NLP】阿尔伯塔大学博士毕业论文:基于图结构的自然语言处理
  2. 内存管理vma_(十三)Linux内存管理之vma/malloc/mmap
  3. 部署安装kubernetes client-python,执行pip install setup.py时报错
  4. GDCM:读取两个DICOM文件保存在另外dicom文件中的测试程序
  5. 小李飞刀:用python刷题ing....
  6. Linux下显示当前目录下的全部目录或文件
  7. std::vector 从大到小排序
  8. 进阶 09 Map集合
  9. shape中的ring标签的使用方法
  10. pymysql长时间连接自动断开解决方案
  11. 背景图片虚化的效果的css样式的实现
  12. java实现三进制转十进制
  13. 校验非空的注解@NotNull怎么取得自定义的message
  14. python实现微信自动加群_为Python开发人员提供实时代码片段,Kite获1700万美元A轮融资...
  15. 云服务器  虚拟主机  服务器
  16. 麒麟服务器v10系统安装时报错,银河麒麟V10服务器版本编译安装php7.2.12
  17. P1456 Monkey King 左偏树模板题
  18. c/c++ 计算屏幕的PPI
  19. 【Python123】 存款买房(B)
  20. 西门子西门子smart200和V90伺服程序

热门文章

  1. 春节特辑・戏说天津卫
  2. 图像质量评价学习笔记02:IQA模型性能评价指标(PLCC、SROCC、KROCC、RMSE)
  3. python quit()讲解_Python locals.QUIT属性代码示例
  4. 石基信息:战略性收购思迅软件,线下支付平台布局完善
  5. Uniapp实现小程序获取用户微信信息功能
  6. Give root password for maintenace (or press Control-D to continue):解决方法
  7. Color Space: Ycc
  8. 数据结构栈之中缀表达式求值(实现计算器综合计算)
  9. 印度区块链项目Matic Network的应用场景分析
  10. 我在京东的第417天:陷入了情绪的泥沼