編碼也快樂!撲克牌排序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 + " ";
}
} 結果:
相關文章
- java程式:簡易撲克牌遊戲Java遊戲
- 簡易撲克牌遊戲JAVA原始碼_新手上路遊戲Java原始碼
- Java 簡單實現撲克牌抽象類Java抽象
- 使用Java語言寫的一個簡單的撲克牌發牌程式碼Java
- Java第三季—簡易撲克牌遊戲Java遊戲
- Java第三季撲克牌作業 參考了幕友的排序方法 非常感謝Java排序
- JZ-045-撲克牌順子
- 撲克牌速算24 -窮舉(JavaScript)JavaScript
- 劍指Offer 撲克牌順子
- Java入門第三季撲克牌小遊戲Java遊戲
- JAVA入門第三季——最後練習題撲克牌Java
- SwiftUI:看我展示52張撲克牌,“很快啊!”SwiftUI
- java入門最後一章 簡易撲克牌比較大小Java
- 每日一練(33):撲克牌中的順子
- Python程式設計基礎練習——撲克牌發牌問題Python程式設計
- Java入門第三季7-1簡易撲克牌作業Java
- bzoj1816: [Cqoi2010]撲克牌(二分)
- python實現撲克遊戲 - 抽鬼牌 和 21點Python遊戲
- 【YOLOv5】實現撲克牌的點數識別YOLO
- [每日一題] 第十二題:撲克牌中的順子每日一題
- 簡易撲克牌遊戲簡單實現,歡迎指正遊戲
- python例項:解決經典撲克牌遊戲 -- 四張牌湊24點 (二)Python遊戲
- python例項:解決經典撲克牌遊戲 -- 四張牌湊24點 (一)Python遊戲
- 中新賽克FlowWare祝您元宵快樂
- JAVA入門第三季 簡易撲克牌遊戲原始碼 可以自定義玩家人數 有詳細注Java遊戲原始碼
- 繼人工智慧攻陷圍棋,德州撲克也淪陷了人工智慧
- 拓撲排序排序
- 圖解拓撲排序+程式碼實現圖解排序
- 拓撲排序,YYDS排序
- 關於撲克牌的一些討論——《Fluent Python 2》讀書筆記Python筆記
- 筆記:拓撲排序筆記排序
- 拓撲排序小結排序
- 圖論——拓撲排序圖論排序
- 【Ynoi 2017】由乃打撲克
- 任天堂傳奇社長巖田聰:讓自己快樂,也努力讓別人快樂
- 程式設計師快樂器之JAVA程式碼生成工具程式設計師Java
- 【筆記/模板】拓撲排序筆記排序
- DFS實現拓撲排序排序
- AOV網與拓撲排序排序