package com.imooc.test;
import java.util.*;
public class Player {
public int id;
public String name;
public static Player player=new Player();
public List<String> playerPoker = new ArrayList<>();
public List<String> ending = new ArrayList<>();
public List<Integer> endingInteger = new ArrayList<>();
public List<String> index = new ArrayList<>();
public List<Integer> indexInteger = new ArrayList<>();
public static List<String> pk = new ArrayList<>();
public List<String> pkIndex = new ArrayList<>();
public List<String> pkEnding = new ArrayList<>();
public List<Integer> pkIndexInteger = new ArrayList<>();
public List<Integer> pkEndingInteger = new ArrayList<>();
// public List<Integer> pkInteger = new ArrayList<>();
public Player(){
}
public Player(Integer id, String name) {
this.id = id;
this.name = name;
}
public void lookPlayerPoker() {
System.out.println("玩家各自的手牌为:");
for (Player player : Start.players) {
System.out.println(player.name + ":" + Start.lookPoker(player.playerPoker));
}
}
public void comparePoker() {
for (Player p : Start.players) {
for (String pp : p.playerPoker) {
String pokerString = pp;
if (pokerString.length() == 3) {
p.ending.add(pokerString.substring(pokerString.length() - 1));
} else if (pokerString.length() == 4) {
p.ending.add(pokerString.substring(pokerString.length() - 2));
}
p.index.add(pokerString.substring(0, 2));
}
}
for (Player p : Start.players) {
for (String s : index) {
switch (s) {
case "方片":
indexInteger.add(1);
break;
case "梅花":
indexInteger.add(2);
break;
case "红桃":
indexInteger.add(3);
break;
case "黑桃":
indexInteger.add(4);
break;
}
}
}
for (Player p : Start.players) {
for (String s : p.ending) {
switch (s) {
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
case "10":
p.endingInteger.add(Integer.valueOf(s));
break;
case "J":
p.endingInteger.add(11);
break;
case "Q":
p.endingInteger.add(12);
break;
case "K":
p.endingInteger.add(13);
break;
case "A":
p.endingInteger.add(14);
break;
}
}
}
System.out.println("---------开始游戏-------");
for (Player p : Start.players) {
if (p.endingInteger.get(0) > p.endingInteger.get(1)) {
System.out.println(p.name + "最大手牌:" + p.playerPoker.get(0));
Player.pk.add(p.playerPoker.get(0));
} else if (p.endingInteger.get(0) < p.endingInteger.get(1)) {
System.out.println(p.name + "最大手牌:" + p.playerPoker.get(1));
Player.pk.add(p.playerPoker.get(1));
} else if (p.indexInteger.get(0) > p.indexInteger.get(1)) {
System.out.println(p.name + "最大手牌:" + p.playerPoker.get(0));
Player.pk.add(p.playerPoker.get(0));
} else if (p.indexInteger.get(0) < p.indexInteger.get(1)) {
System.out.println(p.name + "最大手牌:" + p.playerPoker.get(1));
Player.pk.add(p.playerPoker.get(1));
}
}
}
public void winner() {
for (Player p : Start.players) {
for (String s : p.pk) {
String pokerString = s;
if (pokerString.length() == 3) {
p.pkEnding.add(pokerString.substring(pokerString.length() - 1));
} else if (pokerString.length() == 4) {
p.pkEnding.add(pokerString.substring(pokerString.length() - 2));
}
p.pkIndex.add(pokerString.substring(0, 2));
}
}
for (String s : pkEnding) {
switch (s){
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
case "10":
pkEndingInteger.add(Integer.valueOf(s));
break;
case "J":
pkEndingInteger.add(11);
break;
case "Q":
pkEndingInteger.add(12);
break;
case "K":
pkEndingInteger.add(13);
break;
case "A":
pkEndingInteger.add(14);
break;
}
}
for (Player p : Start.players) {
for (String s : index) {
switch (s) {
case "方片":
pkIndexInteger.add(1);
break;
case "梅花":
pkIndexInteger.add(2);
break;
case "红桃":
pkIndexInteger.add(3);
break;
case "黑桃":
pkIndexInteger.add(4);
break;
}
}
}
if (pkEndingInteger.get(0) > pkEndingInteger.get(1)) {
System.out.println("玩家:"+Start.players.get(0).name+"获胜");
} else if (pkEndingInteger.get(0) < pkEndingInteger.get(1)) {
System.out.println("玩家:"+Start.players.get(1).name+"获胜");
} else if (pkIndexInteger.get(0) > pkIndexInteger.get(1)) {
System.out.println("玩家:"+Start.players.get(0).name+"获胜");
} else if (pkIndexInteger.get(0) < pkIndexInteger.get(1)) {
System.out.println("----------------玩家:"+Start.players.get(1).name+"获胜-------------");
}
}
}
package com.imooc.test;
import java.util.*;
public class Start {
public static List<String> pokers = new ArrayList<>();
public static String string = "";
public static String[] colors = {"方片", "梅花", "红桃", "黑桃"};
public static List<Player> players = new ArrayList<>();
public static String lookPoker(List<String> pokers) {
Object[] pokerArrays = pokers.toArray();
return Arrays.toString(pokerArrays);
}
public static List<String> shuffleCards() {
System.out.println("------------开始洗牌--------------");
Random random = new Random();
List<String> pokersPack = new ArrayList<>();
int index = 0;
while (pokersPack.size() < pokers.size()) {
index = random.nextInt(pokers.size());
if (!pokersPack.contains(pokers.get(index))) {
pokersPack.add(pokers.get(index));
}
}
System.out.println("----------洗牌结束-----------");
return pokersPack;
}
public static String createPoker() {
System.out.println("---------------创建扑克牌----------------");
for (String color : colors) {
for (int i = 2; i <= 10; i++) {
string = color + i;
pokers.add(string);
}
char[] chars = {'J', 'Q', 'K', 'A'};
for (char cha : chars) {
string = color + cha;
pokers.add(string);
}
}
System.out.println("-------------------扑克牌创建成功------------------------");
return lookPoker(pokers);
}
public static void inputPlayer() {
System.out.println("--------------创建玩家------------");
for (int i = 1; i <= 2; i++) {
System.out.println("请输入第" + i + "位玩家的ID和姓名:");
System.out.println("输入ID:");
Scanner scanner = new Scanner(System.in);
try {
int id = new Scanner(System.in).nextInt();
System.out.println("请输入姓名:");
String name = scanner.next();
Player player = new Player(id, name);
players.add(player);
} catch (InputMismatchException e) {
System.out.println("请输入整数类型的ID!");
inputPlayer();
break;
}
}
}
public static void outPlayer() {
for (Player player : players) {
System.out.println("-----欢迎玩家:" + player.name);
}
}
public static void takePoker() {
Random random = new Random();
boolean bool2 = false;
System.out.println("------------开始发牌------------");
for (int i = 0; i < players.size(); ) {
for (Player player : players) {
int index = random.nextInt(pokers.size());
boolean bool = !player.playerPoker.contains(pokers.get(index));
System.out.println("----------玩家:" + player.name + "拿牌");
if (bool) {
bool2 = bool;
player.playerPoker.add(pokers.get(index));
}
}
if (bool2)
i++;
}
System.out.println("----------发牌结束---------");
}
public static void main(String[] args) {
System.out.println(createPoker());
pokers = shuffleCards();
inputPlayer();
outPlayer();
takePoker();
players.get(0).comparePoker();
players.get(0).lookPlayerPoker();
players.get(0).winner();
}
}