日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

使用Java集合实现麻将(准备牌、洗牌、发牌、看牌)

發(fā)布時間:2024/3/7 java 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Java集合实现麻将(准备牌、洗牌、发牌、看牌) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

ArrayList簡單實現(xiàn)麻將且排序

  • 背景
  • 實現(xiàn)業(yè)務(wù)邏輯
  • 案例代碼

背景

完成麻將1-9 的**洗牌發(fā)牌操作**(不包括:東西南北風(fēng)、中發(fā)白) 麻將牌型科普: 1、條子:1-9每個數(shù)字*4 = 36張 2、萬子:1-9每個數(shù)字*4 = 36張 3、筒子:1-9每個數(shù)字*4 = 36張 總計:36+36+36 = 108張 要求:每人發(fā)13張隨即牌,**考慮排序問題**

實現(xiàn)業(yè)務(wù)邏輯

1、歡迎用戶,且讓用戶執(zhí)行洗牌操作指令 2、洗牌 3、發(fā)牌 4、將發(fā)到每位玩家手中的麻將進(jìn)行排序 5、將每位玩家手中的牌進(jìn)行遍歷

案例代碼

  • 麻將類
package com.rxx.day12_27; import java.util.Objects;public class Majiang implements Comparable<Majiang>{private String color;//花色private String num;//數(shù)字private Integer index;//個數(shù)//無參構(gòu)造器public Majiang() {}//有參構(gòu)造器public Majiang(String color, String num,Integer index) {this.color = color;this.num = num;this.index = index;}//比較器:重寫Comparable接口中的compareTo方法,定義麻將排序比較規(guī)則@Overridepublic int compareTo(Majiang o) {return this.index - o.index;}// get/set方法public String getColor() {return color;}public void setColor(String color) {this.color = color;}public String getNum() {return num;}public void setNum(String num) {this.num = num;}public Integer getIndex() {return index;}public void setIndex(Integer index) {this.index = index;}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Majiang majiang = (Majiang) o;return Objects.equals(color, majiang.color) &&Objects.equals(num, majiang.num) &&Objects.equals(index, majiang.index);}@Overridepublic int hashCode() {return Objects.hash(color, num, index);}@Overridepublic String toString() {return num + "-" + color;} }
  • 麻將業(yè)務(wù)類
package com.rxx.day12_27;import java.util.*;public class MajiangDemo {//構(gòu)建Scanner對象public static Scanner sc = new Scanner(System.in);//構(gòu)建四位麻將玩家public static List<Majiang> list_one,list_two,list_three,list_four;public static void main(String[] args) {//1、歡迎玩家開始洗牌操作welcome();//2、用戶輸入指令String xp = sc.nextLine();if ("xp".equalsIgnoreCase(xp)) {//3、洗牌操作List<Majiang> cardList = shuffleCards();System.out.println(cardList);//4、發(fā)牌操作playingMaJiang(cardList);//5、麻將排序maJiangCollection();//6、輸出四位玩家手中的麻將printAllMJ();}}//封裝:輸出每位玩家手中的牌public static void printAllMJ(){System.out.println("東號玩家牌型為:" + list_one);System.out.println("南號玩家牌型為:" + list_two);System.out.println("西號玩家牌型為:" + list_three);System.out.println("北號玩家牌型為:" + list_four);}//封裝:將四個人手中的麻將排序public static void maJiangCollection(){Collections.sort(list_one);Collections.sort(list_two);Collections.sort(list_three);Collections.sort(list_four);}//封裝:發(fā)麻將public static void playingMaJiang(List<Majiang> cardList){list_one = cardList.subList(0, 13);list_two = cardList.subList(13, 26);list_three = cardList.subList(26, 39);list_four = cardList.subList(39, 52);}//封裝歡迎public static void welcome(){System.out.println("歡迎來到歡樂菠菜娛樂中心");System.out.println("請選擇您的方位:1-東方;2-南方;3-西方;4-北方");int direction= Integer.parseInt(sc.nextLine());//根據(jù)方位判定玩家今日的勝率System.out.println("祝您今天財源廣進(jìn)---->");System.out.println("請輸入'xp'后,按回車開始進(jìn)行洗牌發(fā)牌操作...");}//封裝:洗牌操作public static List<Majiang> shuffleCards(){//1.定義返回牌型集合List<Majiang> list = new ArrayList<>();//2.定義花色String[] color = {"條","筒","萬"};//3.定義字符String[] num = {"一", "二", "三", "四", "五", "六", "七", "八","九"};//4.給每個牌一個數(shù)字方便后期排序int index=0;//4.定義隨機(jī)數(shù)Random r = new Random();for(int i=0;i<color.length;i++){for(int j=0;j<num.length;j++){//每個牌型四張牌,但是index不一樣list.add(new Majiang(color[i],num[j],index++));list.add(new Majiang(color[i],num[j],index++));list.add(new Majiang(color[i],num[j],index++));list.add(new Majiang(color[i],num[j],index++));}}//使用經(jīng)典Collections.shuffle打亂順序Collections.shuffle(list);return list;} }

謝謝大家閱讀,若有誤之處,歡迎大家指正……

總結(jié)

以上是生活随笔為你收集整理的使用Java集合实现麻将(准备牌、洗牌、发牌、看牌)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。