2015華爲軟件精英挑戰賽德州撲克之手牌處理

依據德州撲克規則,每人先發兩張手牌,我們依據網上對手牌牌力的分析表格, 採取遍歷的方法,計算出手牌的牌力

int myTwoCardWeight(card mtwocard[])
{
    if (mtwocard[0].point == mtwocard[1].point)
    {
        switch (mtwocard[0].point)
        {
        case 2:return 11;
        case 3:return 11;
        case 4:return 11;
        case 5:return 12;
        case 6:return 13;
        case 7:return 13;
        case 8:return 15;
        case 9:return 16;
        case 10:return 19;
        case 11:return 22;
        case 12:return 27;
        case 13:return 35;
        case 14:return 40;
        }
    }
    else if (mtwocard[0].color == mtwocard[1].color)  //如果是同花
    {
        switch (mtwocard[0].point)
        {
        case 2:
        {
                  switch (mtwocard[1].point)
                  {
                  case 3:return 7;
                  case 4:return 7;
                  case 5:return 8;
                  case 6:return 6;
                  case 7:return 6;
                  case 8:return 6;
                  case 9:return 7;
                  case 10:return 8;
                  case 11:return 8;
                  case 12:return 9;
                  case 13:return 11;
                  case 14:return 13;
                  }
        }
        case 3:
        {
                  switch (mtwocard[1].point)
                  {
                  case 2:return 7;
                  case 4:return 8;
                  case 5:return 9;
                  case 6:return 8;
                  case 7:return 7;
                  case 8:return 6;
                  case 9:return 7;
                  case 10:return 8;
                  case 11:return 9;
                  case 12:return 10;
                  case 13:return 11;
                  case 14:return 14;
                  }
        }
        case 4:
        {
                  switch (mtwocard[1].point)
                  {
                  case 2:return 7;
                  case 3:return 8;
                  case 5:return 10;
                  case 6:return 10;
                  case 7:return 9;
                  case 8:return 8;
                  case 9:return 7;
                  case 10:return 8;
                  case 11:return 9;
                  case 12:return 10;
                  case 13:return 11;
                  case 14:return 14;
                  }
        }
        case 5:
        {
                  switch (mtwocard[1].point)
                  {
                  case 2:return 8;
                  case 3:return 9;
                  case 4:return 10;
                  case 6:return 11;
                  case 7:return 10;
                  case 8:return 9;
                  case 9:return 8;
                  case 10:return 8;
                  case 11:return 9;
                  case 12:return 10;
                  case 13:return 12;
                  case 14:return 15;
                  }
        }
        case 6:
        {
                  switch (mtwocard[1].point)
                  {
                  case 2:return 6;
                  case 3:return 8;
                  case 4:return 10;
                  case 5:return 11;
                  case 7:return 11;
                  case 8:return 11;
                  case 9:return 10;
                  case 10:return 10;
                  case 11:return 9;
                  case 12:return 11;
                  case 13:return 12;
                  case 14:return 14;
                  }
        }
        case 7:
        {
                  switch (mtwocard[1].point)
                  {
                  case 2:return 6;
                  case 3:return 7;
                  case 4:return 9;
                  case 5:return 10;
                  case 6:return 11;
                  case 8:return 12;
                  case 9:return 12;
                  case 10:return 11;
                  case 11:return 11;
                  case 12:return 11;
                  case 13:return 13;
                  case 14:return 14;
                  }
        }
        case 8:
        {
                  switch (mtwocard[1].point)
                  {
                  case 2:return 6;
                  case 3:return 6;
                  case 4:return 8;
                  case 5:return 9;
                  case 6:return 11;
                  case 7:return 12;
                  case 9:return 13;
                  case 10:return 13;
                  case 11:return 13;
                  case 12:return 13;
                  case 13:return 13;
                  case 14:return 15;
                  }
        }
        case 9:
        {
                  switch (mtwocard[1].point)
                  {
                  case 2:return 7;
                  case 3:return 7;
                  case 4:return 7;
                  case 5:return 8;
                  case 6:return 10;
                  case 7:return 12;
                  case 8:return 13;
                  case 10:return 15;
                  case 11:return 15;
                  case 12:return 15;
                  case 13:return 15;
                  case 14:return 16;
                  }
        }
        case 10:
        {
                   switch (mtwocard[1].point)
                   {
                   case 2:return 8;
                   case 3:return 8;
                   case 4:return 8;
                   case 5:return 8;
                   case 6:return 10;
                   case 7:return 11;
                   case 8:return 13;
                   case 9:return 15;
                   case 11:return 18;
                   case 12:return 18;
                   case 13:return 18;
                   case 14:return 19;
                   }
        }
        case 11:
        {
                   switch (mtwocard[1].point)
                   {
                   case 2:return 8;
                   case 3:return 9;
                   case 4:return 9;
                   case 5:return 9;
                   case 6:return 9;
                   case 7:return 11;
                   case 8:return 13;
                   case 9:return 15;
                   case 10:return 18;
                   case 12:return 19;
                   case 13:return 20;
                   case 14:return 20;
                   }
        }
        case 12:
        {
                   switch (mtwocard[1].point)
                   {
                   case 2:return 9;
                   case 3:return 10;
                   case 4:return 10;
                   case 5:return 10;
                   case 6:return 11;
                   case 7:return 11;
                   case 8:return 13;
                   case 9:return 15;
                   case 10:return 18;
                   case 11:return 19;
                   case 13:return 21;
                   case 14:return 22;
                   }
        }
        case 13:
        {
                   switch (mtwocard[1].point)
                   {
                   case 2:return 11;
                   case 3:return 11;
                   case 4:return 11;
                   case 5:return 12;
                   case 6:return 12;
                   case 7:return 13;
                   case 8:return 13;
                   case 9:return 15;
                   case 10:return 18;
                   case 11:return 20;
                   case 12:return 21;
                   case 14:return 24;
                   }
        }
        case 14:
        {
                   switch (mtwocard[1].point)
                   {
                   case 2:return 13;
                   case 3:return 14;
                   case 4:return 14;
                   case 5:return 15;
                   case 6:return 14;
                   case 7:return 14;
                   case 8:return 15;
                   case 9:return 16;
                   case 10:return 19;
                   case 11:return 20;
                   case 12:return 22;
                   case 13:return 24;
                   }
        }
        }
    }
    else if (mtwocard[0].color != mtwocard[1].color)  //如果不是同花
    {
        switch (mtwocard[0].point)
        {
        case 2:
        {
                  switch (mtwocard[1].point)
                  {
                  case 3:return 1;
                  case 4:return 2;
                  case 5:return 2;
                  case 6:return 1;
                  case 7:return 0;
                  case 8:return 0;
                  case 9:return 1;
                  case 10:return 2;
                  case 11:return 2;
                  case 12:return 3;
                  case 13:return 4;
                  case 14:return 7;
                  }

        }
        case 3:
        {
                  switch (mtwocard[1].point)
                  {
                  case 2:return 1;
                  case 4:return 3;
                  case 5:return 4;
                  case 6:return 3;
                  case 7:return 1;
                  case 8:return 1;
                  case 9:return 1;
                  case 10:return 2;
                  case 11:return 2;
                  case 12:return 3;
                  case 13:return 5;
                  case 14:return 7;
                  }
        }
        case 4:
        {
                  switch (mtwocard[1].point)
                  {
                  case 2:return 2;
                  case 3:return 3;
                  case 5:return 5;
                  case 6:return 4;
                  case 7:return 3;
                  case 8:return 2;
                  case 9:return 1;
                  case 10:return 2;
                  case 11:return 3;
                  case 12:return 4;
                  case 13:return 5;
                  case 14:return 8;
                  }
        }
        case 5:
        {
                  switch (mtwocard[1].point)
                  {
                  case 2:return 2;
                  case 3:return 4;
                  case 4:return 5;
                  case 6:return 6;
                  case 7:return 5;
                  case 8:return 4;
                  case 9:return 3;
                  case 10:return 2;
                  case 11:return 3;
                  case 12:return 4;
                  case 13:return 5;
                  case 14:return 8;
                  }
        }
        case 6:
        {
                  switch (mtwocard[1].point)
                  {
                  case 2:return 1;
                  case 3:return 3;
                  case 4:return 4;
                  case 5:return 6;
                  case 7:return 6;
                  case 8:return 5;
                  case 9:return 4;
                  case 10:return 4;
                  case 11:return 3;
                  case 12:return 4;
                  case 13:return 6;
                  case 14:return 7;
                  }
        }
        case 7:
        {
                  switch (mtwocard[1].point)
                  {
                  case 2:return 0;
                  case 3:return 1;
                  case 4:return 3;
                  case 5:return 5;
                  case 6:return 6;
                  case 8:return 7;
                  case 9:return 6;
                  case 10:return 6;
                  case 11:return 5;
                  case 12:return 5;
                  case 13:return 6;
                  case 14:return 8;
                  }
        }
        case 8:
        {
                  switch (mtwocard[1].point)
                  {
                  case 2:return 0;
                  case 3:return 1;
                  case 4:return 2;
                  case 5:return 4;
                  case 6:return 5;
                  case 7:return 7;
                  case 9:return 8;
                  case 10:return 8;
                  case 11:return 7;
                  case 12:return 7;
                  case 13:return 7;
                  case 14:return 9;
                  }
        }
        case 9:
        {
                  switch (mtwocard[1].point)
                  {
                  case 2:return 1;
                  case 3:return 1;
                  case 4:return 1;
                  case 5:return 3;
                  case 6:return 4;
                  case 7:return 6;
                  case 8:return 8;
                  case 10:return 10;
                  case 11:return 9;
                  case 12:return 9;
                  case 13:return 9;
                  case 14:return 10;
                  }
        }
        case 10:
        {
                   switch (mtwocard[1].point)
                   {
                   case 2:return 2;
                   case 3:return 2;
                   case 4:return 2;
                   case 5:return 2;
                   case 6:return 4;
                   case 7:return 6;
                   case 8:return 8;
                   case 9:return 10;
                   case 11:return 13;
                   case 12:return 12;
                   case 13:return 13;
                   case 14:return 13;
                   }
        }
        case 11:
        {
                   switch (mtwocard[1].point)
                   {
                   case 2:return 2;
                   case 3:return 2;
                   case 4:return 3;
                   case 5:return 3;
                   case 6:return 3;
                   case 7:return 5;
                   case 8:return 7;
                   case 9:return 9;
                   case 10:return 13;
                   case 12:return 14;
                   case 13:return 14;
                   case 14:return 14;
                   }
        }
        case 12:
        {
                   switch (mtwocard[1].point)
                   {
                   case 2:return 3;
                   case 3:return 3;
                   case 4:return 4;
                   case 5:return 4;
                   case 6:return 4;
                   case 7:return 5;
                   case 8:return 7;
                   case 9:return 9;
                   case 10:return 12;
                   case 11:return 14;
                   case 13:return 16;
                   case 14:return 16;
                   }
        }
        case 13:
        {
                   switch (mtwocard[1].point)
                   {
                   case 2:return 4;
                   case 3:return 5;
                   case 4:return 5;
                   case 5:return 5;
                   case 6:return 6;
                   case 7:return 6;
                   case 8:return 7;
                   case 9:return 9;
                   case 10:return 13;
                   case 11:return 14;
                   case 12:return 16;
                   case 14:return 19;
                   }
        }
        case 14:
        {
                   switch (mtwocard[1].point)
                   {
                   case 2:return 7;
                   case 3:return 7;
                   case 4:return 8;
                   case 5:return 8;
                   case 6:return 7;
                   case 7:return 8;
                   case 8:return 9;
                   case 9:return 10;
                   case 10:return 13;
                   case 11:return 14;
                   case 12:return 16;
                   case 13:return 19;
                   }
        }
        }
    }
}



策略方面:

1)。依據自己所處的不同位置,採取不同的策略,比如莊家,小盲,大盲位,以及其他位置;

2)。依據本局還在玩牌的人數(也就還沒有出局的人數),玩法不同。例如:人少,手牌可以玩的寬鬆一點,即牌力較小的牌都可以玩。人多的時候可以玩的緊一點;

3)。依據在你之前說話的人數,加註的人數,棄牌的人數,策略會有所不同;


ps:總決賽過後,還玩了好久手機版德州撲克,其實覺得,拿AA贏的概率大,然而23(同花或者不同花),都可以贏

所以總結一句:以儘可能小的代價來增加入局率


手牌很重要,手牌處理的好壞,決定着後面的打法與勝負。
發佈了35 篇原創文章 · 獲贊 5 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章