⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 suoha_main.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
   default:
      break;
   }
   return MFW_EVENT_CONSUMED;
}

void Suoha_Destroy(T_MFW_HND own_window)
{
   T_MFW_WIN     * win;
   T_Suoha       * data;

   TRACE_EVENT("Suoha_Destroy");

   if (own_window)
   {
      win  = ((T_MFW_HDR *)own_window)->data;
      data = (T_Suoha *)win->user;

      if (data)
      {

         casenum = 0;
         kbdDelete(data->kbd);
         timDelete(data->tim);
         win_delete (data->win);
      }

      FREE_MEMORY ((void *)data, sizeof (T_Suoha));
   }
   flash_Gamewrite();  
}

BOOL Opponent_Select_init()
{
//initialize three opponents
   win_states = SUOHA_OPP_SELECT;
   focus_opp = 1;
   //   dspl_ClearAll();
   return 1;
}

void Play_MainWin_data_Init()
{

   TRACE_FUNCTION("Play_MainWin_data_Init()");

   c_M = oppmoney[focus_opp-1];
}

//4 开始游戏,洗牌,发牌,显示前两张牌
void Play_Start() //the entry of main playing window
{
   MfwRect rect = {0,0,120,160};
   USHORT i;
   T_SUOHA_MAINWIN_FOCUSTHINGS *temp;

   TRACE_FUNCTION("Play_Start()");

//	isEnd = FALSE;
   win_states = SUOHA_MAIN_WINDOW;        
   /*initialize p_Cards and c_Cards*/
   dspl_ClearAll();
   PaintBackground(rect, BKCOLOR);

   ShuffleCards();
   SendCards();

   p_PreviousM = p_M;
   c_PreviousM = c_M;

/* the number of case*/
   casenum++;
   /* display the cards*/
   curr_CardTh = 1; //the first card will be displayed
   DisplayOneCard(COMPUTER, BACKCARD, c_Cards[0]);
   DisplayOneCard(PLAYER, curr_CardTh, p_Cards[0]);

   /*initialize stakes*/
   p_CurrStake = 100;
   p_M = p_M - p_CurrStake;
   c_CurrStake = 100;
   c_M = c_M - c_CurrStake;
   desk_CurrStake = 200;

   DisplayMainWinTxtZone();

   for (i=0; i<=3; i++) //in addition, "quansuo" must be enabled at last!!
   {
      temp = (T_SUOHA_MAINWIN_FOCUSTHINGS *)&playeractions[i];//+i*sizeof(T_SUOHA_MAINWIN_FOCUSTHINGS);
      temp->thingtype = ACTIONS;
      temp->isenabled = TRUE;
   }
   temp = &playeractions[4]; temp->isenabled = 0;

   Interactive();

   mainwin_focus->codenum = playeractions[1].codenum;
   mainwin_focus->isenabled = playeractions[1].isenabled;
   mainwin_focus->thingtype = playeractions[1].thingtype;
   mainwin_states = SUOHA_ISACTING;

   Display_Actions();
   Display_Focus();
}

/********************************************************************



*********************************************************************/
void PreFocus()
{
   USHORT numcode, i;
   T_SUOHA_MAINWIN_FOCUSTHINGS *pre_focus;
   pre_focus = mainwin_focus;

/*
  * do not focus COMPUTER_CARD and PLAR_CARD
*/

   /*
      if(mainwin_focus->thingtype==COMPUTER_CARD) //4 如果是聚焦在电脑的牌上
        {
           numcode = mainwin_focus->codenum;
        
           if(numcode==0) //future focus is not in computercards
              {
           RedrawPreCardFocus(pre_focus);
              if(curr_CardTh>=2)
                 {
                 //4如果牌当前的牌数大于2,为什么会聚焦到玩家的牌上
                 mainwin_focus = &playercards[curr_CardTh-2]; //zhangzg 08/20/2002
                 Display_Focus();        		
                 }
                 else
                 {
                 for(i=4; i>=0; i--)  //some actions may be not enabled in some cases
                    {
                    //4 如果对应按钮上的动作可以被执行
                       if(playeractions[i].isenabled)
                          {
                          mainwin_focus = &playeractions[i];
                          Display_Focus();
                           break;
                       }
                    }
                 }
              }
           else 
           {
           numcode--;
        RedrawPreCardFocus(pre_focus);
           mainwin_focus = &computercards[numcode];
           Display_Focus();
           }
        }
         else if(mainwin_focus->thingtype==PLAYER_CARD)
              {
                 numcode = mainwin_focus->codenum;
                 if(numcode==0) 
                    {
                 RedrawPreCardFocus(pre_focus);
                    for(i=4; i>=0; i--)  //some actions may be not enabled in some cases
                       {
                       if(playeractions[i].isenabled)
                          {
                          mainwin_focus = &playeractions[i];
                          Display_Focus();
                          break;
                          }
                       }
                    }
                    else 
                    {
                       numcode--;
                    RedrawPreCardFocus(pre_focus);
                       mainwin_focus = &playercards[numcode];
                       Display_Focus();
                    }
              }
               else
                 {   
               */
   numcode = mainwin_focus->codenum;
   if (numcode==0)
   {
      RedrawPreActionFocus(pre_focus);
      //4 否则从最后一个开始找如果能画就画,并break
      for (i=4; i>=0; i--)  //some actions may be not enabled in some cases
      {
         if (playeractions[i].isenabled)
         {
            mainwin_focus = &playeractions[i];
            Display_Focus();
            break;
         }
      }
   } else
   {
      numcode--;
      RedrawPreActionFocus(pre_focus);
      for (i=numcode; i>=0; i--)
      {
         if (playeractions[i].isenabled)
         {
            mainwin_focus = &playeractions[i];
            Display_Focus();
            break;
         }
      }        
   }     
}


void NextFocus()
{
   USHORT numcode;
   T_SUOHA_MAINWIN_FOCUSTHINGS *pre_focus;
   pre_focus = mainwin_focus;

/*
  * do not focus COMPUTER_CARD and PLAR_CARD
*/

/*
    if(mainwin_focus->thingtype==COMPUTER_CARD)
      {
      numcode = mainwin_focus->codenum;
      while(curr_CardTh>=3 && numcode<=(curr_CardTh-3)) //zhangzg 08/20/2002
         {
         numcode++;
         if(numcode>(curr_CardTh-3)) //zhangzg 08/20/2002
            {
            RedrawPreCardFocus(pre_focus);
            mainwin_focus = &playeractions[0];
            Display_Focus();
            break;
            }
         else if(computercards[numcode].isenabled)
            {

            RedrawPreCardFocus(pre_focus);
            //
            mainwin_focus = &computercards[numcode];
            Display_Focus();
            break;
            }
         else
            {
            }
            
         }
      
      }
    else if(mainwin_focus->thingtype==PLAYER_CARD)
      {
      numcode = mainwin_focus->codenum;
      while(curr_CardTh>=2 && numcode<=(curr_CardTh-2)) //zhangzg 08/20/2002 //numcode=0~4; curr_CardTh= 1~5
         {
         numcode++;
         if(numcode>(curr_CardTh-2))//zhangzg 08/20/2002
            {
            RedrawPreCardFocus(pre_focus);
            if(curr_CardTh>=3)
               mainwin_focus = &computercards[0];
            else
               mainwin_focus = &playeractions[0];
            Display_Focus();
            break;
            }
         else if(playercards[numcode].isenabled)
            {
            RedrawPreCardFocus(pre_focus);
            mainwin_focus = &playercards[numcode];
            Display_Focus();
            break;
            }
         else
            {
            }
            
         }
      
      }
      
    else
      {  */

   numcode = mainwin_focus->codenum;
   while (numcode<=4) //numcode=0~4; playeractions have total 4 items!!
   {
      numcode++;
      if (numcode>4)
      {
         RedrawPreActionFocus(pre_focus);
         mainwin_focus = &playeractions[0];
         Display_Focus();                     
         break;
      } else if (playeractions[numcode].isenabled)
      {
         RedrawPreActionFocus(pre_focus);
         mainwin_focus = &playeractions[numcode];
         Display_Focus();
         break;
      }
   }
}



/***********************************************************************

when you select different items, the game handles them respectively

***********************************************************************/
void SelectFocusItems()
{
   T_SUOHA_MAINWIN_THINGTYPE focusthing = mainwin_focus->thingtype;           
   USHORT cn = mainwin_focus->codenum;
   switch (focusthing)
   {
   /*
   case COMPUTER_CARD:
      SelectComputerCard(cn);
      break;
   case PLAYER_CARD:
      SelectPlayerCard(cn);
      break;
      */
   case ACTIONS:
      SelectAction(cn);
      break;
   case STAKES:
      SelectStake(cn);
      break;
   default:
      break;
   }
}

/****************************************************************************



******************************************************************************/
void SelectAction(USHORT whichaction)
{
   switch (whichaction)
   {
   case 0:  //4 查看
      DrawSelectedButton(1);
      pre_mainwin_states = mainwin_states;        
      CheckCurr();
      break;
   case 1:  //4 下注
      DrawSelectedButton(2);
      XiaZhu();
      if (playeractions[1].isenabled)
      {
         mainwin_focus = &playeractions[1];
         Display_Focus();        
      } else
      {
         mainwin_focus = &playeractions[0];
         Display_Focus();                    
      }
      break;
   case 2: //4 跟进
      DrawSelectedButton(3);
      GenJin();
      break;
   case 3: //4 放弃
      DrawSelectedButton(4);
      FangQi();
      mainwin_focus = (T_SUOHA_MAINWIN_FOCUSTHINGS *)&computercards[0];//point to computer[1];						
      break;
   case 4: //4 全梭
      DrawSelectedButton(5);
      QuanSuo();
      mainwin_focus = (T_SUOHA_MAINWIN_FOCUSTHINGS *)&computercards[0];//point to computer[1];			
      break;
   default:
      break;
   }
}

//4 选择下注并且重新刷新所有的按钮设置mainwin_states为初始状态
void SelectStake(USHORT whichstake)
{
   USHORT i, item;


   switch (whichstake)
   {
   case 1:
      DrawSelectedButton(2);
      item = 1;
      break;
   case 2:
      DrawSelectedButton(3);
      item = 2;
      break;
   case 3:
      DrawSelectedButton(4);
      item = 3;
      break;
   default:
      break;
   }

   for (i=1; i<=3; i++)
      playeractions[i].thingtype = ACTIONS;

   if (curr_CardTh<=5)// && !isEnd)
   {
      Display_Actions();
      mainwin_states = SUOHA_ISACTING;

      //recover the enabled
      playeractions[1].isenabled = 1;
      playeractions[3].isenabled = 1;

      mainwin_focus = &playeractions[1];  //set the focus to xiazhu
      Display_Focus();
   }

   Money123(item);



}


/***************************************************************************

⌨️ 快捷键说明

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