扑克牌排序_JAVA 扑克牌排序打印,并进行洗牌
生活随笔
收集整理的這篇文章主要介紹了
扑克牌排序_JAVA 扑克牌排序打印,并进行洗牌
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
點(diǎn)擊上方藍(lán)字關(guān)注我們
一、Puke類:
首先定義撲克牌的參數(shù)
?定義字符串型的花色(color),點(diǎn)數(shù)(points)兩個有關(guān)于撲克牌的參數(shù),且用private關(guān)鍵字進(jìn)行修飾,被private修飾的后的成員只能在本類中被訪問,并且需要提供對應(yīng)的set,get方法,以提高數(shù)據(jù)的安全性。
public class Puke { private String color; private String points; ??public?Puke(){????} public Puke(String color,String points){ this.color=color; this.points=points;??} public String getColor() { return color;??} public void setColor(String color) { this.color = color;??} public String getPoints() { return points;??} public void setPoints(String points) { this.points = points;??equals方法:撲克牌中沒有花色,點(diǎn)數(shù)完全相同的兩張撲克牌,為避免重復(fù)多余,通過花色和點(diǎn)數(shù)兩個特征值來判斷兩張撲克牌是否“等價”,當(dāng)這兩張撲克牌等價時,判斷結(jié)果為false,否則結(jié)果為true。運(yùn)用toString方法確定最后打印出來的格式為花色+點(diǎn)數(shù)(如:黑桃A)public boolean equals(Object obj){ Puke p = (Puke) obj; if(this == obj){ return true; } if(obj == null){ return false; } if(obj instanceof Puke){ return this.color.equals(p.getColor())&&this.points.equals(p.getPoints()); } return false;??} public String toString(){ return color+points;??}二、Test類:
為了使得結(jié)果清晰明了,方便閱讀,我們對最后打印出來的格式進(jìn)行規(guī)定,插入一個show()方法。按照撲克牌的數(shù)量,每十三張就進(jìn)行一次換行,要注意這里是list數(shù)組,數(shù)組的長度需要用list.size()來表示。public class TestPuke { public static void show(ArrayList list) { for(int i=0;i System.out.print(list.get(i)+" "); if((i+1)%13 == 0){ System.out.print("\n"); } }??}main方法 里首先定義一個list數(shù)組,存儲最后花色+點(diǎn)數(shù)格式的撲克牌,類型要保證一致。為了不造成混亂,方便存儲將花色和點(diǎn)數(shù)兩個參數(shù)分開存在兩個String數(shù)組當(dāng)中。插入兩層for循環(huán)將花色點(diǎn)數(shù)兩個數(shù)組依次添入list數(shù)組當(dāng)中,因為大小王的格式特殊,在此跳出循環(huán)單獨(dú)添加進(jìn)入數(shù)組當(dāng)中。最后調(diào)用show方法對數(shù)組進(jìn)行打印。(為了方便測試,我們將黑桃設(shè)為最大進(jìn)行測試)public static void main(String[] args) { ArrayListlist = new ArrayList(); String [] color = {"黑桃","梅花","方片","紅桃"}; String [] points = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; for (int i = 0; i < color.length; i++) { for (int j = 0; j < points.length; j++) { list.add(new Puke(color[i], points[j])); } } list.add(new Puke("紅","大王")); list.add(new Puke("黑","小王"));????show(list);執(zhí)行如上代碼打印結(jié)果如下:
若要進(jìn)行隨機(jī)打亂的洗牌操作則導(dǎo)入java.util.Collections接口,調(diào)用Collections.shuffle()方法進(jìn)行隨機(jī)排序打亂。Collections.shuffle(list); System.out.println("\n洗牌后:"); show(list); }}? ? 洗牌結(jié)果如下:
自此,洗牌完成。
原文:CSDN博主「森光等嶼」
原文鏈接:https://blog.csdn.net/weixin_43634775/article/details/97399536
歡迎關(guān)注“Java引導(dǎo)者”,我們分享最有價值的Java的干貨文章,助力您成為有思想的Java開發(fā)工程師!
總結(jié)
以上是生活随笔為你收集整理的扑克牌排序_JAVA 扑克牌排序打印,并进行洗牌的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 寻找一部美国电影的名字
- 下一篇: 模拟器不全屏_iOS 14实测GBA游戏