当前位置: 首页 > news >正文

江苏城乡建设学院网站seo教程技术

江苏城乡建设学院网站,seo教程技术,seo工作内容,动漫制作专业属于什么大类【案例6-4】 斗地主洗牌发牌 【案例介绍】 1.任务描述 扑克牌游戏“斗地主”#xff0c;相信许多人都会玩#xff0c;本案例要求编写一个斗地主的洗牌发牌程序#xff0c;要求按照斗地主的规则完成洗牌发牌的过程。一副扑克总共有54张牌#xff0c;牌面由花色和数字组成…【案例6-4】 斗地主洗牌发牌 【案例介绍】 1.任务描述 扑克牌游戏“斗地主”相信许多人都会玩本案例要求编写一个斗地主的洗牌发牌程序要求按照斗地主的规则完成洗牌发牌的过程。一副扑克总共有54张牌牌面由花色和数字组成包括J、Q、K、A字母组成花色有♠、♥、♦、♣ 四种分别表示黑桃、红桃、方块、梅花小☺、大☻分别表示小王和大王。斗地主游戏共有3位玩家参与首先将这54张牌的顺序打乱每人轮流摸一次牌剩余3张留作底牌然后在控制台打印3位玩家的牌和3张底牌。 2.运行结果 任务运行结果如图6-1所示 图6-1  运行结果图 【实现思路】 1要实现纸牌程序首先需要完成纸牌的组装。牌面是由花色包括♠、♥、♦、♣花色和数字包括J、Q、K、A字母两部分组成可以创建两个ArrayList集合作为花色集合与数字集合存储时需要注意。比10大的牌的数字用J、Q、K表示1用A表示。 2将花色集合与数字集合这两个循环进行嵌套循环将花色与数字组合形成52章牌并赋予其编号。将组合后的牌存放到一个HashMap集合中集合的Key值是编号value值是组装完成的纸牌。还有两张牌是大小王小☺表示小王、大☻表示大王。由于组装规则不一致需单独使用add()方法将这两张牌加入到HashMap集合中。 3创建一个数字集合用这个数字集合代替纸牌完成洗牌和发牌操作。由于纸牌的数量是54张所以创建集合范围是0~53。  4可以使用Collection类的shuffle()方法完成打乱数字集合的操作实现洗牌效果。由于只有3个人所以可以使用for循环通过将数字与3取余的方法将代表不同纸牌的数字分配给不同人与底牌实现发牌效果。 5 洗牌和发牌结束后可以通过Collection类的sort()方法完成排序之后通过foreach()循环HashMap集合根据数字查找对应的纸牌字符串并存入创建的字符串集合中最后展示字符串集合。 【实现代码】 程序实现代码如文件6-1所示。  文件6-1  example5.java package com.itheima;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;public class example {    public static void main(String[] args) {        // 准备花色        ArrayListString color new ArrayListString();        color.add(♠);        color.add(♥);        color.add(♦);        color.add(♣);        // 准备数字 ,用ArrayList将纸牌由小到大排序        ArrayListString number new ArrayListString();        for (int i 3; i 10; i) {           number.add(i );        }        number.add(J);        number.add(Q);        number.add(K);        number.add(A);        number.add(2);        // 定义一个map集合用来将数字与每一张牌进行对应       HashMapInteger, String map new HashMapInteger, String();         int index 0;// 纸牌编号        for (String thisNumber : number) {// 循环纸牌数字           for (String thisColor : color) {// 循环纸牌花色               // 将花色与数字组合形成52张牌并赋予其编号               map.put(index, thisColor thisNumber);           }        }        // 加入大小王        map.put(index, 小☺);        map.put(index, 大☻);        // 一副54张的牌 ArrayList里边为0-53的数的新牌        ArrayListInteger cards new ArrayListInteger();        for (int i 0; i 53; i) {           cards.add(i);// 此时的cards顺序为0-53        }        // 洗牌使用Collections工具类中的shuffle()方法        Collections.shuffle(cards);// 此时的cards顺序已被打乱        // 创建三个玩家和底牌        ArrayListInteger iPlayer new ArrayListInteger();        ArrayListInteger iPlayer2 new ArrayListInteger();        ArrayListInteger iPlayer3 new ArrayListInteger();        ArrayListInteger iSecretCards new ArrayListInteger();        // 遍历这副洗好的牌遍历过程中将牌发到三个玩家和底牌中        for (int i 0; i cards.size(); i) {           if (i 51) {               iSecretCards.add(cards.get(i));// 留取3张底牌           } else {               if (i % 3 0) {                 iPlayer.add(cards.get(i));//与3取余为0的牌发给玩家1               } else if (i % 3 1) {                 iPlayer2.add(cards.get(i));//与3取余为1的牌发给玩家2               } else {                   iPlayer3.add(cards.get(i));// 其余的牌发给玩家3               }           }        }        // 对每个人手中的牌排序使用Collections工具类中的sort()方法        Collections.sort(iPlayer);        Collections.sort(iPlayer2);        Collections.sort(iPlayer3);        // 对应数字形式的每个人手中的牌定义字符串形式的牌        ArrayListString sPlayer new ArrayListString();        ArrayListString sPlayer2 new ArrayListString();        ArrayListString sPlayer3 new ArrayListString();        ArrayListString sSecretCards new ArrayListString();        // 循环主键从map中获取纸牌        for (Integer key : iPlayer) {           sPlayer.add(map.get(key));        }        for (Integer key : iPlayer2) {           sPlayer2.add(map.get(key));        }        for (Integer key : iPlayer3) {           sPlayer3.add(map.get(key));        }        for (Integer key : iSecretCards) {           sSecretCards.add(map.get(key));        }           // 看牌           System.out.println(玩家1 sPlayer);           System.out.println(玩家2 sPlayer2);           System.out.println(玩家3 sPlayer3);           System.out.println(底牌 sSecretCards);        }} 在文件6-1中第8~22行代码将4种花色和13个纸牌编号分别放到两个ArrayList集合中。第24~34当代码foreach循环拼出52张纸牌并将其依照从小到大的顺序放入Map集合中并将大小王添加到其中。第36~41行代码创建了代替纸牌的数字集合将其与纸牌中的序号对应并将数字集合中的顺序打乱此时集合相当于纸牌编号集合。第43~60行代码完成了将纸牌编号发给3位玩家并留3张纸牌编号做为底牌的操作。第62~64行代码将3位玩家手中纸牌编号进行排序。第66~88行代码通过循环3位玩家手中的纸牌编号将纸牌字符串从Map中取出放入字符串集合。最后打印字符串集合分别得到3个玩家的纸牌和底牌。
http://www.hkea.cn/news/14574297/

相关文章:

  • 企业服务网站住房和城乡建设部网站公告
  • 有网站教做水电资料吗中山哪里有做微网站的
  • 帝国cms做漫画网站教程小程序制作单位
  • 联科三网合一网站建设系统邮件营销
  • 网站建设服务费入中山网站设计制作
  • 沈阳网站建设找德泰诺怎么做直播室的网站
  • 网站关键词排名突然没了农村网站建设必要性
  • 如何规范网站使用wordpress本地传图片
  • 如何提高网站访问量最美情侣高清免费视频播放
  • 哪里做网站排名外贸网站建设平台
  • 孝昌县建设局网站河北省建设厅网站网上建设大厅
  • 官网网站优化公司有做分期海淘的网站吗
  • 外贸网站建设网页wordpress解封
  • 中国建设银行投诉网站银铃建设通官方网站
  • 网站整体克隆包含后台wordpress分享到微信二维码
  • 网站框架是什么有没有专做自驾游的网站
  • 织梦网站首页重庆项目经理在建项目查询
  • 做网站的商家怎么赚取流量费网站如何做直播
  • 网站系统是什么电脑做ppt一般下载哪个网站好
  • 淘宝客优惠券网站建设教程视频软件工程师需要具备哪些能力
  • 网页的网站导航怎么做宣传推广方式
  • 做网站专业服务wordpress rss 作用
  • 一个公司做多个网站是好还是坏学校网站建设的意义和应用
  • 网站建设建设哪家便宜苏州 规划建设局网站
  • 石家庄网站建设蓝龙企微app下载安装
  • 上传到网站根目录网站建设的结构设计
  • 宣传旅游网站建设的重点是什么wordpress admin-ajax.php
  • 深圳做分销商城网站深圳公司开发网站
  • 个人网站做贷款广告wordpress mx主题VIP
  • 余姚做企业网站申请微信小程序流程