package com.powernode.Pk1;
 
import java.util.ArrayList;
import java.util.Collections;
 
public class Card
{
    public static void main(String[] args)
    {
        String[] num = {"A","2","3","4","5","6","7","8","9","10","j","q","k"};
        String[] color = {"方片","梅花","红桃","黑桃"};
        boolean checkPoint1 = false;
        boolean checkPoint2 = false;
        ArrayList<String> poker = new ArrayList<>();
        for (int i = 0; i < color.length; i++)
        {
            for (int j = 0; j < num.length; j++)
            {
                poker.add(color[i] + "" + num[j]);
            }
        }
        poker.add("小王");
        poker.add("大王");
        Collections.shuffle(poker);
        ArrayList<String> Jack = new ArrayList<>();
        ArrayList<String> Rose = new ArrayList<>();
        ArrayList<String> Me = new ArrayList<>();
        ArrayList<String> lastCards = new ArrayList<>();
        int count = 0;
        L:while(checkPoint1 != true && checkPoint2 != true){
            count++;
            for (int i = 0; i < poker.size(); i++)
            {
                if(i >= poker.size() - 3)
                {
                    lastCards.add(poker.get(i));
                }
                else if(i % 3 == 0)
                {
                    Jack.add(poker.get(i));
                }
                else if(i % 3 == 1)
                {
                    Rose.add(poker.get(i));
                }
                else if(i % 3 == 2)
                {
                    Me.add(poker.get(i));
                }
            }
            for (int i = 0; i < Jack.size(); i++) {
                System.out.println(Jack.get(i));
            }
            for (int i = 0; i < Rose.size(); i++) {
                System.out.println(Rose.get(i));
            }
            for (int i = 0; i < Me.size(); i++) {
                System.out.println(Me.get(i));
            }
            ArrayList<Integer> jackScores = new ArrayList<>();
            int jackCount = 0;
            ArrayList<String> jackCardFlowers = new ArrayList<>();
            for (int i = 0; i < Jack.size(); i++) {
                String s = Jack.get(i);
                boolean flag = false;
                switch (s)
                {
                    case "小王":{
                        jackScores.add(16);
                        flag = true;
                    }
                    case "大王":{
                        jackScores.add(17);
                        flag = true;
                    }
                }
                String end = "0";
                String flower = "";
                if(flag == false){
                    end = Jack.get(i).substring(2,s.length());
                    flower = Jack.get(i).substring(0,2);
                    jackCardFlowers.add(flower);
                }
                if(end.equals("j")){
                    jackScores.add(11);
                }
                else if (end.equals("q")) {
                    jackScores.add(12);
                }
                else if (end.equals("k")) {
                    jackScores.add(13);
                }
                else if (end.equals("A")) {
                    jackScores.add(14);
                }
                else if (end.equals("2")) {
                    jackScores.add(15);
                }else{
                    jackScores.add(Integer.parseInt(end));
                }
            }
            for (int i = 0; i < jackScores.size(); i++) {
                jackCount += jackScores.get(i);
            }
            ArrayList<Integer> roseScores = new ArrayList<>();
            int roseCount = 0;
            ArrayList<String> roseCardFlowers = new ArrayList<>();
            for (int i = 0; i < Rose.size(); i++) {
                String s = Rose.get(i);
                boolean flag = false;
                switch (s)
                {
                    case "小王":{
                        roseScores.add(16);
                        flag = true;
                    }
                    case "大王":{
                        roseScores.add(17);
                        flag = true;
                    }
                }
                String end = "0";
                String flower = "";
                if(flag == false){
                    end = Rose.get(i).substring(2,s.length());
                    flower = Rose.get(i).substring(0,2);
                    roseCardFlowers.add(flower);
                }
                if(end.equals("j")){
                    roseScores.add(11);
                }
                else if (end.equals("q")) {
                    roseScores.add(12);
                }
                else if (end.equals("k")) {
                    roseScores.add(13);
                }
                else if (end.equals("A")) {
                    roseScores.add(14);
                }
                else if (end.equals("2")) {
                    roseScores.add(15);
                }else{
                    roseScores.add(Integer.parseInt(end));
                }
            }
            for (int i = 0; i < roseScores.size(); i++) {
                roseCount += roseScores.get(i);
            }
            if(roseCount > jackCount){
                System.out.println("Rose大于Jack了");
                checkPoint1 = true;
            }
            boolean first = true;
            for (int i = 0; i < roseCardFlowers.size(); i++) {
                for (int j = 0; j < jackCardFlowers.size(); j++) {
                    if (!(roseCardFlowers.get(i).equals(jackCardFlowers.get(i)))){
                        first = false;
                    }
                }
            }
            if(first = true){
                System.out.println("Rose和Jack两者牌型相同");
                checkPoint2 = true;
            }
            if(checkPoint1 == true && checkPoint2 == true){
                break L;
            }
            else{
                checkPoint1 = false;
                checkPoint2 = false;
            }
            ArrayList<Integer> meScores = new ArrayList<>();
            int meCount = 0;
            ArrayList<String> meCardFlowers = new ArrayList<>();
            for (int i = 0; i < Me.size(); i++) {
                String s = Me.get(i);
                boolean flag = false;
                switch (s)
                {
                    case "小王":{
                        meScores.add(16);
                        flag = true;
                    }
                    case "大王":{
                        meScores.add(17);
                        flag = true;
                    }
                }
                String end = "0";
                String flower = "";
                if(flag == false){
                    end = Me.get(i).substring(2,s.length());
                    flower = Me.get(i).substring(0,2);
                    meCardFlowers.add(flower);
                }
                if(end.equals("j")){
                    meScores.add(11);
                }
                else if (end.equals("q")) {
                    meScores.add(12);
                }
                else if (end.equals("k")) {
                    meScores.add(13);
                }
                else if (end.equals("A")) {
                    meScores.add(14);
                }
                else if (end.equals("2")) {
                    meScores.add(15);
                }else{
                    meScores.add(Integer.parseInt(end));
                }
            }
            for (int i = 0; i < meScores.size(); i++) {
                meCount += meScores.get(i);
            }
            if(meCount > roseCount){
                System.out.println("我大于Rose了");
                checkPoint1 = true;
            }
            boolean second = true;
            for (int i = 0; i < meCardFlowers.size(); i++) {
                for (int j = 0; j < roseCardFlowers.size(); j++) {
                    if (!(meCardFlowers.get(i).equals(roseCardFlowers.get(i)))){
                        first = false;
                    }
                }
            }
            if(second = true){
                System.out.println("我和Rose两者牌型相同");
                checkPoint2 = true;
            }
        }
        System.out.println("随机了"+count+"次实现");
    }
}