继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

简易扑克游戏(续)—— 炸金花(中)

慕容1444579
关注TA
已关注
手记 4
粉丝 10
获赞 48

(续)
本篇手记续我的上一篇手记《简易扑克游戏(续)—— 炸金花(上)》链接描述
主类GameStart

/**
 * Java简易扑克游戏--炸金花
 * 1. 创建扑克牌组包括4种花色和13种大小
 * 2. 随后进行随机洗牌
 * 3. 创建两名玩家,其中一名为“电脑玩家”,另一名为游戏玩家“您”
 * 4. 从洗牌后的扑克牌的第一张开始,发给每个玩家,按照一人一张的方式,每人发三张
 * 5. 游戏规则为:(可以自行百度“炸金花的游戏规则”)
 * 开发日期:2017.05.15
 * 开发者:慕容1444579
 */
package com.lsjt_2;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class GameStart
{
    String[] color = {"","","",""};//创建一副牌(52张)
    String[] number = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
    Scanner input = new Scanner(System.in);
    List<Poker> pokerList = new ArrayList<Poker>();
    List<Player> playerList = new ArrayList<Player>();

    public static void main(String[] args)
    {
        System.out.println("- - - - - - - - - - - -\nJava简易扑克游戏(林氏集团出品)\n");
        System.out.println("-----欢迎进入”炸金花“游戏-----");
        GameStart gs = new GameStart();
        gs.setPayer();      //创建玩家
        gs.initializeCard();    //初始化牌库
        gs.shuffleCard();   //洗牌
        gs.getCard();       //发牌(拿到手牌)
        gs.compare();       //比较大小,判定胜负
        gs.showCard();      //展示玩家手牌
        System.out.println("\n--------游戏结束--------");
    }

    //比较大小,判定胜负
    private void compare()
    {
        System.out.println("---------获胜方---------");
        ComparePoker comparehPoker = new ComparePoker();
        List<Poker> hPoker1 = new ArrayList<Poker>();
        List<Poker> hPoker2 = new ArrayList<Poker>();

        //获取玩家1的第一张手牌
        hPoker1.add(0, playerList.get(0).handCards.get(0));
        //获取玩家1的第二张手牌
        hPoker1.add(1, playerList.get(0).handCards.get(1));
        //获取玩家1的第三张手牌
        hPoker1.add(2, playerList.get(0).handCards.get(2));
        //获取玩家2的第一张手牌
        hPoker2.add(0, playerList.get(1).handCards.get(0));
        //获取玩家2的第二张手牌
        hPoker2.add(1, playerList.get(1).handCards.get(1));
        //获取玩家2的第三张手牌
        hPoker2.add(2, playerList.get(1).handCards.get(2));

        //取出每张牌的位置
        int numbers1_1 = SearchIndex(number, hPoker1.get(0).numbers);
        int numbers1_2 = SearchIndex(number, hPoker1.get(1).numbers);
        int numbers1_3 = SearchIndex(number, hPoker1.get(2).numbers);
        int numbers2_1 = SearchIndex(number, hPoker2.get(0).numbers);
        int numbers2_2 = SearchIndex(number, hPoker2.get(1).numbers);
        int numbers2_3 = SearchIndex(number, hPoker2.get(2).numbers);

        //取出每张牌的花色
        String colors1_1 = hPoker1.get(0).colors;
        String colors1_2 = hPoker1.get(1).colors;
        String colors1_3 = hPoker1.get(2).colors;
        String colors2_1 = hPoker2.get(0).colors;
        String colors2_2 = hPoker2.get(1).colors;
        String colors2_3 = hPoker2.get(2).colors;

        //判断手牌是不是顺子·
        boolean b1 = comparehPoker.sort_3n(numbers1_1, numbers1_2, numbers1_3);
        boolean b2 = comparehPoker.sort_3n(numbers2_1, numbers2_2, numbers2_3);

        //先确定玩家各自手牌是哪种类型,分6种牌型分别进行比较手牌的大小

        //5.对子
        if(numbers1_1==numbers1_2 || numbers1_1==numbers1_3 || numbers1_2==numbers1_3)
        {
            //1.豹子
            if(numbers1_1==numbers1_2 && numbers1_1==numbers1_3)//玩家1是豹子
            {
                if(numbers2_1==numbers2_2 && numbers2_1==numbers2_3)//玩家2也是豹子
                {
                    int ab1 = comparehPoker.compareCN(hPoker1.get(0), hPoker2.get(0));
                    if(ab1>0)//玩家1赢了
                    {
                        System.out.println(playerList.get(0).name + "获胜!");
                        System.out.println( "玩家1:--> 豹子");
                        System.out.println( "玩家2:--> 豹子");
                    }
                    else//玩家2赢了
                    {
                        System.out.println(playerList.get(1).name + "获胜!");
                        System.out.println( "玩家1:--> 豹子");
                        System.out.println( "玩家2:--> 豹子");
                    }
                }
                else//玩家2不是豹子
                {
                    //玩家1赢了
                    System.out.println(playerList.get(0).name + "获胜!");
                    System.out.println( "玩家1:--> 豹子");
                }
            }//玩家2也是对子
            else if(numbers2_1==numbers2_2 || numbers2_1==numbers2_3 || numbers2_2==numbers2_3)
            {
                if(numbers2_1==numbers2_2 && numbers2_1==numbers2_3)//玩家2是豹子
                {
                    //玩家2赢了
                    System.out.println(playerList.get(1).name + "获胜!");
                    System.out.println( "玩家1:--> 对子");
                    System.out.println( "玩家2:--> 豹子");
                }
                else//玩家2也是对子
                {
                    //取出玩家1的最大手牌的数字
                    int max_h1 = 0 ;
                    int a = comparehPoker.compareCN(hPoker1.get(0), hPoker1.get(1));
                    int b = comparehPoker.compareCN(hPoker1.get(0), hPoker1.get(2));
                    int c = comparehPoker.compareCN(hPoker1.get(2), hPoker1.get(1));
                    if(a>=0 && b>=0)//第一张牌最大
                        max_h1 = 0;
                    else if(a<=0 && c<=0)//第二张牌最大
                        max_h1 = 1;
                    else//第三张牌最大
                        max_h1 = 2;

                    //取出玩家2的最大手牌的数字
                    int max_h2 = 0 ;
                    int e = comparehPoker.compareCN(hPoker2.get(0), hPoker2.get(1));
                    int f = comparehPoker.compareCN(hPoker2.get(0), hPoker2.get(2));
                    int h = comparehPoker.compareCN(hPoker2.get(2), hPoker2.get(1));
                    if(e>=0 && f>=0)//第一张牌最大
                        max_h2 = 0;
                    else if(e<=0 && h<=0)//第二张牌最大
                        max_h2 = 1;
                    else//第三张牌最大
                        max_h2 = 2;

                    //比较玩家最大的牌(数字及花色)
                    int ab1 = comparehPoker.compare(hPoker1.get(max_h1), hPoker2.get(max_h2));
                    if(ab1>0)//玩家1赢了
                    {
                        System.out.println(playerList.get(0).name + "获胜!");
                        System.out.println( "玩家1:--> 对子");
                        System.out.println( "玩家2:--> 对子");
                    }
                    else//玩家2赢了
                    {
                        System.out.println(playerList.get(1).name + "获胜!");
                        System.out.println( "玩家1:--> 对子");
                        System.out.println( "玩家2:--> 对子");
                    }
                }
            }
            else if(b2 && colors2_1!=colors2_2)//玩家2是顺子
            {
                //玩家2赢了
                System.out.println(playerList.get(1).name + "获胜!");
                System.out.println( "玩家1:--> 对子");
                System.out.println( "玩家2:--> 顺子");
            }
            else if(colors2_1==colors2_2 && colors2_1==colors2_3)//玩家2是金花
            {
                if(b2)//玩家2是顺金
                {
                    //玩家2赢了
                    System.out.println(playerList.get(1).name + "获胜!");
                    System.out.println( "玩家1:--> 对子");
                    System.out.println( "玩家2:--> 顺金");
                }
                else
                {
                    //玩家2赢了
                    System.out.println(playerList.get(1).name + "获胜!");
                    System.out.println( "玩家1:--> 对子");
                    System.out.println( "玩家2:--> 金花");
                }
            }
            else if(numbers2_1==numbers2_2 && numbers2_1==numbers2_3)//玩家2是豹子
            {
                //玩家2赢了
                System.out.println(playerList.get(1).name + "获胜!");
                System.out.println( "玩家1:--> 对子");
                System.out.println( "玩家2:--> 豹子");
            }
            else//玩家1赢了
            {
                System.out.println(playerList.get(0).name + "获胜!");
                System.out.println( "玩家1:--> 对子");
                System.out.println( "玩家2:--> 单牌");
            }
        }

        //2.顺金
        else if(colors1_1==colors1_2 && colors1_1==colors1_3 && b1)//玩家1是顺金
        {
            if(colors2_1==colors2_2 && colors2_1==colors2_3 && b2)//玩家2也是顺金
            {
                //取出玩家1的最大手牌的数字
                int max_h1 = 0 ;
                int a = comparehPoker.compareCN(hPoker1.get(0), hPoker1.get(1));
                int b = comparehPoker.compareCN(hPoker1.get(0), hPoker1.get(2));
                int c = comparehPoker.compareCN(hPoker1.get(2), hPoker1.get(1));
                if(a>=0 && b>=0)//第一张牌最大
                    max_h1 = 0;
                else if(a<=0 && c<=0)//第二张牌最大
                    max_h1 = 1;
                else//第三张牌最大
                    max_h1 = 2;

                //取出玩家2的最大手牌的数字
                int max_h2 = 0 ;
                int e = comparehPoker.compareCN(hPoker2.get(0), hPoker2.get(1));
                int f = comparehPoker.compareCN(hPoker2.get(0), hPoker2.get(2));
                int h = comparehPoker.compareCN(hPoker2.get(2), hPoker2.get(1));
                if(e>=0 && f>=0)//第一张牌最大
                    max_h2 = 0;
                else if(e<=0 && h<=0)//第二张牌最大
                    max_h2 = 1;
                else//第三张牌最大
                    max_h2 = 2;

                //比较玩家最大的牌(数字及花色)
                int ab1 = comparehPoker.compare(hPoker1.get(max_h1), hPoker2.get(max_h2));
                if(ab1>0)//玩家1赢了
                {
                    System.out.println(playerList.get(0).name + "获胜!");
                    System.out.println( "玩家1:--> 顺金");
                    System.out.println( "玩家2:--> 顺金");
                }
                else//玩家2赢了
                {
                    //玩家2赢了
                    System.out.println(playerList.get(1).name + "获胜!");
                    System.out.println( "玩家1:--> 顺金");
                    System.out.println( "玩家2:--> 顺金");
                }
            }
            else if(numbers2_1==numbers2_2 && numbers2_1==numbers2_3)//玩家2是豹子
            {
                //玩家2赢了
                System.out.println(playerList.get(1).name + "获胜!");
                System.out.println( "玩家1:--> 顺金");
                System.out.println( "玩家2:--> 豹子");
            }
            else//玩家1赢了
            {
                System.out.println(playerList.get(0).name + "获胜!");
                System.out.println( "玩家1:--> 顺金");
            }
        }

        //3.金花
        else if(colors1_1==colors1_2 && colors1_1==colors1_3)//玩家1是金花
        {
            if(colors2_1==colors2_2 && colors2_1==colors2_3)//玩家2也是金花
            {
                //取出玩家1的最大手牌的数字
                int max_h1 = 0 ;
                int a = comparehPoker.compareCN(hPoker1.get(0), hPoker1.get(1));
                int b = comparehPoker.compareCN(hPoker1.get(0), hPoker1.get(2));
                int c = comparehPoker.compareCN(hPoker1.get(2), hPoker1.get(1));
                if(a>=0 && b>=0)//第一张牌最大
                    max_h1 = 0;
                else if(a<=0 && c<=0)//第二张牌最大
                    max_h1 = 1;
                else//第三张牌最大
                    max_h1 = 2;

                //取出玩家2的最大手牌的数字
                int max_h2 = 0 ;
                int e = comparehPoker.compareCN(hPoker2.get(0), hPoker2.get(1));
                int f = comparehPoker.compareCN(hPoker2.get(0), hPoker2.get(2));
                int h = comparehPoker.compareCN(hPoker2.get(2), hPoker2.get(1));
                if(e>=0 && f>=0)//第一张牌最大
                    max_h2 = 0;
                else if(e<=0 && h<=0)//第二张牌最大
                    max_h2 = 1;
                else//第三张牌最大
                    max_h2 = 2;

                //比较玩家最大的牌(数字及花色)
                int ab1 = comparehPoker.compare(hPoker1.get(max_h1), hPoker2.get(max_h2));
                if(ab1>0)//玩家1赢了
                {
                    System.out.println(playerList.get(0).name + "获胜!");
                    System.out.println( "玩家1:--> 金花");
                    System.out.println( "玩家2:--> 金花");
                }
                else//玩家2赢了
                {
                    System.out.println(playerList.get(0).name + "获胜!");
                    System.out.println( "玩家1:--> 金花");
                    System.out.println( "玩家2:--> 金花");
                }
            }
            else if(colors2_1==colors2_2 && colors2_1==colors2_3 && b2)//玩家2是顺金
            {
                //玩家2赢了
                System.out.println(playerList.get(1).name + "获胜!");
                System.out.println( "玩家1:--> 金花");
                System.out.println( "玩家2:--> 顺金");
            }//玩家2是对子或豹子
            else if(numbers2_1==numbers2_2 || numbers2_1==numbers2_3 || numbers2_2==numbers2_3)
            {
                if(numbers2_1==numbers2_2 && numbers2_1==numbers2_3)//玩家2是豹子
                {
                    //玩家2赢了
                    System.out.println(playerList.get(1).name + "获胜!");
                    System.out.println( "玩家1:--> 金花");
                    System.out.println( "玩家2:--> 豹子");
                }
                else//玩家2是对子
                {
                    //玩家1赢了
                    System.out.println(playerList.get(0).name + "获胜!");
                    System.out.println( "玩家1:--> 金花");
                    System.out.println( "玩家2:--> 对子");
                }
            }
            else if(b2 && colors2_1!=colors2_2)//玩家2是顺子
            {
                //玩家1赢了
                System.out.println(playerList.get(0).name + "获胜!");
                System.out.println( "玩家1:--> 金花");
                System.out.println( "玩家2:--> 顺子");
            }
            else//玩家1赢了
            {
                System.out.println(playerList.get(0).name + "获胜!");
                System.out.println( "玩家1:--> 金花");
                System.out.println( "玩家2:--> 单牌");
            }
        }

        //4.顺子
        else if(b1 && colors1_1!=colors1_2)//玩家1是顺子
        {
            if(b2 && colors2_1!=colors2_2)//玩家2也是顺子
            {
                //取出玩家1的最大手牌的数字
                int max_h1 = 0 ;
                int a = comparehPoker.compareCN(hPoker1.get(0), hPoker1.get(1));
                int b = comparehPoker.compareCN(hPoker1.get(0), hPoker1.get(2));
                int c = comparehPoker.compareCN(hPoker1.get(2), hPoker1.get(1));
                if(a>=0 && b>=0)//第一张牌最大
                    max_h1 = 0;
                else if(a<=0 && c<=0)//第二张牌最大
                    max_h1 = 1;
                else//第三张牌最大
                    max_h1 = 2;

                //取出玩家2的最大手牌的数字
                int max_h2 = 0 ;
                int e = comparehPoker.compareCN(hPoker2.get(0), hPoker2.get(1));
                int f = comparehPoker.compareCN(hPoker2.get(0), hPoker2.get(2));
                int h = comparehPoker.compareCN(hPoker2.get(2), hPoker2.get(1));
                if(e>=0 && f>=0)//第一张牌最大
                    max_h2 = 0;
                else if(e<=0 && h<=0)//第二张牌最大
                    max_h2 = 1;
                else//第三张牌最大
                    max_h2 = 2;

                //比较玩家最大的牌(数字及花色)
                int ab1 = comparehPoker.compare(hPoker1.get(max_h1), hPoker2.get(max_h2));
                if(ab1>0)//玩家1赢了
                {
                    System.out.println(playerList.get(0).name + "获胜!");
                    System.out.println( "玩家1:--> 顺子");
                    System.out.println( "玩家2:--> 顺子");
                }
                else//玩家2赢了
                {
                    System.out.println(playerList.get(1).name + "获胜!");
                    System.out.println( "玩家1:--> 顺子");
                    System.out.println( "玩家2:--> 顺子");
                }
            }
            else if(colors2_1==colors2_2 && colors2_1==colors2_3)//玩家2是金花
            {
                //玩家2赢了
                System.out.println(playerList.get(1).name + "获胜!");
                System.out.println( "玩家1:--> 顺子");
                System.out.println( "玩家2:--> 金花");
            }
            else if(colors2_1==colors2_2 && colors2_1==colors2_3 && b2)//玩家2是顺金
            {
                //玩家2赢了
                System.out.println(playerList.get(1).name + "获胜!");
                System.out.println( "玩家1:--> 顺子");
                System.out.println( "玩家2:--> 顺金");
            }//玩家2是对子或豹子
            else if(numbers2_1==numbers2_2 || numbers2_1==numbers2_3 || numbers2_2==numbers2_3)
            {
                if(numbers2_1==numbers2_2 && numbers2_1==numbers2_3)//玩家2是豹子
                {
                    //玩家2赢了
                    System.out.println(playerList.get(1).name + "获胜!");
                    System.out.println( "玩家1:--> 顺子");
                    System.out.println( "玩家2:--> 豹子");
                }
                else//玩家2是对子
                {
                    //玩家2赢了
                    System.out.println(playerList.get(1).name + "获胜!");
                    System.out.println( "玩家1:--> 顺子");
                    System.out.println( "玩家2:--> 对子");
                }
            }
            else//玩家1赢了
            {
                System.out.println(playerList.get(0).name + "获胜!");
                System.out.println( "玩家1:--> 顺子");
                System.out.println( "玩家2:--> 单牌");
            }
        }

        //6.单牌
        else//玩家1是单牌
        {
            //玩家2是对子或豹子
            if(numbers2_1==numbers2_2 || numbers2_1==numbers2_3 || numbers2_2==numbers2_3)
            {
                if(numbers2_1==numbers2_2 && numbers2_1==numbers2_3)//玩家2是豹子
                {
                    //玩家2赢了
                    System.out.println(playerList.get(1).name + "获胜!");
                    System.out.println( "玩家1:--> 单牌");
                    System.out.println( "玩家2:--> 豹子");
                }
                else//玩家2是对子
                {
                    //玩家2赢了
                    System.out.println(playerList.get(1).name + "获胜!");
                    System.out.println( "玩家1:--> 单牌");
                    System.out.println( "玩家2:--> 对子");
                }
            }
            else if(b2 && colors2_1!=colors2_2)//玩家2是顺子
            {
                //玩家2赢了
                System.out.println(playerList.get(1).name + "获胜!");
                System.out.println( "玩家1:--> 单牌");
                System.out.println( "玩家2:--> 顺子");
            }
            else if(colors2_1==colors2_2 && colors2_1==colors2_3)//玩家2是金花
            {
                //玩家2赢了
                System.out.println(playerList.get(1).name + "获胜!");
                System.out.println( "玩家1:--> 单牌");
                System.out.println( "玩家2:--> 金花");
            }
            else if(colors2_1==colors2_2 && colors2_1==colors2_3 && b2)//玩家2是顺金
            {
                //玩家2赢了
                System.out.println(playerList.get(1).name + "获胜!");
                System.out.println( "玩家1:--> 单牌");
                System.out.println( "玩家2:--> 顺金");
            }
            else// 玩家2也是单牌
            {
                // 取出玩家1的最大手牌的数字
                int max_h1 = 0;
                int a = comparehPoker.compareCN(hPoker1.get(0), hPoker1.get(1));
                int b = comparehPoker.compareCN(hPoker1.get(0), hPoker1.get(2));
                int c = comparehPoker.compareCN(hPoker1.get(2), hPoker1.get(1));
                if (a >= 0 && b >= 0)// 第一张牌最大
                    max_h1 = 0;
                else if (a <= 0 && c <= 0)// 第二张牌最大
                    max_h1 = 1;
                else// 第三张牌最大
                    max_h1 = 2;

                // 取出玩家2的最大手牌的数字
                int max_h2 = 0;
                int e = comparehPoker.compareCN(hPoker2.get(0), hPoker2.get(1));
                int f = comparehPoker.compareCN(hPoker2.get(0), hPoker2.get(2));
                int h = comparehPoker.compareCN(hPoker2.get(2), hPoker2.get(1));
                if (e >= 0 && f >= 0)// 第一张牌最大
                    max_h2 = 0;
                else if (e <= 0 && h <= 0)// 第二张牌最大
                    max_h2 = 1;
                else// 第三张牌最大
                    max_h2 = 2;

                // 比较玩家最大的牌(数字)
                int ab1 = comparehPoker.compareCN(hPoker1.get(max_h1), hPoker2.get(max_h2));
                if (ab1 > 0)// 玩家1赢了
                {
                    System.out.println(playerList.get(0).name + "获胜!");
                    System.out.println( "玩家1:--> 单牌");
                    System.out.println( "玩家2:--> 单牌");
                }
                else if(ab1<0)// 玩家2赢了
                {
                    System.out.println(playerList.get(1).name + "获胜!");
                    System.out.println( "玩家1:--> 单牌");
                    System.out.println( "玩家2:--> 单牌");
                }
                else//最大的单牌数字相等,继续比较第二张
                {
                    //取出玩家1第二大的手牌
                    int mid_h1 = 0;
                    if (a >= 0 && b >= 0)// 第一张牌最大
                    {
                        if (b >= 0 && c <= 0)// 第三张牌最小
                            mid_h1 = 1;
                        else if(a >= 0 && c >= 0)// 第二张牌最小
                            mid_h1 = 2;
                    }
                    else if(a <= 0 && c <= 0)// 第二张牌最大
                    {
                        if (b >= 0 && c <= 0)// 第三张牌最小
                            mid_h1 = 0;
                        else if(a <= 0 && b <= 0)// 第一张牌最小
                            mid_h1 = 2;
                    }
                    else if(c >= 0 && b <= 0)// 第三张牌最大
                    {
                        if(a >= 0 && c >= 0)// 第二张牌最小
                            mid_h1 = 0;
                        else if(a <= 0 && b <= 0)// 第一张牌最小
                            mid_h1 = 1;
                    }

                    //取出玩家2第二大的手牌
                    int mid_h2 = 0;
                    if (e >= 0 && f >= 0)// 第一张牌最大
                    {
                        if (f >= 0 && h <= 0)// 第三张牌最小
                            mid_h2 = 1;
                        else if(e >= 0 && h >= 0)// 第二张牌最小
                            mid_h2 = 2;
                    }
                    else if(e <= 0 && h <= 0)// 第二张牌最大
                    {
                        if (f >= 0 && h <= 0)// 第三张牌最小
                            mid_h2 = 0;
                        else if(e <= 0 && f <= 0)// 第一张牌最小
                            mid_h2 = 2;
                    }
                    else if(h >= 0 && f <= 0)// 第三张牌最大
                    {
                        if(e >= 0 && h >= 0)// 第二张牌最小
                            mid_h2 = 0;
                        else if(e <= 0 && f <= 0)// 第一张牌最小
                            mid_h2 = 1;
                    }

                    // 比较玩家第二大的牌(数字)
                    int ab2 = comparehPoker.compareCN(hPoker1.get(mid_h1), hPoker2.get(mid_h2));
                    if (ab2 > 0)// 玩家1赢了
                    {
                        System.out.println(playerList.get(0).name + "获胜!");
                        System.out.println( "玩家1:--> 单牌");
                        System.out.println( "玩家2:--> 单牌");
                    }
                    else if(ab2<0)// 玩家2赢了
                    {
                        System.out.println(playerList.get(1).name + "获胜!");
                        System.out.println( "玩家1:--> 单牌");
                        System.out.println( "玩家2:--> 单牌");
                    }
                    else//第二大的单牌数字相等,继续比较第三张
                    {
                        //取出玩家1最小的手牌
                        int min_h1 = 0;
                        if (b >= 0 && c <= 0)// 第三张牌最小
                            min_h1 = 2;
                        else if(a >= 0 && c >= 0)// 第二张牌最小
                            min_h1 = 1;
                        else if(a <= 0 && b <= 0)// 第一张牌最小
                            min_h1 = 0;

                        //取出玩家2最小的手牌
                        int min_h2 = 0;
                        if (f >= 0 && h <= 0)// 第三张牌最小
                            min_h2 = 2;
                        else if(e >= 0 && h >= 0)// 第二张牌最小
                            min_h2 = 1;
                        else if(e <= 0 && f <= 0)// 第一张牌最小
                            min_h2 = 0;

                        // 比较玩家最小的手牌(数字)
                        int ab3 = comparehPoker.compareCN(hPoker1.get(min_h1), hPoker2.get(min_h2));
                        if (ab3 > 0)// 玩家1赢了
                        {
                            System.out.println(playerList.get(0).name + "获胜!");
                            System.out.println( "玩家1:--> 单牌");
                            System.out.println( "玩家2:--> 单牌");
                        }
                        else if(ab3<0)// 玩家2赢了
                        {
                            System.out.println(playerList.get(1).name + "获胜!");
                            System.out.println( "玩家1:--> 单牌");
                            System.out.println( "玩家2:--> 单牌");
                        }
                        else//玩家三张单牌数字大小一样
                        {
                            // 比较玩家最大的牌的花色
                            int ab1_1 = comparehPoker.compare(hPoker1.get(max_h1), hPoker2.get(max_h2));
                            if (ab1_1 > 0)// 玩家1赢了
                            {
                                System.out.println(playerList.get(0).name + "获胜!");
                                System.out.println( "玩家1:--> 单牌");
                                System.out.println( "玩家2:--> 单牌");
                            }
                            else if(ab1_1<0)// 玩家2赢了
                            {
                                System.out.println(playerList.get(1).name + "获胜!"); 
                                System.out.println( "玩家1:--> 单牌");
                                System.out.println( "玩家2:--> 单牌");
                            }
                        }
                    }
                }
            }

        }   
    }
}

因篇幅限制,故分为上中下三篇发布,下篇请参见我的手记《简易扑克游戏(续)—— 炸金花(下)》

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP

热门评论

好多报错怎么回事,譬如compareCN

查看全部评论