編碼也快樂!撲克牌排序JAVA
一個Card類,一個PrintCards類負責輸出,首先初始化52張牌,然後洗牌,最後對每一張牌判斷花色,加入相應的ArrayList中,對ArrayList排序,再輸出即可,程式碼如下: Update:程式碼部分更新,已自己實現排序
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.Iterator; import java.util.Random;
public class PrintCards {
public static void Print() {
ArrayList<Card> Cards = new ArrayList<Card>(13 * 4);
init(Cards);
for (int i = 0; i < 5; i++) {
shuffle(Cards);
}
System.out.println("before");
for (Card card : Cards) {
System.out.print(card.toString());
}
System.out.println("");
ArrayList<Card> heitao = new ArrayList<Card>(13);
ArrayList<Card> hongtao = new ArrayList<Card>(13);
ArrayList<Card> meihua = new ArrayList<Card>(13);
ArrayList<Card> fangpian = new ArrayList<Card>(13);
for (Card card : Cards) {
if (card.color == 3) {
heitao.add(card);
}
if (card.color == 2) {
hongtao.add(card);
}
if (card.color == 1) {
meihua.add(card);
}
if (card.color == 0) {
fangpian.add(card);
}
}
System.out.println("after:");
for (Card card : sort(heitao)) {
System.out.print(card);
}
for (Card card : sort(hongtao)) {
System.out.print(card);
}
for (Card card : sort(meihua)) {
System.out.print(card);
}
for (Card card : sort(fangpian)) {
System.out.print(card);
}
}
private static ArrayList<Card> sort(ArrayList<Card> cardArrayList) {
ArrayList<Card> temp = new ArrayList<Card>(13);
for (int i = 0; i < 13; i++) {
temp.add(new Card());
}
for (Card card : cardArrayList) {
temp.set(card.number, card);
}
return temp;
}
public static ArrayList<Card> init(ArrayList<Card> Cards) {
for (int i = 0; i < 52; i++) {
Card card = new Card();
card.number = i % 13;
card.color = i / 13;
Cards.add(card);
}
return Cards;
}
public static ArrayList<Card> shuffle(ArrayList<Card> Cards) {
Date date = new Date();
Random random = new Random(date.getTime());
for (int i = 0; i < 52; i++) {
swap(Cards.get(i), Cards.get(random.nextInt(42)));
}
return Cards;
}
private static void swap(Card card, Card card2) {
int tempnumber = card.number;
card.number = card2.number;
card2.number = tempnumber;
int tempcolor = card.color;
card.color = card2.color;
card2.color = tempcolor;
}
public static void main(String[] args) {
Print();
}
}
Card.java類
public class Card{ public int number; public int color;
@Override
public String toString() {
String ColorResult = null;
String NumberResult;
switch (color) {
case 3:
ColorResult = "黑桃";
break;
case 2:
ColorResult = "紅桃 ";
break;
case 1:
ColorResult = "梅花";
break;
case 0:
ColorResult = "方片";
break;
}
switch (number) {
case 9:
NumberResult = "J";
break;
case 10:
NumberResult = "Q";
break;
case 11:
NumberResult = "K";
break;
case 12:
NumberResult = "A";
break;
default:
NumberResult = "" + (number + 2);
break;
}
return ColorResult + ":" + NumberResult + " ";
}
} 結果:
相關文章
- 編碼也快樂活動:撲克牌排序排序
- 編碼也快樂:撲克牌排序 - Python排序Python
- 編碼也快樂活動:撲克牌排序(JavaScript)排序JavaScript
- 撲克牌排序(JS版) 編碼也快樂!排序JS
- 用Java實現撲克牌排序Java排序
- 用SQL實現撲克牌排序SQL排序
- 用C實現撲克牌排序排序
- 用C#實現撲克牌排序C#排序
- 撲克牌排序:基於基數排序的方法排序
- 用cpp0.5實現撲克牌排序排序
- 撲克牌排序-Scala之畫蛇添足版排序
- java程式:簡易撲克牌遊戲Java遊戲
- 簡易撲克牌遊戲JAVA原始碼_新手上路遊戲Java原始碼
- Java 簡單實現撲克牌抽象類Java抽象
- 使用Java語言寫的一個簡單的撲克牌發牌程式碼Java
- Java第三季—簡易撲克牌遊戲Java遊戲
- Java入門第三季撲克牌小遊戲Java遊戲
- Java學習--撲克牌比大小的小遊戲Java遊戲
- 自己寫的一個洗撲克牌的java程式Java
- 撲克牌速算24 -窮舉(JavaScript)JavaScript
- Java第三季撲克牌作業 參考了幕友的排序方法 非常感謝Java排序
- SwiftUI:看我展示52張撲克牌,“很快啊!”SwiftUI
- 編碼也快樂:兩隻水壺F#程式
- 編碼也快樂:兩隻水壺Scheme程式Scheme
- 編碼也快樂:兩隻水壺C#程式C#
- JAVA入門第三季——最後練習題撲克牌Java
- 純CSS實現撲克牌效果,太牛了吧CSS
- 編碼也快樂:取得3升水C#版C#
- 編碼也快樂:兩水壺的故事之JS程式JS
- java入門最後一章 簡易撲克牌比較大小Java
- Python程式設計基礎練習——撲克牌發牌問題Python程式設計
- Java入門第三季7-1簡易撲克牌作業Java
- [每日一題] 第十二題:撲克牌中的順子每日一題
- 簡易撲克牌遊戲簡單實現,歡迎指正遊戲
- 【YOLOv5】實現撲克牌的點數識別YOLO
- python實現撲克遊戲 - 抽鬼牌 和 21點Python遊戲
- python例項:解決經典撲克牌遊戲 -- 四張牌湊24點 (一)Python遊戲
- python例項:解決經典撲克牌遊戲 -- 四張牌湊24點 (二)Python遊戲