程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言2048

C語言2048

編輯:關於C語言

這段時間google上有個小游戲挺火的,我也很喜歡,業余時間做個C語言版的。

 

老規矩先上干貨: 

 

最近在忙畢業設計, 寫的不是很好,可能還有不少bug,待優化的地方也不少。還望各位大俠多多指正,不吝賜教。

 

方向鍵控制,r鍵重啟,esc退出。

 

 界面截圖如下:

   {
     UINT32 uNextData = GetByPosition( i2, j2 );
 
     (  == uNextData )
     {
         SetAddMatByPosition( i2, j2, GetAddMatByPosition( i1, j1 ) );
         SetAddMatByPosition( i1, j1, FALSE );
 
         SetByPosition( i1, j1,  );
         SetByPosition( i2, j2, (*uData) );
         
          TRUE;
     }
     
      ( FALSE == GetAddMatByPosition( i1, j1 ) &&
          FALSE == GetAddMatByPosition( i2, j2 ) &&
          (*uData) == uNextData )
     {
         (*uData) *= ;
         
         SetByPosition( i1, j1,  );
         SetByPosition( i2, j2, (*uData) );
 
         SetAddMatByPosition( i2, j2, TRUE );
        
          TRUE;
     }
     
      FALSE;
 }

 

 然後在這個函數中調用上面的函數,每次移動一塊到不能移動為止

         BOOL MoveOneUp( i,  j)
 {
     BOOL bHasMoved = FALSE;
     UINT32 uData = GetByPosition( i, j );
     
      (  == uData )
     {
          FALSE;
     }
 
      ( i >  )
     {
         ( FALSE == MoveOneStep( i, j, i-, j, &uData) )
         {
             ;           }
         
         {
             bHasMoved = TRUE;               i--;
         }
     }
 
      bHasMoved;
 }

 

 這個函數的被一個接受用戶輸入的函數調用,當按方向鍵時執行,調用上面的函數,逐塊移動:

 

 

        cmdUp()
 {
      i,j;
     BOOL bHasMoved = FALSE;
 
      ( FALSE == BeforeMove() )
     {
          ;
     }
     
      ( i = ; i < SIZE ; i ++)
     {
          ( j = ; j < SIZE ; j ++)
         {
             bHasMoved = (TRUE == MoveOneUp(i,j) ? TRUE : bHasMoved);
         }
     }
 
      ( TRUE == bHasMoved)
     {
         AfterMove();
     }
 }
    

 

好了,就寫這麼多,很簡單的小玩意,練練手

 

 --------END------------

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved