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

贵阳网站设计公司价格广州市住房和城乡建设局

贵阳网站设计公司价格,广州市住房和城乡建设局,网络销售是做网站推广,齐家网装修口碑怎么样未排序版: 准备牌->洗牌 -> 发牌 -> 看牌: App程序入口: package doudihzu01;public class App {public static void main(String[] args) {/*作为斗地主程序入口这里不写代码逻辑*///无参创建对象,作为程序启动new PokerGame();…

未排序版:


准备牌->洗牌 -> 发牌 -> 看牌:

App程序入口:

package doudihzu01;public class App {public static void main(String[] args) {/*作为斗地主程序入口这里不写代码逻辑*///无参创建对象,作为程序启动new PokerGame();}
}

代码逻辑:

package doudihzu01;
import java.util.ArrayList;
import java.util.Collections;
public class PokerGame {//因为是用无参创建对象开始程序,所以代码逻辑要写在无参构造内//静态代码块内使用了集合,静态内只能使用静态,所以static修饰//放在成员位置是为了其他位置好调用static ArrayList<String> list = new ArrayList<>();//牌盒//静态代码块--随着类的加载而加载static {/*1.准备牌*///目的:我们要把花色和牌号拼接起来String[] color = {"♣", "♠", "♦", "♥"};String[] number = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};//定义一个集合用来存放拼接好的牌//增强for遍历拼接for (String s : color) {for (String string : number) {list.add(s + string);}}list.add("大王");list.add("小王");}//无参构造public PokerGame() {/*2.洗牌*/Collections.shuffle(list);/*3.发牌*///用四个集合来存牌:底牌、玩家1、玩家2、玩家3ArrayList<String> lord = new ArrayList<>();ArrayList<String> player1 = new ArrayList<>();ArrayList<String> player2 = new ArrayList<>();ArrayList<String> player3 = new ArrayList<>();//遍历打乱好的牌,发牌规则:前三张为底牌,后面轮流发牌//因为需要挨个发牌,所以用带索引的遍历方式for (int i = 0; i < list.size(); i++) {//如果是前三张牌,就做为底牌,添加到集合中if (i <= 2) {lord.add(list.get(i));continue;//直接下一循环,不要再走下面判断了,提升效率}if (i % 3 == 0) {player1.add(list.get(i));} else if (i % 3 == 1) {player2.add(list.get(i));} else {player3.add(list.get(i));}}/*4.看牌*///抽取成一个方法lookPoker("底牌", lord);lookPoker("玩家一", player1);lookPoker("玩家二", player2);lookPoker("玩家三", player3);}public static void lookPoker(String name, ArrayList<String> player) {System.out.print(name+":");for (String s : player) {System.out.print(s + "  ");}System.out.println();}}

底牌:♠Q ♦8 ♣2
玩家一:♦5 ♠A ♦4 ♠5 ♣J 大王 ♠10 ♣10 ♦3 ♦K ♣Q ♠K ♥A ♥7 ♣4 ♠2 ♥K
玩家二:♥5 ♠7 ♦Q ♥2 ♣6 ♣A 小王 ♦7 ♣8 ♠4 ♣K ♥10 ♣9 ♣3 ♦6 ♠6 ♣5
玩家三:♣7 ♥3 ♥8 ♥4 ♠J ♦A ♥6 ♠9 ♠8 ♦9 ♦10 ♦J ♥Q ♠3 ♦2 ♥J ♥9

排序版


准备牌->洗牌 -> 发牌 (同时拍好了序)->->看牌
程序入口:

package doudizhu02;
public class App {public static void main(String[] args) {/*作为斗地主程序入口这里不写代码逻辑*///无参创建对象,作为程序启动new PokerGame();}
}

逻辑实现:

package doudizhu02;import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;public class PokerGame {//Map用来放牌号和序号的对应关系,强调的是对应关系,而不是排序,后面用序号获取牌的时候有用static HashMap<Integer,String>hm=new HashMap<>();//ArrayList用来放序号,到时候发牌就拿单列集合发序号就可以了,看牌的时候拿Map获取对应的牌号即可static ArrayList<Integer>list=new ArrayList<>();static {//准备牌:花色,牌号,目的拼接  花色与牌String[] color = {"♦", "♣", "♥", "♠"};String[] number = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};//序号从1开始放int serialNumber=1;for (String n : number) {//外循环是牌号,内循环是花色,可以保证小的在前,大的在后:效果是这样♦3 ♣3 ♥3 ♠3 ♦4 ♣4 ♥4 ♠4 ♦5 ♣5 ♥5 ♠5 ♦6 ♣6 ♥6 ♠6 ♦7 ♣7 ♥7 ♠7 ♦8 ♣8 ♥8 ♠8 ♦9 ♣9 ♥9 ♠9 ♦10 ♣10 ♥10 ♠10 ♦J ♣J ♥J ♠J ♦Q ♣Q ♥Q ♠Q ♦K ♣K ♥K ♠K ♦A ♣A ♥A ♠A ♦2 ♣2 ♥2 ♠2//如果外循环是花色,内循环是牌号,效果是这样:明显不符合要求♦3 ♦4 ♦5 ♦6 ♦7 ♦8 ♦9 ♦10 ♦J ♦Q ♦K ♦A ♦2 ♣3 ♣4 ♣5 ♣6 ♣7 ♣8 ♣9 ♣10 ♣J ♣Q ♣K ♣A ♣2 ♥3 ♥4 ♥5 ♥6 ♥7 ♥8 ♥9 ♥10 ♥J ♥Q ♥K ♥A ♥2 ♠3 ♠4 ♠5 ♠6 ♠7 ♠8 ♠9 ♠10 ♠J ♠Q ♠K ♠A ♠2for (String c : color) {hm.put(serialNumber,c+n);//键是序号,值是准备好的牌list.add(serialNumber);//序号放入单列集合serialNumber++;//序号自增}}hm.put(serialNumber,"小王");//键是序号,值是准备好的牌list.add(serialNumber);//序号放入单列集合serialNumber++;//序号++hm.put(serialNumber,"大王");//键是序号,值是准备好的牌list.add(serialNumber);//序号放入单列集合}public PokerGame() {/*洗牌---洗单列集合内的序号即可,因为到时候发牌就是拿单列集合发序号*/Collections.shuffle(list);/*发牌:*///定义四个单列集合用来存放 发到的序号,又因为TreeSet对于Integer具有*默认排序*的特点TreeSet<Integer>lord=new TreeSet<>();//地主牌TreeSet<Integer>player1=new TreeSet<>();//玩家一TreeSet<Integer>player2=new TreeSet<>();//玩家二TreeSet<Integer>player3=new TreeSet<>();//玩家三//遍历list序号集合for (int i = 0; i < list.size(); i++) {//下面就是发牌规则// list.get(i):元素,即牌的序号if (i<=2){lord.add(list.get(i));continue;//当i<=2时只要发地主拍即可,下面不用再判断了,提升效率}if (i%3==0){player1.add(list.get(i));} else if (i%3==1) {player2.add(list.get(i));}else {player3.add(list.get(i));}}/*看牌*///就是拿着Map集合将单列集合内的序号获取对应的牌号即可----抽取成一个方法lookPoker("底牌", lord);lookPoker("玩家1", player1);lookPoker("玩家2", player2);lookPoker("玩家3", player3);}public static void lookPoker(String name,TreeSet<Integer>ts){System.out.print(name+": ");//遍历单列集合for (Integer i : ts) {//利用Map集合将单列集合内的序号获取到对应的牌号System.out.print(hm.get(i)+" ");}System.out.println();//每获取完一个集合的牌后换行}
}

底牌: ♥5 ♥6 ♥Q
玩家1: ♣3 ♥3 ♣4 ♣5 ♠6 ♥7 ♥8 ♥9 ♥10 ♦J ♥J ♠Q ♦K ♣A ♦2 小王 大王
玩家2: ♥4 ♠5 ♦6 ♣6 ♦7 ♣7 ♦8 ♠8 ♣9 ♠9 ♣10 ♣J ♠J ♦Q ♣Q ♥K ♣2
玩家3: ♦3 ♠3 ♦4 ♠4 ♦5 ♠7 ♣8 ♦9 ♦10 ♠10 ♣K ♠K ♦A ♥A ♠A ♥2 ♠2

http://www.yayakq.cn/news/599719/

相关文章:

  • 家政服务网站建设辽阳建设银行网站
  • 建设通网站是筑龙网的吗宁波网站建设设计制作
  • 白云网站建设音乐网站后台模板
  • 做emc的有哪些网站wordpress开启七牛
  • 重庆地区专业做网站的公司天津滨海新区大爆炸
  • 厦门制作公司网站哪家好建筑模板是什么材料
  • 自己主机做多个网站免费的做网站
  • 微信商城网站怎么做做房地产网站广告销售
  • 北京做手机网站网站开发的教学视频
  • 邦邻网站建设无锡网站建设培训班
  • 集团网站开发多少钱app推广赚佣金
  • 高端网站设计公司排名wordpress表格折叠插件
  • 企业网站推广可以选择哪些方法深圳品牌网站建设公司排名
  • 设计公司企业站网络服务包括哪些
  • 网站工作室南京seo代理
  • 建设营销型网站有哪些步骤建筑施工特种证书查询入口官网
  • 社交网站盈利吗百度官网首页登陆
  • 做网站jw100电脑制作网站总么做
  • 网站幻灯片 字段中国互联网行业的发展趋势
  • 想建网站做优化wordpress做图片站
  • 关于网站建设调查问卷跨境电商平台有哪些营销方式
  • 阿里云服务器 网站东莞seo优化收费
  • 建搜索型网站在深圳如何注册公司
  • 中企动力科技股份有限公司网站官网微信小程序注册申请流程图
  • 襄阳市做网站的公司南昌做网站优化的公司
  • 吴中区两学一做网站建e网app下载
  • 织梦网站支付安装网站怎么重装wordpress
  • 建设网站简单的需要多少天计算机网络编程技术
  • 大连做网站不错的公司成都做网站优化价格
  • wordpress多站点好用吗辽宁建设工程信息网为什么打不开