コード例 #1
0
        public int DealerRound(int I, Computer com, Human p)
        {
            try
            {
                Clear();//清庄家手牌
                Casino.Deliver(dealerhand, j, I);
                I++;
                j++;
                Casino.Deliver(dealerhand, j, I);
                I++;
                j++;
                while ((sum = GetSum(dealerhand)) < 17)
                {
                    Casino.Deliver(dealerhand, j, I);
                    I++;
                    j++;
                    if ((sum = GetSum(dealerhand)) > 21)
                    {
                        throw (new DealerBusted("DealerBusted"));
                    }
                }
            }
            catch (DealerBusted)
            {
                flag++;
                switch (com.Flag)
                {
                case 0:
                    if (com.Knock == "d")
                    {
                        com.Win   += 2;
                        com.HTrend = Abs(com.HTrend - 8);
                        com.DTrend = Abs(com.DTrend + 24);
                        com.STrend = Abs(com.STrend - 8);
                        com.RTrend = Abs(com.RTrend - 8);
                        if (com.HTrend < 22)
                        {
                            com.HTrend += 21;
                        }
                        if (com.DTrend < 22)
                        {
                            com.DTrend += 21;
                        }
                        if (com.STrend < 22)
                        {
                            com.STrend += 21;
                        }
                        if (com.RTrend < 22)
                        {
                            com.RTrend += 21;
                        }
                    }
                    else if (com.IfViceExp == 0)
                    {
                        com.Win   += 1;
                        com.HTrend = Abs(com.HTrend - 4);
                        com.DTrend = Abs(com.DTrend - 4);
                        com.STrend = Abs(com.STrend + 12);
                        com.RTrend = Abs(com.RTrend - 4);
                        if (com.HTrend < 22)
                        {
                            com.HTrend += 21;
                        }
                        if (com.DTrend < 22)
                        {
                            com.DTrend += 21;
                        }
                        if (com.STrend < 22)
                        {
                            com.STrend += 21;
                        }
                        if (com.RTrend < 22)
                        {
                            com.RTrend += 21;
                        }
                    }
                    else
                    {
                        com.Win    += 1;
                        com.HTrend  = Abs(com.HTrend + 12);
                        com.DTrend  = Abs(com.DTrend - 4);
                        com.STrend  = Abs(com.STrend - 4);
                        com.RTrend  = Abs(com.RTrend - 4);
                        com.HTrend1 = Abs(com.HTrend1 - 12);
                        com.STrend1 = Abs(com.STrend1 + 12);
                        if (com.HTrend < 22)
                        {
                            com.HTrend += 21;
                        }
                        if (com.DTrend < 22)
                        {
                            com.DTrend += 21;
                        }
                        if (com.STrend < 22)
                        {
                            com.STrend += 21;
                        }
                        if (com.RTrend < 22)
                        {
                            com.RTrend += 21;
                        }
                        if (com.HTrend1 < 22)
                        {
                            com.HTrend1 += 21;
                        }
                        if (com.STrend1 < 22)
                        {
                            com.STrend1 += 21;
                        }
                    }
                    Console.WriteLine("Dealer Burst!Computer Win!");
                    break;

                case 1:
                    break;
                }
                switch (p.Flag)
                {
                case 0:
                    if (p.Knock == "d")
                    {
                        p.Win += 2;
                    }
                    else
                    {
                        p.Win += 1;
                    }
                    Console.WriteLine("Dealer Burst!You Win!");
                    break;

                case 1:
                    break;
                }
            }
            finally
            {
            }
            return(flag);
        }
コード例 #2
0
        //人工操作玩家回合
        public int PersonRound(int I)
        {
            try
            {
                Clear();//清玩家手牌
                //int tmp = 0;
                Console.WriteLine("Human Round:");
                Casino.Deliver(playerhand, j, I);//1st Card 发第一张
                j++;
                I++;
                Casino.Deliver(playerhand, j, I);//2nd Card 发第二张
                j++;
                I++;
                sum = GetSum(playerhand); //累积求和
                if (sum == 21)            //21点直接结束,不改变任何倾向,因为与操作无关
                {
                    ifmainexpexist = 1;
                    throw (new YouGotABlackJack("You Got A Black Jack"));
                }
                else
                {
                    //ReadTendency(0);//模式0==读取主经验库
                    //knock = RandomMainTrend(htrend, dtrend, strend, rtrend);//根据倾向,计算机进行随机判断
                    //Console.WriteLine("The computer selects {0}", knock);
                    QandA();//预留的人工应答界面
                    switch (knock)
                    {
                    case "h":
                        while (knock == "h")
                        {
                            Casino.Deliver(playerhand, j, I);
                            I++;
                            j++;
                            if ((sum = GetSum(playerhand)) > 21 && ifviceexpexist == 0)
                            {
                                throw (new YouBursted("You Bursted"));
                            }
                            //ifviceexpexist = 2;
                            //vicemark = 0;
                            //ReadTendency(1);
                            //knock = RandomViceTrend(htrend1, strend1);
                            QandA();
                            //Console.WriteLine("The computer selects {0}", knock);
                            //Console.ReadKey();
                        }
                        break;

                    //case 'p':
                    case "d":
                        Casino.Deliver(playerhand, j, I);
                        I++;
                        j++;
                        sum = GetSum(playerhand);
                        if (sum > 21)
                        {
                            throw (new YouBursted("You Bursted"));
                        }
                        break;

                    case "r":
                        throw (new YouSurrender("You Surrender"));

                    default:
                        break;
                    }
                }
            }
            catch (YouGotABlackJack)
            {
                win += 1.5;
                flag++;
                Console.WriteLine("Good Fortune Sir!!");
            }
            catch (YouBursted)
            {
                if (knock == "d")
                {
                    lose += 2;
                    flag++;
                }
                else if (ifviceexpexist == 0)
                {
                    lose += 1;
                    flag++;
                }
                else
                {
                    lose += 1;
                    flag++;
                }
                Console.WriteLine("You Burst!");
            }
            catch (YouSurrender)
            {
                lose += 0.5;
                flag++;
                Console.WriteLine("You Surrender.");
            }
            finally
            {
            }
            return(I);
        }
コード例 #3
0
        //电脑控制的玩家回合
        public int PlayerRound(int I)
        {
            try
            {
                Clear();//清玩家手牌
                IfMainExp = 0;
                IfViceExp = 0;
                int tmp = 0;
                Console.WriteLine("Computer Round:");
                Casino.Deliver(playerhand, j, I);//1st Card 发第一张
                I++;
                j++;
                Casino.Deliver(playerhand, j, I);//2nd Card 发第二张
                I++;
                j++;
                sum = GetSum(playerhand); //累积求和
                if (sum == 21)            //21点直接结束,不改变任何倾向,因为与操作无关
                {
                    ifmainexpexist = 1;
                    throw (new YouGotABlackJack("Computer Got A Black Jack"));
                }
                else
                {
                    ReadTendencyFromSql(0, CardCombination);                 //模式0==读取主经验库
                    knock = RandomMainTrend(htrend, dtrend, strend, rtrend); //根据倾向,计算机进行随机判断
                    Console.WriteLine("The computer selects {0}", knock);
                    //QandA();//预留的人工应答界面
                    //Console.ReadKey();
                    switch (knock)
                    {
                    case "h":
                        while (knock == "h")
                        {
                            Casino.Deliver(playerhand, j, I);
                            I++;
                            j++;
                            if ((sum = GetSum(playerhand)) > 21 && ifviceexpexist == 0)
                            {
                                throw (new YouBursted("Computer Bursted"));
                            }
                            if (sum > 21)
                            {
                                tmp = playerhand[j - 1];
                                playerhand[j - 1] = 0;
                                sum = GetSum(playerhand);
                                throw (new YouBursted("Computer Bursted"));
                            }
                            if (ifviceexpexist == 3)
                            {
                                tmp = playerhand[j - 1];
                                playerhand[j - 1] = 0;
                                sum     = GetSum(playerhand);
                                htrend1 = Abs(htrend1 + 6);
                                strend1 = Abs(strend1 - 6);
                                EditTendencyToSql(4, sum);
                                playerhand[j - 1] = tmp;
                                sum = GetSum(playerhand);
                            }
                            ifviceexpexist = 2;
                            ReadTendencyFromSql(1, sum);
                            knock = RandomViceTrend(htrend1, strend1);
                            //p.QandA();
                            Console.WriteLine("The Computer selects {0}", knock);
                            //Console.ReadKey();
                        }
                        break;

                    //case 'p':
                    case "d":
                        Casino.Deliver(playerhand, j, I);
                        I++;
                        j++;
                        sum = GetSum(playerhand);
                        if (sum > 21)
                        {
                            throw (new YouBursted("Computer Bursted"));
                        }
                        break;

                    case "r":
                        throw (new YouSurrender("Computer Surrender"));

                    default:
                        break;
                    }
                }
            }
            catch (YouGotABlackJack)
            {
                win += 1.5;
                flag++;
                Console.WriteLine("Good Fortune Sir!!");
            }
            catch (YouBursted)
            {
                if (knock == "d")
                {
                    lose += 2;
                    flag++;
                    htrend = Abs(htrend + 8);
                    dtrend = Abs(dtrend - 24);
                    strend = Abs(strend + 8);
                    rtrend = Abs(rtrend + 8);
                    if (htrend < 22)
                    {
                        htrend += 21;
                    }
                    if (dtrend < 22)
                    {
                        dtrend += 21;
                    }
                    if (strend < 22)
                    {
                        strend += 21;
                    }
                    if (rtrend < 22)
                    {
                        rtrend += 21;
                    }
                }
                else if (ifviceexpexist == 0)
                {
                    lose += 1;
                    flag++;
                    htrend = Abs(htrend - 12);
                    strend = Abs(strend + 8);
                    rtrend = Abs(rtrend + 4);
                    if (htrend < 22)
                    {
                        htrend += 21;
                    }
                    if (dtrend < 22)
                    {
                        dtrend += 21;
                    }
                    if (strend < 22)
                    {
                        strend += 21;
                    }
                    if (rtrend < 22)
                    {
                        rtrend += 21;
                    }
                }
                else
                {
                    lose += 1;
                    flag++;
                    htrend  = Abs(htrend + 12);
                    dtrend  = Abs(dtrend - 4);
                    strend  = Abs(strend - 4);
                    rtrend  = Abs(rtrend - 4);
                    htrend1 = Abs(htrend1 - 12);
                    strend1 = Abs(strend1 + 12);
                    if (htrend < 22)
                    {
                        htrend += 21;
                    }
                    if (dtrend < 22)
                    {
                        dtrend += 21;
                    }
                    if (strend < 22)
                    {
                        strend += 21;
                    }
                    if (rtrend < 22)
                    {
                        rtrend += 21;
                    }
                    if (htrend1 < 22)
                    {
                        htrend1 += 21;
                    }
                    if (strend1 < 22)
                    {
                        strend1 += 21;
                    }
                }
                Console.WriteLine("Computer Burst!");
            }
            catch (YouSurrender)
            {
                lose += 0.5;
                flag++;
                htrend = Abs(htrend + 2);
                dtrend = Abs(dtrend + 2);
                strend = Abs(strend + 2);
                rtrend = Abs(rtrend - 6);
                if (htrend < 22)
                {
                    htrend += 21;
                }
                if (dtrend < 22)
                {
                    dtrend += 21;
                }
                if (strend < 22)
                {
                    strend += 21;
                }
                if (rtrend < 22)
                {
                    rtrend += 21;
                }
                Console.WriteLine("Computer Surrender.");
            }
            finally
            {
                Console.WriteLine("**********************************************");
            }
            return(I);
        }