//Poker.java
package com.imooc;
public class Poker implements Comparable<Poker>{
private String num;
private String color;
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((color == null) ? 0 : color.hashCode());
result = prime * result + ((num == null) ? 0 : num.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (!(obj instanceof Poker))
return false;
Poker other = (Poker) obj;
if (color == null) {
if (other.color != null)
return false;
} else if (!color.equals(other.color))
return false;
if (num == null) {
if (other.num != null)
return false;
} else if (!num.equals(other.num))
return false;
return true;
}
public Poker(String num, String color){
this.num = num;
this.color = color;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
@Override
public int compareTo(Poker o) {
// TODO 自动生成的方法存根
String pokerNum = "2,3,4,5,6,7,8,9,10,J,Q,K,A";
String pokerColor = "方块,梅花,红桃,黑桃";
int flag;
flag = pokerNum.indexOf(this.getNum())-pokerNum.indexOf(o.getNum());
if(flag == 0){
flag = pokerColor.indexOf(this.getColor())-pokerColor.indexOf(o.getColor());
}
return flag;
}
}
//Player.java
package com.imooc;
import java.util.ArrayList;
import java.util.List;
public class Player {
private int id;
private String name;
private List<Poker> handPoker;
public Player(int id, String name){
this.id = id;
this.name = name;
handPoker = new ArrayList<Poker>();
}
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 List<Poker> getHandPoker() {
return handPoker;
}
public void setHandPoker(List<Poker> handPoker) {
this.handPoker = handPoker;
}
}
//MakePoker.java
package com.imooc;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class MakePoker {
private List<Poker> pokerList;
public List<Poker> getPokerList() {
return pokerList;
}
public void setPokerList(List<Poker> pokerList) {
this.pokerList = pokerList;
}
public MakePoker(){
pokerList = new ArrayList<Poker>();
String[] nums = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
String[] colors = {"黑桃","红桃","梅花","方块"};
for(int i=0; i<colors.length; i++){
for(int j=0; j<nums.length; j++){
pokerList.add(new Poker(nums[j],colors[i]));
}
}
System.out.println("扑克牌有:");
for (Poker poker : pokerList) {
System.out.print(poker.getColor()+poker.getNum()+" ");
}
System.out.println();
}
public static void main(String[] args) {
System.out.println("--------------扑克牌游戏开始--------------");
System.out.println("--------------创建扑克牌---------------");
MakePoker mp = new MakePoker();
System.out.println("扑克牌创建成功!");
Scanner input = new Scanner(System.in);
List<Player> playerList = new ArrayList<Player>();
System.out.println("---------------创建玩家----------------");
for(int i=0; i<2; i++){
try{
System.out.println("请输入玩家的id:");
int id = input.nextInt();
System.out.println("请输入玩家的名字:");
String name = input.next();
playerList.add(new Player(id,name));
System.out.println("创建玩家"+name+"成功!");
}catch(Exception e){
System.out.println("输入的id必须为整型!");
}
}
System.out.println("--------------开始洗牌---------------");
Collections.shuffle(mp.getPokerList());
System.out.println("--------------开始发牌---------------");
for(int j=0; j<2; j++){
for (Player player : playerList) {
player.getHandPoker().add(mp.getPokerList().get(0));
mp.getPokerList().remove(0);
}
}
System.out.println("-----------发牌结束开始比较大小----------");
Collections.sort(playerList.get(0).getHandPoker());
Collections.sort(playerList.get(1).getHandPoker());
List<Poker> compareList = new ArrayList<Poker>();
compareList.add(playerList.get(0).getHandPoker().get(1));
System.out.println("玩家"+playerList.get(0).getName()+"最大的牌是"+playerList.get(0).getHandPoker().get(1).getColor()+playerList.get(0).getHandPoker().get(1).getNum());
compareList.add(playerList.get(1).getHandPoker().get(1));
System.out.println("玩家"+playerList.get(1).getName()+"最大的牌是"+playerList.get(1).getHandPoker().get(1).getColor()+playerList.get(1).getHandPoker().get(1).getNum());
Collections.sort(compareList);
for (Player player : playerList) {
if(player.getHandPoker().contains(compareList.get(1))){
System.out.println("-----------"+player.getName()+"获胜------------");
}
}
for (Player player : playerList) {
System.out.print("玩家"+player.getName()+"的手牌是:");
for (Poker poker : player.getHandPoker()) {
System.out.print(poker.getColor()+poker.getNum()+" ");
}
System.out.println("");
}
}
}