suoha_algri.c

来自「是一个手机功能的模拟程序」· C语言 代码 · 共 2,046 行 · 第 1/5 页

C
2,046
字号
         } else
         {
            return FOURCARDSQUIT;
         }
         break;
      case THREE_DUIZI:
         bigger = CompareTwo(c_CT.bigcard, p_CT.bigcard);
         if (c_CT.bigcard==bigger)
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[21][0],Poss43[21][1],Poss43[21][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               actionnum = Produce2Poss(Poss43[21][3],Poss43[21][4]);
               return ClassifyFollorQuit(4,actionnum);
            }
         } else
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[22][0],Poss43[22][1],Poss43[22][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               return FOURCARDSQUIT;
            }
         }
         break;
      case THREE_SHANPAI:
         bigger = CompareTwo(c_CT.bigcard, p_CT.bigcard);
         if (c_CT.bigcard==bigger)
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[23][0],Poss43[23][1],Poss43[23][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               return FOURCARDSFOLL;
            }
         } else
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[24][0],Poss43[24][1],Poss43[24][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               return FOURCARDSFOLL;
            }
         }
         break;
      }
      break;
   }
   return 0;
}
unsigned long Four_Greater_Opp1(CardType c_CT, CardType p_CT, unsigned short turnwho, unsigned long pMoney)//zhangzg 08/23/2002
{
   int bigger=0, actionnum;
   unsigned char Poss43[25][5];
//	if(focus_opp==1)
   strcpy((char *)& Poss43, (char *)& Poss43_opp1);
//	else if(focus_opp==2)
   //	strcpy((char *)& Poss43, (char *)& Poss43_opp2);
//	else
   //	strcpy((char *)& Poss43, (char *)& Poss43_opp3);

   switch (c_CT.cardType)
   {
   case FOUR_TIEZI:
      switch (p_CT.cardType)
      {
      case THREE_SHANTIAO:
         bigger = CompareTwo(c_CT.bigcard, p_CT.bigcard);
         if (c_CT.bigcard==bigger)
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[0][0],Poss43[0][1],Poss43[0][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               actionnum = Produce3Poss(Poss43[0][0],Poss43[0][1],Poss43[0][2]);
               if (c_M>(pMoney*(actionnum+1)))
                  return pMoney*(actionnum+1);
               else
                  return FOURCARDSFOLL;
            }
         } else
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[1][0],Poss43[1][1],Poss43[1][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               actionnum = Produce3Poss(Poss43[1][0],Poss43[1][1],Poss43[1][2]);
               if (c_M>(pMoney*(actionnum+1)))
                  return pMoney*(actionnum+1);
               else
                  return FOURCARDSFOLL;
            }
         }
         break;
      case THREE_DUIZI:
         if (turnwho==COMPUTER)
         {
            actionnum = Produce3Poss(Poss43[2][0],Poss43[2][1],Poss43[2][2]);
            return ClassifyStake(4, actionnum);
         } else
         {
            actionnum = Produce3Poss(Poss43[2][0],Poss43[2][1],Poss43[2][2]);
            if (c_M>(pMoney*(actionnum+1)))
               return pMoney*(actionnum+1);
            else
               return FOURCARDSFOLL;
         }
         break;
      case THREE_SHANPAI:
         if (turnwho==COMPUTER)
         {
            actionnum = Produce3Poss(Poss43[3][0],Poss43[3][1],Poss43[3][2]);
            return ClassifyStake(4, actionnum);
         } else
         {
            actionnum = Produce3Poss(Poss43[3][0],Poss43[3][1],Poss43[3][2]);
            if (c_M>(pMoney*(actionnum+1)))
               return pMoney*(actionnum+1);
            else
               return FOURCARDSFOLL;
         }
         break;
      }
      break;
   case FOUR_SHANTIAO:
      switch (p_CT.cardType)
      {
      case THREE_SHANTIAO:
         bigger = CompareTwo(c_CT.bigcard, p_CT.bigcard);
         if (c_CT.bigcard==bigger)
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[4][0],Poss43[4][1],Poss43[4][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               actionnum = Produce3Poss(Poss43[4][0],Poss43[4][1],Poss43[4][2]);
               if (c_M>(pMoney*(actionnum+1)))
                  return pMoney*(actionnum+1);
               else
                  return FOURCARDSFOLL;
            }
         } else
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[5][0],Poss43[5][1],Poss43[5][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               actionnum = Produce2Poss(Poss43[5][3],Poss43[5][4]);
               return ClassifyFollorQuit(4,actionnum);
            }
         }
         break;
      case THREE_DUIZI:
         bigger = CompareTwo(c_CT.bigcard, p_CT.bigcard);
         if (c_CT.bigcard==bigger)
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[6][0],Poss43[6][1],Poss43[6][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               actionnum = Produce3Poss(Poss43[6][0],Poss43[6][1],Poss43[6][2]);
               if (c_M>(pMoney*(actionnum+1)))
                  return pMoney*(actionnum+1);
               else
                  return FOURCARDSFOLL;
            }
         } else
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[7][0],Poss43[7][1],Poss43[7][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               actionnum = Produce3Poss(Poss43[7][0],Poss43[7][1],Poss43[7][2]);
               if (c_M>(pMoney*(actionnum+1)))
                  return pMoney*(actionnum+1);
               else
                  return FOURCARDSFOLL;
            }
         }
         break;
      case THREE_SHANPAI:
         if (turnwho==COMPUTER)
         {
            actionnum = Produce3Poss(Poss43[8][0],Poss43[8][1],Poss43[8][2]);
            return ClassifyStake(4, actionnum);
         } else
         {
            actionnum = Produce3Poss(Poss43[8][0],Poss43[8][1],Poss43[8][2]);
            if (c_M>(pMoney*(actionnum+1)))
               return pMoney*(actionnum+1);
            else
               return FOURCARDSFOLL;
         }
         break;
      }
      break;
   case FOUR_LIANGDUI:
      switch (p_CT.cardType)
      {
      case THREE_SHANTIAO:
         bigger = CompareTwo(c_CT.bigcard, p_CT.bigcard);
         if (c_CT.bigcard==bigger)
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[9][0],Poss43[9][1],Poss43[9][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               actionnum = Produce2Poss(Poss43[9][3],Poss43[9][4]);
               return ClassifyFollorQuit(4,actionnum);
            }
         } else
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[10][0],Poss43[10][1],Poss43[10][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               actionnum = Produce2Poss(Poss43[10][3],Poss43[10][4]);
               return ClassifyFollorQuit(4,actionnum);
            }
         }
         break;
      case THREE_DUIZI:
         bigger = CompareTwo(c_CT.bigcard, p_CT.bigcard);
         if (c_CT.bigcard==bigger)
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[11][0],Poss43[11][1],Poss43[11][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               actionnum = Produce3Poss(Poss43[11][0],Poss43[11][1],Poss43[11][2]);
               if (c_M>(pMoney*(actionnum+1)))
                  return pMoney*(actionnum+1);
               else
                  return FOURCARDSFOLL;
            }
         } else
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[12][0],Poss43[12][1],Poss43[12][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               actionnum = Produce3Poss(Poss43[12][0],Poss43[12][1],Poss43[12][2]);
               if (c_M>(pMoney*(actionnum+1)))
                  return pMoney*(actionnum+1);
               else
                  return FOURCARDSFOLL;
            }
         }
         break;
      case THREE_SHANPAI:
         if (turnwho==COMPUTER)
         {
            actionnum = Produce3Poss(Poss43[13][0],Poss43[13][1],Poss43[13][2]);
            return ClassifyStake(4, actionnum);
         } else
         {
            actionnum = Produce3Poss(Poss43[13][0],Poss43[13][1],Poss43[13][2]);
            if (c_M>(pMoney*(actionnum+1)))
               return pMoney*(actionnum+1);
            else
               return FOURCARDSFOLL;
         }
         break;
      }
      break;
   case FOUR_DUIZI:
      switch (p_CT.cardType)
      {
      case THREE_SHANTIAO:
         bigger = CompareTwo(c_CT.bigcard, p_CT.bigcard);
         if (c_CT.bigcard==bigger)
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[14][0],Poss43[14][1],Poss43[14][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               actionnum = Produce2Poss(Poss43[14][3],Poss43[14][4]);
               return ClassifyFollorQuit(4,actionnum);
            }
         } else
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[15][0],Poss43[15][1],Poss43[15][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               return FOURCARDSQUIT;
            }
         }
         break;
      case THREE_DUIZI:
         bigger = CompareTwo(c_CT.bigcard, p_CT.bigcard);
         if (c_CT.bigcard==bigger)
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[16][0],Poss43[16][1],Poss43[16][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               actionnum = Produce3Poss(Poss43[16][0],Poss43[16][1],Poss43[16][2]);
               if (c_M>(pMoney*(actionnum+1)))
                  return pMoney*(actionnum+1);
               else
                  return FOURCARDSFOLL;
            }
         } else
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[17][0],Poss43[17][1],Poss43[17][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               actionnum = Produce2Poss(Poss43[17][3],Poss43[17][4]);
               return ClassifyFollorQuit(4,actionnum);
            }
         }
         break;
      case THREE_SHANPAI:
         bigger = CompareTwo(c_CT.bigcard, p_CT.bigcard);
         if (c_CT.bigcard==bigger)
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[18][0],Poss43[18][1],Poss43[18][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               actionnum = Produce3Poss(Poss43[18][0],Poss43[18][1],Poss43[18][2]);
               if (c_M>(pMoney*(actionnum+1)))
                  return pMoney*(actionnum+1);
               else
                  return FOURCARDSFOLL;
            }
         } else
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[19][0],Poss43[19][1],Poss43[19][2]);
               return ClassifyStake(4,actionnum);
            } else
            {
               actionnum = Produce3Poss(Poss43[19][0],Poss43[19][1],Poss43[19][2]);
               if (c_M>(pMoney*(actionnum+1)))
                  return pMoney*(actionnum+1);
               else
                  return FOURCARDSFOLL;
            }
         }
         break;
      }
      break;
   case FOUR_SHANPAI:
      switch (p_CT.cardType)
      {
      case THREE_SHANTIAO:
         if (turnwho==COMPUTER)
         {
            actionnum = Produce3Poss(Poss43[20][0],Poss43[20][1],Poss43[20][2]);
            return ClassifyStake(4, actionnum);
         } else
         {
            return FOURCARDSQUIT;
         }
         break;
      case THREE_DUIZI:
         bigger = CompareTwo(c_CT.bigcard, p_CT.bigcard);
         if (c_CT.bigcard==bigger)
         {//corresponds to a composite of both card types
            if (turnwho==COMPUTER)
            {
               actionnum = Produce3Poss(Poss43[21][0],Poss43[21][1],Poss43[21][2]);
               ret

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?