经典发扑克

卡片类
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();

}

}

猜你喜欢

转载自blog.csdn.net/Wo_I_Java/article/details/107441630