主函数
package com.donnie;
import java.util.*;
public class Main {
public static void main(String[] args) {
//创建牌组
ArrayList<PokerCard> pokerCards = new ArrayList<>();
String[] colors = new String[]{"黑桃", "红桃", "梅花", "方片"};
for (int i = 1; i <= 14; i++) {
for (String color : colors) {
pokerCards.add(new PokerCard(color, i));
}
}
Iterator iterator = pokerCards.iterator();
while (iterator.hasNext()) {
PokerCard pokerCard = (PokerCard) iterator.next();
System.out.print(pokerCard.name() + " ");
}
System.out.println("------------------------------");
//创建玩家
Player player1 = new Player();
player1.init();
Player player2 = new Player();
player2.init();
System.out.println("------------------------------");
//打乱牌组顺序
Collections.shuffle(pokerCards);
//发牌
Map<Player, PokerCard[]> map = new HashMap<Player,PokerCard[]>();
PokerCard[] pokerCards1 = new PokerCard[]{pokerCards.get(0), pokerCards.get(1)};
PokerCard[] pokerCards2 = new PokerCard[]{pokerCards.get(2), pokerCards.get(3)};
map.put(player1, pokerCards1);
map.put(player2, pokerCards2);
//判断输赢
PokerCard player1Max = pokerCards1[0].compareTo(pokerCards1[1]);
PokerCard player2Max = pokerCards2[0].compareTo(pokerCards2[1]);
if (player1Max.compareTo(player2Max) == player1Max) {
System.out.println(player1.name + "获胜");
} else {
System.out.println(player2.name + "获胜");
}
System.out.println("------------------------------");
//输出各自的牌
System.out.println("------------------------------");
System.out.println(player1.name + "牌为");
System.out.println(pokerCards1[0].name() + "\t" + pokerCards1[1].name());
System.out.println(player2.name + "牌为");
System.out.println(pokerCards2[0].name() + "\t" + pokerCards2[1].name());
}
}
玩家类
package com.donnie;
import java.util.Scanner;
/**
* Created by Donnie on 2017/1/16.
*/
public class Player {
int id;
String name;
public Player(){}
public Player(int id, String name) {
this.id = id;
this.name = name;
}
public void init() {
System.out.println("请输入玩家id(必须为整数)");
Scanner scanner = new Scanner(System.in);
int initID = scanner.nextInt();
System.out.println("请输入玩家昵称");
String initString = scanner.next();
this.id = initID;
this.name = initString;
}
}
扑克牌类
package com.donnie;
/**
* Created by Donnie on 2017/1/16.
*/
public class PokerCard {
String color;
int number;
public PokerCard(String color, int number) {
this.color = color;
this.number = number;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String name() {
switch (number) {
case (11):
return color + "J";
case (12):
return color + "Q";
case (13):
return color + "K";
case (14):
return color + "A";
default:
return color + number;
}
}
public int colorInt() {
String[] colors = new String[]{"黑桃", "红桃", "梅花", "方片"};
for (int i = 0; i < 4; i++) {
if (this.color == colors[i]) {
return i;
}
}
return -1;
}
public PokerCard compareTo(PokerCard pokerCard) {
if (this.number > pokerCard.number) {
return this;
} else if (this.number == pokerCard.number) {
if (this.colorInt() > pokerCard.colorInt()) {
return this;
}
} else {
return pokerCard;
}
return this;
}
}
热门评论
看到的最好的答案!
(有一点点无伤大雅小瑕疵,创建牌组循环体应该是2到14,因为没有黑桃1)