中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

有想做企業(yè)網(wǎng)站建設(shè)微商怎么引流被別人加

有想做企業(yè)網(wǎng)站建設(shè),微商怎么引流被別人加,做網(wǎng)站的偽原創(chuàng)怎么弄,wordpress信息【案例6-4】 斗地主洗牌發(fā)牌 【案例介紹】 1.任務(wù)描述 撲克牌游戲“斗地主”,相信許多人都會(huì)玩,本案例要求編寫一個(gè)斗地主的洗牌發(fā)牌程序,要求按照斗地主的規(guī)則完成洗牌發(fā)牌的過程。一副撲克總共有54張牌,牌面由花色和數(shù)字組成…

【案例6-4】 斗地主洗牌發(fā)牌

【案例介紹】

1.任務(wù)描述

撲克牌游戲“斗地主”,相信許多人都會(huì)玩,本案例要求編寫一個(gè)斗地主的洗牌發(fā)牌程序,要求按照斗地主的規(guī)則完成洗牌發(fā)牌的過程。一副撲克總共有54張牌,牌面由花色和數(shù)字組成(包括J、Q、K、A字母)組成,花色有?、?、?、? 四種,分別表示黑桃、紅桃、方塊、梅花,小?、大?分別表示小王和大王。斗地主游戲共有3位玩家參與,首先將這54張牌的順序打亂每人輪流摸一次牌,剩余3張留作底牌,然后在控制臺(tái)打印3位玩家的牌和3張底牌。

2.運(yùn)行結(jié)果

?任務(wù)運(yùn)行結(jié)果如圖6-1所示:

圖6-1? 運(yùn)行結(jié)果圖

?

【實(shí)現(xiàn)思路】

(1)要實(shí)現(xiàn)紙牌程序,首先需要完成紙牌的組裝。牌面是由花色(包括?、?、?、?花色)和數(shù)字(包括J、Q、K、A字母)兩部分組成,可以創(chuàng)建兩個(gè)ArrayList集合作為花色集合與數(shù)字集合,存儲(chǔ)時(shí)需要注意。比10大的牌的數(shù)字用J、Q、K表示,1用A表示。

(2)將花色集合與數(shù)字集合這兩個(gè)循環(huán)進(jìn)行嵌套循環(huán),將花色與數(shù)字組合,形成52章牌,并賦予其編號(hào)。將組合后的牌存放到一個(gè)HashMap集合中,集合的Key值是編號(hào),value值是組裝完成的紙牌。還有兩張牌是大小王(小?表示小王、大?表示大王)。由于組裝規(guī)則不一致,需單獨(dú)使用add()方法將這兩張牌加入到HashMap集合中。

(3)創(chuàng)建一個(gè)數(shù)字集合,用這個(gè)數(shù)字集合代替紙牌完成洗牌和發(fā)牌操作。由于紙牌的數(shù)量是54張,所以創(chuàng)建集合范圍是0~53。?

(4)可以使用Collection類的shuffle()方法完成打亂數(shù)字集合的操作,實(shí)現(xiàn)洗牌效果。由于只有3個(gè)人,所以可以使用for循環(huán),通過將數(shù)字與3取余的方法,將代表不同紙牌的數(shù)字分配給不同人與底牌,實(shí)現(xiàn)發(fā)牌效果。

(5) 洗牌和發(fā)牌結(jié)束后,可以通過Collection類的sort()方法完成排序,之后通過foreach()循環(huán)HashMap集合,根據(jù)數(shù)字查找對(duì)應(yīng)的紙牌字符串,并存入創(chuàng)建的字符串集合中,最后展示字符串集合。

【實(shí)現(xiàn)代碼】

程序?qū)崿F(xiàn)代碼如文件6-1所示。?

??????????????? ?????????文件6-1 ?example5.java

  1. package com.itheima;
  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.HashMap;
  5. public class example {
  6. ??? public static void main(String[] args) {
  7. ??????? // 準(zhǔn)備花色
  8. ??????? ArrayList<String> color = new ArrayList<String>();
  9. ??????? color.add("?");
  10. ??????? color.add("?");
  11. ??????? color.add("?");
  12. ??????? color.add("?");
  13. ??????? // 準(zhǔn)備數(shù)字 ,ArrayList將紙牌由小到大排序
  14. ??????? ArrayList<String> number = new ArrayList<String>();
  15. ??????? for (int i = 3; i <= 10; i++) {
  16. ?????????? number.add(i + "");
  17. ??????? }
  18. ??????? number.add("J");
  19. ??????? number.add("Q");
  20. ??????? number.add("K");
  21. ??????? number.add("A");
  22. ??????? number.add("2");
  23. ??????? // 定義一個(gè)map集合:用來將數(shù)字與每一張牌進(jìn)行對(duì)應(yīng)
  24. ??? ???HashMap<Integer, String> map = new HashMap<Integer, String>();
  25. ?????????int index = 0;// 紙牌編號(hào)
  26. ??????? for (String thisNumber : number) {// 循環(huán)紙牌數(shù)字
  27. ?????????? for (String thisColor : color) {// 循環(huán)紙牌花色
  28. ?????????????? // 將花色與數(shù)字組合,形成52張牌,并賦予其編號(hào)
  29. ?????????????? map.put(index++, thisColor + thisNumber);
  30. ?????????? }
  31. ??????? }
  32. ??????? // 加入大小王
  33. ??????? map.put(index++, "?");
  34. ??????? map.put(index++, "?");
  35. ??????? // 一副54張的牌 ArrayList里邊為0-53的數(shù)的新牌
  36. ??????? ArrayList<Integer> cards = new ArrayList<Integer>();
  37. ??????? for (int i = 0; i <= 53; i++) {
  38. ?????????? cards.add(i);// 此時(shí)的cards順序?yàn)?/span>0-53
  39. ??????? }
  40. ??????? // 洗牌,使用Collections工具類中的shuffle()方法
  41. ??????? Collections.shuffle(cards);// 此時(shí)的cards順序已被打亂
  42. ??????? // 創(chuàng)建三個(gè)玩家和底牌
  43. ??????? ArrayList<Integer> iPlayer = new ArrayList<Integer>();
  44. ??????? ArrayList<Integer> iPlayer2 = new ArrayList<Integer>();
  45. ??????? ArrayList<Integer> iPlayer3 = new ArrayList<Integer>();
  46. ??????? ArrayList<Integer> iSecretCards = new ArrayList<Integer>();
  47. ??????? // 遍歷這副洗好的牌,遍歷過程中,將牌發(fā)到三個(gè)玩家和底牌中
  48. ??????? for (int i = 0; i < cards.size(); i++) {
  49. ?????????? if (i >= 51) {
  50. ?????????????? iSecretCards.add(cards.get(i));// 留取3張底牌
  51. ?????????? } else {
  52. ?????????????? if (i % 3 == 0) {
  53. ?????????????? ??iPlayer.add(cards.get(i));//3取余為0的牌發(fā)給玩家1
  54. ?????????????? } else if (i % 3 == 1) {
  55. ?????????????? ??iPlayer2.add(cards.get(i));//3取余為1的牌發(fā)給玩家2
  56. ?????????????? } else {
  57. ?????????????????? iPlayer3.add(cards.get(i));// 其余的牌發(fā)給玩家3
  58. ?????????????? }
  59. ?????????? }
  60. ??????? }
  61. ??????? // 對(duì)每個(gè)人手中的牌排序,使用Collections工具類中的sort()方法
  62. ??????? Collections.sort(iPlayer);
  63. ??????? Collections.sort(iPlayer2);
  64. ??????? Collections.sort(iPlayer3);
  65. ??????? // 對(duì)應(yīng)數(shù)字形式的每個(gè)人手中的牌,定義字符串形式的牌
  66. ??????? ArrayList<String> sPlayer = new ArrayList<String>();
  67. ??????? ArrayList<String> sPlayer2 = new ArrayList<String>();
  68. ??????? ArrayList<String> sPlayer3 = new ArrayList<String>();
  69. ??????? ArrayList<String> sSecretCards = new ArrayList<String>();
  70. ??????? // 循環(huán)主鍵,從map中獲取紙牌
  71. ??????? for (Integer key : iPlayer) {
  72. ?????????? sPlayer.add(map.get(key));
  73. ??????? }
  74. ??????? for (Integer key : iPlayer2) {
  75. ?????????? sPlayer2.add(map.get(key));
  76. ??????? }
  77. ??????? for (Integer key : iPlayer3) {
  78. ?????????? sPlayer3.add(map.get(key));
  79. ??????? }
  80. ??????? for (Integer key : iSecretCards) {
  81. ?????????? sSecretCards.add(map.get(key));
  82. ??????? }
  83. ?????????? // 看牌
  84. ?????????? System.out.println("玩家1" + sPlayer);
  85. ?????????? System.out.println("玩家2" + sPlayer2);
  86. ?????????? System.out.println("玩家3" + sPlayer3);
  87. ?????????? System.out.println("底牌:" + sSecretCards);
  88. ??????? }
  89. }

在文件6-1中,第8~22行代碼將4種花色和13個(gè)紙牌編號(hào)分別放到兩個(gè)ArrayList集合中。第24~34當(dāng)代碼foreach循環(huán)拼出52張紙牌,并將其依照從小到大的順序放入Map集合中,并將大小王添加到其中。第36~41行代碼創(chuàng)建了代替紙牌的數(shù)字集合,將其與紙牌中的序號(hào)對(duì)應(yīng),并將數(shù)字集合中的順序打亂,此時(shí)集合相當(dāng)于紙牌編號(hào)集合。第43~60行代碼完成了將紙牌編號(hào)發(fā)給3位玩家并留3張紙牌編號(hào)做為底牌的操作。第62~64行代碼將3位玩家手中紙牌編號(hào)進(jìn)行排序。第66~88行代碼通過循環(huán)3位玩家手中的紙牌編號(hào),將紙牌字符串從Map中取出放入字符串集合。最后打印字符串集合,分別得到3個(gè)玩家的紙牌和底牌。

?

http://www.risenshineclean.com/news/60030.html

相關(guān)文章:

  • magento網(wǎng)站遷移seo排名優(yōu)化有哪些
  • 重慶網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn)機(jī)構(gòu)網(wǎng)站統(tǒng)計(jì)平臺(tái)
  • html5可以做動(dòng)態(tài)網(wǎng)站網(wǎng)絡(luò)關(guān)鍵詞優(yōu)化方法
  • 高德地圖開發(fā)平臺(tái)淘寶seo搜索優(yōu)化
  • 用心做的網(wǎng)站軟件開發(fā)公司推薦
  • 網(wǎng)站開發(fā)軟件手機(jī)版網(wǎng)絡(luò)科技公司騙了我36800
  • 專用車網(wǎng)站建設(shè)哪家好比較靠譜的電商培訓(xùn)機(jī)構(gòu)
  • 北京建行網(wǎng)站營(yíng)銷策劃方案
  • 做網(wǎng)站收入長(zhǎng)沙正規(guī)競(jìng)價(jià)優(yōu)化推薦
  • 手機(jī)端怎么網(wǎng)站建設(shè)seo標(biāo)簽優(yōu)化
  • 自己有網(wǎng)站怎么做點(diǎn)卡網(wǎng)絡(luò)推廣的方法有
  • 做網(wǎng)站掙錢么網(wǎng)站推廣是做什么的
  • 網(wǎng)站里的搜索怎么做免費(fèi)制作自己的網(wǎng)站
  • 西安本地十家做網(wǎng)站建設(shè)的公司seo網(wǎng)站排名的軟件
  • 醫(yī)學(xué)院英文網(wǎng)站建設(shè)方案廣州網(wǎng)絡(luò)推廣哪家好
  • 上海網(wǎng)站開發(fā)哪里有外鏈發(fā)布網(wǎng)站
  • 如何在vs做網(wǎng)站免費(fèi)線上培訓(xùn)平臺(tái)
  • 關(guān)于政府網(wǎng)站建設(shè)的幾點(diǎn)建議免費(fèi)個(gè)人網(wǎng)頁(yè)制作
  • 蕭山城區(qū)建設(shè)有限公司網(wǎng)站公司官網(wǎng)制作多少錢
  • 做網(wǎng)站有沒有受騙過免費(fèi)刷贊網(wǎng)站推廣免費(fèi)
  • 網(wǎng)站建設(shè)費(fèi)怎么做分錄seo案例視頻教程
  • 昆明網(wǎng)站建設(shè)服務(wù)html網(wǎng)頁(yè)制作app
  • 網(wǎng)頁(yè)制作網(wǎng)站平臺(tái)深圳網(wǎng)絡(luò)推廣網(wǎng)絡(luò)
  • 中國(guó)數(shù)學(xué)外國(guó)人做視頻網(wǎng)站網(wǎng)絡(luò)軟件開發(fā)
  • 買完域名后如何建設(shè)網(wǎng)站seo基礎(chǔ)課程
  • 維度 網(wǎng)站建設(shè)什么是軟文寫作
  • wordpress默認(rèn)logo圖片路徑佛山seo關(guān)鍵詞排名
  • 中國(guó)建設(shè)銀行吉林省分行官網(wǎng)站電子商務(wù)
  • 網(wǎng)頁(yè)設(shè)計(jì)技術(shù)論文青島seo關(guān)鍵字排名
  • php網(wǎng)站開發(fā)實(shí)踐太原百度公司地址