package com.skyL;
public class Poker implements Comparable<Poker>{
private String flowerColor;
private String Point;
public Poker(String flowerColor, String Point){
this.flowerColor = flowerColor;
this.Point = Point;
}
public String getFlower(){
return flowerColor;
}
public String getPoint(){
return Point;
}
@Override
public int compareTo(Poker o) {
int first = pointToNum();
int second = o.pointToNum();
if(first > second)
return 1;
else if(first < second)
return -1;
else{
first = flowerToNum();
second = o.flowerToNum();
if(first > second)
return 1;
else if(first < second)
return -1;
}
return 0;
}
private int flowerToNum(){
if(flowerColor.equals("黑桃"))
return 4;
else if(flowerColor.equals("红心"))
return 3;
else if(flowerColor.equals("梅花"))
return 2;
return 1;
}
private int pointToNum(){
if(Point == "A")
return 1;
else if(Point.equals("J"))
return 1;
else if(Point.equals("Q"))
return 2;
else if(Point.equals("K"))
return 3;
else if(Point.equals("10"))
return 0;
else
return Integer.valueOf(Point).intValue();
}
}
package com.skyL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
public class Player {
private int id;
private String name;
private List<Poker> playerPoker;
private Poker firstPoker;
public Player(int id, String name){
this.id = id;
this.name = name;
playerPoker = new ArrayList<Poker>();
}
public Player() {
}
public int getId(){
return id;
}
public String getName(){
return name;
}
public List<Poker> getPoker(){
return playerPoker;
}
public Poker getFirstPoker(){
Iterator<Poker> it = playerPoker.iterator();
Poker first = it.next();
Poker second = it.next();
return (first.compareTo(second) > 0 ? first : second);
}
}
//GamePlay.java
package com.skyL
import java.util.List
import java.util.Random
import java.util.Scanner
import java.awt.Point
import java.util.ArrayList
import java.util.HashSet
import java.util.Iterator
import java.util.Set
public class GamePlay {
public Set<Poker> setPokers
public List<Poker> pokers
public List<String> flower
public List<String> points
public static Scanner input
public GamePlay(){
setPokers = new HashSet<Poker>()
pokers = new ArrayList<Poker>()
flower = new ArrayList<String>()
points = new ArrayList<String>()
input = new Scanner(System.in)
}
public static void main(String[] args) {
GamePlay gy = new GamePlay()
gy.InsertFolwer()
gy.InsertPoint()
gy.shuffleCards()
System.out.println("请输入玩家1的ID:")
int id = input.nextInt()
System.out.println("请输入玩家1的姓名:")
String name = input.next()
Player p1 = new Player(id, name)
System.out.println("请输入玩家2的ID:")
id = input.nextInt()
System.out.println("请输入玩家2的姓名:")
name = input.next()
Player p2 = new Player(id, name)
gy.Licensing(p1, p2)
gy.CompareCard(p1, p2)
gy.showCard(p1, p2)
}
//添加花色
public void InsertFolwer(){
flower.add("黑桃")
flower.add("红心")
flower.add("梅花")
flower.add("方片")
}
//添加点数
public void InsertPoint(){
points.add("A")
for(int i = 2
points.add(String.valueOf(i))
points.add("J")
points.add("Q")
points.add("K")
}
//洗牌
public void shuffleCards(){
System.out.println("一整副扑克牌为:")
for(int i = 0
for(int j = 0
Poker p = new Poker(flower.get(i), points.get(j))
System.out.print(p.getFlower() + p.getPoint() + "\t")
pokers.add(p)
}
}
System.out.println()
System.out.println("开始洗牌")
Random random = new Random()
for(int i = 0
Poker p
do{
p = pokers.get(random.nextInt(52))
}while(setPokers.contains(p))
setPokers.add(p)
}
System.out.println("洗牌完毕")
}
//发牌
public void Licensing(Player p1, Player p2){
System.out.println("开始发牌")
Iterator<Poker> it = setPokers.iterator()
int i = 0
while(it.hasNext() && i < 2){
p1.getPoker().add(it.next())
System.out.println("玩家1拿牌")
if(it.hasNext()){
p2.getPoker().add(it.next())
System.out.println("玩家2拿牌")
}
i++
}
}
//比较点数
public void CompareCard(Player p1, Player p2){
Poker p1Poker = p1.getFirstPoker()
Poker p2Poker = p2.getFirstPoker()
System.out.println("玩家1 " + p1.getName() + " 的手牌为:" + p1Poker.getFlower() + p1Poker.getPoint())
System.out.println("玩家2 " + p2.getName() + " 的手牌为:" + p2Poker.getFlower() + p2Poker.getPoint())
if(p1Poker.compareTo(p2Poker) > 0){
System.out.println(p1.getName() + " Win")
}
else
System.out.println(p2.getName() + " Win")
}
//显示玩家所拿牌
public void showCard(Player p1, Player p2){
Iterator<Poker> it1 = p1.getPoker().iterator()
System.out.print("玩家1 " + p1.getName() + " 所拿牌为:")
while(it1.hasNext()){
Poker poker = it1.next()
System.out.print(poker.getFlower() + poker.getPoint())
}
System.out.println()
Iterator<Poker> it2 = p2.getPoker().iterator()
System.out.print("玩家2 " + p2.getName() + " 所拿牌为:")
while(it2.hasNext()){
Poker poker = it2.next()
System.out.print(poker.getFlower() + poker.getPoint())
}
System.out.println()
}
}