卡片类
package com.softeem.lesson36.exp04;
public class Card implements Comparable{
private int id;
private String name;
private int point;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPoint() {
return point;
}
public void setPoint(int point) {
this.point = point;
}
@Override
public String toString() {
return name;
}
public Card(int id, String name, int point) {
super();
this.id = id;
this.name = name;
this.point = point;
}
@Override
public int compareTo(Card c) {
// TODO Auto-generated method stub
return this.point - c.point;
}
}
花色类
package com.softeem.lesson36.exp04;
public class NormalCar extends Card{
private String flower;
@Override
public String toString() {
return flower+"-"+getName();
}
public NormalCar(int id, String name, int point, String flower) {
super(id, name, point);
this.flower = flower;
}
public String getFlower() {
return flower;
}
public void setFlower(String flower) {
this.flower = flower;
}
}
玩家类
package com.softeem.lesson36.exp04;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Player {
private int id;
private String nickname;
private boolean boss;
private List cards = new ArrayList<>();
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public boolean isBoss() {
return boss;
}
public void setBoss(boolean boss) {
this.boss = boss;
}
public List getCards() {
return cards;
}
public void setCards(List cards) {
this.cards = cards;
}
@Override
public String toString() {
Collections.sort(cards);
return “Player [id=” + id + “, nickname=” + nickname + “, boss=” + boss + “, cards=” + cards + “]”;
}
}
游戏开始类
package com.softeem.lesson36.exp04;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class PokerGame {
private static String[] names = { "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2" };
private static String[] flowers = { "♥", "♠", "♣", "♦" };
private static List<Card> allCards;
private static int id = 0;
private List<Player> players;
private Random r = new Random();
static {
allCards = new ArrayList<Card>();
for (int i = 0; i < names.length; i++) {
for (int j = 0; j < flowers.length; j++) {
id++;
Card c = new NormalCar(id, names[i], i + 1, flowers[j]);
allCards.add(c);
}
}
allCards.add(new Card(++id, "小王", 666));
allCards.add(new Card(++id, "大王", 888));
System.out.println(allCards.size());
allCards.forEach(c -> System.out.println(c));
}
public void initPlayer() {
players = new ArrayList<Player>();
Player p1 = new Player();
p1.setId(1);
p1.setNickname("艾希");
Player p2 = new Player();
p1.setId(2);
p1.setNickname("盖伦");
Player p3 = new Player();
p1.setId(3);
p1.setNickname("剑圣");
players.add(p1);
players.add(p2);
players.add(p3);
randomBosss();
}
public void randomBosss() {
int i = r.nextInt(players.size());
players.get(i).setBoss(true);
}
public void sendCard() {
int pos = 0;
for (int i = 0; i < allCards.size(); i++) {
Card card = allCards.get(i);
Player player = players.get(pos);
player.getCards().add(card);
pos = pos == 0 ? 1 : pos == 1 ? 2 : 0;
}
for (Player p : players) {
if (p.isBoss()) {
List<Card> cards = allCards.subList(allCards.size() - 3, allCards.size());
p.getCards().addAll(cards);
}
}
}
public void show() {
for (Player p : players) {
System.out.println(p);
}
}
public void shuffleCard() {
Collections.shuffle(allCards);
Collections.shuffle(allCards);
Collections.shuffle(allCards);
}
public static void main(String[] args) {
PokerGame pg = new PokerGame();
pg.initPlayer();
pg.shuffleCard();
pg.sendCard();
pg.show();
}
}