Java 扑克牌游戏:比大小
import java.util.ArrayList; import java.util.Collections; import java.util.Scanner;
public class CardGame {
public static void main(String[] args) {
// 创建一副扑克牌
ArrayList
// 创建两名玩家
Scanner scanner = new Scanner(System.in);
System.out.println('请输入玩家1的ID:');
String id1 = scanner.next();
System.out.println('请输入玩家1的姓名:');
String name1 = scanner.next();
Player player1 = new Player(id1, name1);
System.out.println('请输入玩家2的ID:');
String id2 = scanner.next();
System.out.println('请输入玩家2的姓名:');
String name2 = scanner.next();
Player player2 = new Player(id2, name2);
// 洗牌
Collections.shuffle(poker);
// 发牌
for (int i = 0; i < 3; i++) {
player1.addCard(poker.remove(0));
player2.addCard(poker.remove(0));
}
// 比较大小
Card maxCard1 = player1.getMaxCard();
Card maxCard2 = player2.getMaxCard();
if (maxCard1.compareTo(maxCard2) > 0) {
System.out.println(player1.getName() + '赢了!');
} else if (maxCard1.compareTo(maxCard2) < 0) {
System.out.println(player2.getName() + '赢了!');
} else {
if (maxCard1.getSuitValue() > maxCard2.getSuitValue()) {
System.out.println(player1.getName() + '赢了!');
} else if (maxCard1.getSuitValue() < maxCard2.getSuitValue()) {
System.out.println(player2.getName() + '赢了!');
} else {
System.out.println('平局!');
}
}
// 显示手牌
player1.showCards();
player2.showCards();
}
}
class Card implements Comparable
public Card(String suit, String rank) {
this.suit = suit;
this.rank = rank;
}
public String getSuit() {
return suit;
}
public String getRank() {
return rank;
}
public int getSuitValue() {
if (suit.equals('黑桃')) {
return 4;
} else if (suit.equals('红桃')) {
return 3;
} else if (suit.equals('梅花')) {
return 2;
} else {
return 1;
}
}
@Override
public int compareTo(Card o) {
if (this.rank.equals('A')) {
return 1;
} else if (o.getRank().equals('A')) {
return -1;
} else {
return Integer.compare(getRankValue(), o.getRankValue());
}
}
private int getRankValue() {
if (rank.equals('J')) {
return 11;
} else if (rank.equals('Q')) {
return 12;
} else if (rank.equals('K')) {
return 13;
} else {
return Integer.parseInt(rank);
}
}
@Override
public String toString() {
return suit + rank;
}
}
class Player {
private String id; // ID
private String name; // 姓名
private ArrayList
public Player(String id, String name) {
this.id = id;
this.name = name;
this.cards = new ArrayList<>();
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public void addCard(Card card) {
cards.add(card);
}
public Card getMaxCard() {
Card maxCard = cards.get(0);
for (int i = 1; i < cards.size(); i++) {
if (cards.get(i).compareTo(maxCard) > 0) {
maxCard = cards.get(i);
}
}
return maxCard;
}
public void showCards() {
System.out.println(name + '的手牌:');
for (Card card : cards) {
System.out.print(card + ' ');
}
System.out.println();
}
}
// 关系图:
CardGame类 -----> Player类 | | ------> Card类
原文地址: https://www.cveoy.top/t/topic/oRdL 著作权归作者所有。请勿转载和采集!