JAVA集合练习:斗地主发牌

时间:2023-02-13 14:20:48

学完集合可以练习一个小题目: 斗地主发牌

package test1;


import java.util.ArrayList;
import java.util.Collections;
//斗地主发牌程式编写
public class TestPoker {
	public static void main(String[] args) {
		//三个玩家,起名
		Player p1 = new Player("RayLu");
		Player p2 = new Player("Bleach");
		Player p3 = new Player("Tom");
		//整副扑克牌对象创建
		Poker poker = new Poker();
		//洗牌
		poker.pokerShuffle();
		//发牌
		for(int i = 0; i < poker.getPoker().size(); i++){
			if( i % 3 == 0){
				p1.getPoker().add(poker.getPoker().get(i));
			}else if( i%3==1){
				p2.getPoker().add(poker.getPoker().get(i));
			}else if(i%3 ==2){
				p3.getPoker().add(poker.getPoker().get(i));
			}
		}
		//发牌完成,遍历每个玩家手中的牌
		for(int i = 0; i < p1.getPoker().size(); i++){
			System.out.println(p1.getName()+"手中第"+(i+1)+"张牌是:"+p1.getPoker().get(i));
		}
		for(int i = 0; i < p2.getPoker().size(); i++){
			System.out.println(p2.getName()+"手中第"+(i+1)+"张牌是:"+p2.getPoker().get(i));
		}
		for(int i = 0; i < p3.getPoker().size(); i++){
			System.out.println(p3.getName()+"手中第"+(i+1)+"张牌是:"+p3.getPoker().get(i));
		}
	}
}




class Poker{
	private String[] pokerColor = new String[]{"红桃","黑桃","方片","梅花"};
	private String[] pokerNum = new String[]{"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
	private ArrayList<String> poker;
	
	public Poker(){
		poker = new ArrayList<String>();
		for(int i =0; i < this.pokerColor.length; i++){
			for (int j = 0; j < this.pokerNum.length; j++){
				String str = pokerColor[i] + pokerNum[j];
				poker.add(str);
			}
		}
		poker.add("大王");
		poker.add("小王");


	}
	//获取整副扑克牌
	public ArrayList<String> getPoker(){
		return poker;
	}
	//重洗扑克牌
	public void pokerShuffle(){
		Collections.shuffle(poker);
	}
}
//斗地主玩家
class Player{
	private String name;//玩家姓名
	private ArrayList<String> poker;//玩家手中的牌


	public ArrayList<String> getPoker() {
		return poker;
	}


	public void setPoker(ArrayList<String> poker) {
		this.poker = poker;
	}


	public String getName() {
		return name;
	}


	public void setName(String name) {
		this.name = name;
	}


	public Player(String name) {
		super();
		this.name = name;
		poker = new ArrayList<String>();
	}


	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((name == null) ? 0 : name.hashCode());
		return result;
	}


	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Player other = (Player) obj;
		if (name == null) {
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		return true;
	}
	
}