移植中国象棋到展讯6530平台(2)-----h目录中相关文件的源码

来源:互联网 发布:遗传算法 优缺 编辑:程序博客网 时间:2024/04/27 19:35
//mmishopping_chess_export.h#include "mmishopping_chess_image.h"PUBLIC BOOLEAN MMISHOPPING_OpenChessWin(void);


//mmishopping_chess_id.defWIN_ID_DEF(MMISHOPPING_CHESS_WIN_ID, "MMISHOPPING_CHESS_WIN_ID")

//mmishopping_chess_id.h/****************************************************************************** File Name:      mmigame_square_id.h                                               *** Author:                                                                 *** Date:           03/29/2006                                             *** Copyright:      2003 Spreadtrum, Incoporated. All Rights Reserved.       *** Description:    This file is used to describe the data struct of        ***                 system, applicaiton, window and control                 *******************************************************************************                         Important Edit History                          *** ------------------------------------------------------------------------*** DATE           NAME             DESCRIPTION                             *** 03/2006        Annie.an        Create** ****************************************************************************/ /**--------------------------------------------------------------------------* **                         Include Files                                    * **--------------------------------------------------------------------------*/#include "sci_types.h"#include "os_api.h"#include "mmk_type.h"#include "mmi_module.h"/**---------------------------------------------------------------------------* **                         Compiler Flag                                     * **---------------------------------------------------------------------------*/#ifdef __cplusplus   extern   "C"   {#endif#define WIN_ID_DEF(win_id, win_id_name)          win_id,typedef enum{SHOPPING_CHESS_ID_START = (MMI_MODULE_SHOPPING_CHESS<< 16),#include "mmishopping_chess_id.def"    SHOPPING_CHESS_MAX_WIN_ID}SHOPPING_CHESS_WINDOW_ID_E;#undef WIN_ID_DEF// 命名规则: 模块名 + 窗口名 + WIN_ID  ,  eg: CC_DIALING_WIN_ID (CC部分呼叫窗口ID)/**---------------------------------------------------------------------------* **                         Compiler Flag                                     * **---------------------------------------------------------------------------*/#ifdef   __cplusplus   }#endif

//mmishopping_chess_image.h#include "sci_types.h"#include "mmi_imagefun.h"#include "mmi_module.h"#ifdef __cplusplusextern   "C" {#endif#define MACRO_MDU_TYPE  MACRO_MDU_IMAGE#include "macro_mdu_def.h"typedef enum SHOPPING_CHESS_MMI_IMAGE_ID_E{SHOPPING_CHESS_IMAGE_ID_START  = (MMI_MODULE_SHOPPING_CHESS  << 16 ) | MMI_SYS_RES_FLAG,#include "shopping_chess_mdu_def.h"SHOPPING_CHESS_IMAGE_MAX_ID} SHOPPING_CHESS_MMI_IMAGE_ID_E;#undef MACRO_MDU_TYPE#ifdef __cplusplus}#endif

//mmishopping_chess_internal.h#define SHOPPING_CHESS_MAN_MOVE_MSG (MSG_USER_START + 100)#define SHOPPING_CHESS_COM_MOVE_MSG (MSG_USER_START + 101)#define NOCHESS 0    //没有棋子#define B_KING       1  //黑帅#define B_CAR        2  //黑车#define B_HORSE      3  //黑马#define B_CANON      4  //黑炮#define B_BISHOP     5  //黑士#define B_ELEPHANT   6  //黑象#define B_PAWN       7  //黑卒#define B_BEGIN      B_KING#define B_END        B_PAWN#define R_KING       8   //红帅#define R_CAR        9   //红车#define R_HORSE      10  //红马#define R_CANON      11  //红炮#define R_BISHOP     12  //红士#define R_ELEPHANT   13  //红象#define R_PAWN       14  //红兵#define R_BEGIN      R_KING#define R_END        R_PAWN#define BASEVALUE_PAWN        100#define BASEVALUE_BISHOP      250#define BASEVALUE_ELEPHANT    250#define BASEVALUE_CAR         500#define BASEVALUE_HORSE       350#define BASEVALUE_CANON       350#define BASEVALUE_KING        10000#define FLEXIBILITY_PAWN      15#define FLEXIBILITY_BISHOP    1#define FLEXIBILITY_ELEPHANT  1#define FLEXIBILITY_CAR       6#define FLEXIBILITY_HORSE     12#define FLEXIBILITY_CANON     6#define FLEXIBILITY_KING      0#define IsBlack(x)       (x>=B_BEGIN&&x<=B_END)#define IsRed(x)         (x>=R_BEGIN&&x<=R_END)#define IsSameSide(x,y)  ((IsBlack(x)&&IsBlack(y))||(IsRed(x)&&IsRed(y)))#define MAN_WIN        1#define COM_WIN        2//const int MW=24,SW=1;//MW-棋子宽度;SW-棋子间隔的一半//const int BWA=MW+SW*2;//BWA-棋格宽度//const int XBW=BWA*9,YBW=BWA*10;//棋盘的长宽const int MAN=0;//人const int COM=1;//计算机const int RED=0;//红方const int BLACK=1;//黑方uint8 *s_bg_img_buf_ptr = PNULL;LOCAL uint8 is_show_num = 0;typedef enum{    LINKS_TILE_ID_0,    LINKS_TILE_ID_1,    LINKS_TILE_ID_2,    LINKS_TILE_ID_3,    LINKS_TILE_ID_4,    LINKS_TILE_ID_5,    LINKS_TILE_ID_6,    LINKS_TILE_ID_7,    LINKS_TILE_ID_8,    LINKS_TILE_ID_9,    LINKS_TILE_ID_10,    LINKS_TILE_ID_11,    LINKS_TILE_ID_12,    LINKS_TILE_ID_13,    LINKS_TILE_ID_14,    LINKS_TILE_ID_15,    LINKS_TILE_MAX_NUMBER,         //子图片总数    LINKS_TILE_BLANK = 256, // #define LINKS_TILE_BLANK      256              // 无图片时的id}LINKS_TILES_ID_E;typedef enum{    SHOPPING_CHESS_DIRECTION_LEFT=1, //向左SHOPPING_CHESS_DIRECTION_RIGHT,  //向右SHOPPING_CHESS_DIRECTION_UP,     //向上SHOPPING_CHESS_DIRECTION_DOWN    //向下} SHOPPING_CHESS_DIRECTION_E;typedef enum{    SHOPPING_CHESS_ID_RED_K = 0,    //红帅    SHOPPING_CHESS_ID_RED_S,        //仕    SHOPPING_CHESS_ID_RED_X,        //相    SHOPPING_CHESS_ID_RED_M,        //马    SHOPPING_CHESS_ID_RED_J,        //车    SHOPPING_CHESS_ID_RED_P,        //炮    SHOPPING_CHESS_ID_RED_B,        //兵    SHOPPING_CHESS_ID_BLACK_K,      //黑将    SHOPPING_CHESS_ID_BLACK_S,      //士    SHOPPING_CHESS_ID_BLACK_X,      //象    SHOPPING_CHESS_ID_BLACK_M,      //马    SHOPPING_CHESS_ID_BLACK_J,      //车    SHOPPING_CHESS_ID_BLACK_P,      //炮    SHOPPING_CHESS_ID_BLACK_B,      //卒}SHOPPING_CHESS_ID_E;typedef struct{    MMI_IMAGE_ID_T                image_id; //image_id 可以与chess_id 统一起来    GUI_RECT_T                    original_rect;    GUI_RECT_T                    from_rect;    GUI_RECT_T                    to_rect;    GUI_POINT_T                    from_point;    GUI_POINT_T                    to_point;    BOOLEAN                       is_select;    BYTE                              m_ChessBoard[10][9];    BYTE                              m_BackupChessBoard[10][9];}SHOPPING_CHESS_INFO_T;typedef struct{    BYTE            ChessID; //    GUI_POINT_T     From;    GUI_POINT_T     To; //    int              Score; // }SHOPPING_CHESS_MOVE;//LOCAL MMI_IMAGE_ID_T shopping_chess_bg[] = {IMAGE_SHOPPING_TESTWIN_BG};LOCAL uint8 shopping_testwin_bg_timer_id = 0;LOCAL uint8 shopping_testwin_pop_timer_id[8] = {0};LOCAL GUI_LCD_DEV_INFO Shopping_Chesswin_Bg_Layer = {0};LOCAL GUI_LCD_DEV_INFO Shopping_Chesswin_Fg_Layer = {0};LOCAL GUI_LCD_DEV_INFO Shopping_Chesswin_TpMove_Layer = {0};LOCAL CreateShoppingChesswinLayer(GUI_LCD_DEV_INFO *layer,BOOLEAN is_static_layer,BOOLEAN is_bg_layer);LOCAL GUI_LCD_DEV_INFO CreateShoppingChesswinBgLayer(void);LOCAL GUI_LCD_DEV_INFO CreateShoppingChesswinFgLayer(void);LOCAL GUI_LCD_DEV_INFO CreateShoppingChesswinTpMoveLayer(void);LOCAL void DisplayShoppingChesswinBgLayer(void);LOCAL void RefreshShoppingChesswinFgLayer(MMI_WIN_ID_T win_id);LOCAL void ShoppingChesswinInit(MMI_WIN_ID_T win_id);LOCAL void HandleShoppingChessTpDownMSG(MMI_WIN_ID_T win_id, DPARAM param);LOCAL void HandleShoppingChessTpUpMSG(MMI_WIN_ID_T win_id,DPARAM param);LOCAL void HandleShoppingChessTpMoveMSG(MMI_WIN_ID_T win_id, DPARAM param,BOOLEAN is_first);LOCAL void ShoppingChesswinAppendLayer(GUI_LCD_DEV_INFO *layer,UILAYER_LEVEL_E layer_level);LOCAL void HandleShoppingChesswinTimerMsg(MMI_WIN_ID_T win_id,DPARAM param);LOCAL MMI_IMAGE_ID_T ShoppingChesswinGetImgId(BYTE *m_ChessBoard);LOCAL MMI_IMAGE_ID_T GetImageID(int index);LOCAL BOOLEAN ShoppingChessIsValidMove(SHOPPING_CHESS_INFO_T *chessman,int nFromX, int nFromY, int nToX, int nToY);LOCAL void ShoppingChessDisplayInfo(MMI_TEXT_ID_T text_id);LOCAL void ShoppingChessSearchAGoodMove(BYTE position[10][9]);LOCAL int ShoppingChessNegamaxEngine(int depth);LOCAL int ShoppingChessCreatePossibleMove(BYTE position[10][9], int nPly, int nSide);LOCAL int ShoppingChessAddToMoveList(int nFromX, int nFromY, int nToX, int nToY,int nPly);LOCAL void ShoppingChessGen_KingMove(BYTE position[10][9], int i, int j, int nPly);LOCAL void ShoppingChessGen_RBishopMove(BYTE position[10][9], int i, int j, int nPly);LOCAL void ShoppingChessGen_BBishopMove(BYTE position[10][9], int i, int j, int nPly);LOCAL void ShoppingChessGen_ElephantMove(BYTE position[10][9], int i, int j, int nPly);LOCAL void ShoppingChessGen_HorseMove(BYTE position[10][9], int i, int j, int nPly);LOCAL void ShoppingChessGen_RPawnMove(BYTE position[10][9], int i, int j, int nPly);LOCAL void ShoppingChessGen_BPawnMove(BYTE position[10][9], int i, int j, int nPly);LOCAL void ShoppingChessGen_CarMove(BYTE position[10][9], int i, int j, int nPly);LOCAL void ShoppingChessGen_CanonMove(BYTE position[10][9], int i, int j, int nPly);LOCAL BYTE ShoppingChessMakeMove(SHOPPING_CHESS_MOVE* move);LOCAL void ShoppingChessUnMakeMove(SHOPPING_CHESS_MOVE* move,BYTE nChessID);LOCAL int ShoppingChessIsGameOver(BYTE position[10][9], int nDepth);LOCAL void ShoppingChessEveluationInit(void);LOCAL int ShoppingChessEveluate(BYTE position[10][9], BOOL bIsRedTurn);LOCAL int ShoppingChessGetRelatePiece(BYTE position[10][9], int j, int i);LOCAL BOOLEAN ShoppingChessCanTouch(BYTE position[10][9], int nFromX, int nFromY, int nToX, int nToY);LOCAL void ShoppingChessAddPoint(int  x, int y);LOCAL int ShoppingChessGetBingValue(int x, int y, BYTE CurSituation[][9]);LOCAL int ShoppingChessWhoIsWin(BYTE position[10][9]);

//mmishopping_chess_position.h#ifdef __cplusplus    extern   "C"    {#endif#define MMI_SHOPPING_CHESS_WH     32#define MMI_SHOPPING_CHESS_WHM    31#define MMI_SHOPPING_CHESS_X0 15 //31#define MMI_SHOPPING_CHESS_X1 (MMI_SHOPPING_CHESS_X0 + MMI_SHOPPING_CHESS_WH)#define MMI_SHOPPING_CHESS_X2 (MMI_SHOPPING_CHESS_X1 + MMI_SHOPPING_CHESS_WH)#define MMI_SHOPPING_CHESS_X3 (MMI_SHOPPING_CHESS_X2 + MMI_SHOPPING_CHESS_WH)#define MMI_SHOPPING_CHESS_X4 (MMI_SHOPPING_CHESS_X3 + MMI_SHOPPING_CHESS_WH)#define MMI_SHOPPING_CHESS_X5 (MMI_SHOPPING_CHESS_X4 + MMI_SHOPPING_CHESS_WH)#define MMI_SHOPPING_CHESS_X6 (MMI_SHOPPING_CHESS_X5 + MMI_SHOPPING_CHESS_WH)#define MMI_SHOPPING_CHESS_X7 (MMI_SHOPPING_CHESS_X6 + MMI_SHOPPING_CHESS_WH)#define MMI_SHOPPING_CHESS_X8 (MMI_SHOPPING_CHESS_X7 + MMI_SHOPPING_CHESS_WH)#define MMI_SHOPPING_CHESS_Y0 15 //31#define MMI_SHOPPING_CHESS_Y1 (MMI_SHOPPING_CHESS_Y0 + MMI_SHOPPING_CHESS_WH)#define MMI_SHOPPING_CHESS_Y2 (MMI_SHOPPING_CHESS_Y1 + MMI_SHOPPING_CHESS_WH)#define MMI_SHOPPING_CHESS_Y3 (MMI_SHOPPING_CHESS_Y2 + MMI_SHOPPING_CHESS_WH)#define MMI_SHOPPING_CHESS_Y4 (MMI_SHOPPING_CHESS_Y3 + MMI_SHOPPING_CHESS_WH)#define MMI_SHOPPING_CHESS_Y5 (MMI_SHOPPING_CHESS_Y4 + MMI_SHOPPING_CHESS_WH)#define MMI_SHOPPING_CHESS_Y6 (MMI_SHOPPING_CHESS_Y5 + MMI_SHOPPING_CHESS_WH)#define MMI_SHOPPING_CHESS_Y7 (MMI_SHOPPING_CHESS_Y6 + MMI_SHOPPING_CHESS_WH)#define MMI_SHOPPING_CHESS_Y8 (MMI_SHOPPING_CHESS_Y7 + MMI_SHOPPING_CHESS_WH)#define MMI_SHOPPING_CHESS_Y9 (MMI_SHOPPING_CHESS_Y8 + MMI_SHOPPING_CHESS_WH)#ifdef   __cplusplus    }#endif

//mmishopping_chess_text.h#include "sci_types.h"#include "mmi_module.h"#ifdef __cplusplusextern   "C" {#endif#define MACRO_MDU_TYPE  MACRO_MDU_TEXT#include "macro_mdu_def.h"typedef enum SHOPPING_CHESS_MMI_TEXT_ID_E{SHOPPING_CHESS_TXT_ID_START  = (MMI_MODULE_SHOPPING_CHESS  << 16 ) | MMI_SYS_RES_FLAG,#include "shopping_chess_mdu_def.h"SHOPPING_CHESS_TXT_MAX_ID} SHOPPING_CHESS_MMI_TEXT_ID_E;#undef MACRO_MDU_TYPE#ifdef __cplusplus}#endif

//shopping_chess_mdu_def.hRES_ADD_STRING(TXT_MAN_GO_NOW, "It's you turn now!")RES_ADD_IMG(IMAGE_SHOPPING_CHESS_BLACK_B,"\\MMI_RES_##\\IMAG\\IMAGE_SHOPPING_CHESS_BLACK_B.png",IMG_CMP_DEFAULT,    0)RES_ADD_IMG(IMAGE_SHOPPING_CHESS_BLACK_J,"\\MMI_RES_##\\IMAG\\IMAGE_SHOPPING_CHESS_BLACK_J.png",IMG_CMP_DEFAULT,    0)RES_ADD_IMG(IMAGE_SHOPPING_CHESS_BLACK_K,"\\MMI_RES_##\\IMAG\\IMAGE_SHOPPING_CHESS_BLACK_K.png",IMG_CMP_DEFAULT,    0)RES_ADD_IMG(IMAGE_SHOPPING_CHESS_BLACK_M,"\\MMI_RES_##\\IMAG\\IMAGE_SHOPPING_CHESS_BLACK_M.png",IMG_CMP_DEFAULT,    0)RES_ADD_IMG(IMAGE_SHOPPING_CHESS_BLACK_P,"\\MMI_RES_##\\IMAG\\IMAGE_SHOPPING_CHESS_BLACK_P.png",IMG_CMP_DEFAULT,    0)RES_ADD_IMG(IMAGE_SHOPPING_CHESS_BLACK_S,"\\MMI_RES_##\\IMAG\\IMAGE_SHOPPING_CHESS_BLACK_S.png",IMG_CMP_DEFAULT,    0)RES_ADD_IMG(IMAGE_SHOPPING_CHESS_BLACK_X,"\\MMI_RES_##\\IMAG\\IMAGE_SHOPPING_CHESS_BLACK_X.png",IMG_CMP_DEFAULT,    0)RES_ADD_IMG(IMAGE_SHOPPING_CHESS_RED_B,"\\MMI_RES_##\\IMAG\\IMAGE_SHOPPING_CHESS_RED_B.png",IMG_CMP_DEFAULT,    0)RES_ADD_IMG(IMAGE_SHOPPING_CHESS_RED_J,"\\MMI_RES_##\\IMAG\\IMAGE_SHOPPING_CHESS_RED_J.png",IMG_CMP_DEFAULT,    0)RES_ADD_IMG(IMAGE_SHOPPING_CHESS_RED_K,"\\MMI_RES_##\\IMAG\\IMAGE_SHOPPING_CHESS_RED_K.png",IMG_CMP_DEFAULT,    0)RES_ADD_IMG(IMAGE_SHOPPING_CHESS_RED_M,"\\MMI_RES_##\\IMAG\\IMAGE_SHOPPING_CHESS_RED_M.png",IMG_CMP_DEFAULT,    0)RES_ADD_IMG(IMAGE_SHOPPING_CHESS_RED_P,"\\MMI_RES_##\\IMAG\\IMAGE_SHOPPING_CHESS_RED_P.png",IMG_CMP_DEFAULT,    0)RES_ADD_IMG(IMAGE_SHOPPING_CHESS_RED_S,"\\MMI_RES_##\\IMAG\\IMAGE_SHOPPING_CHESS_RED_S.png",IMG_CMP_DEFAULT,    0)RES_ADD_IMG(IMAGE_SHOPPING_CHESS_RED_X,"\\MMI_RES_##\\IMAG\\IMAGE_SHOPPING_CHESS_RED_X.png",IMG_CMP_DEFAULT,    0)RES_ADD_IMG(IMAGE_SHOPPING_CHESS_SELECT,"\\MMI_RES_##\\IMAG\\IMAGE_SHOPPING_CHESS_SELECT.png",IMG_CMP_DEFAULT,    0)RES_ADD_IMG(IMAGE_SHOPPING_CHESS_SELECT1,"\\MMI_RES_##\\IMAG\\IMAGE_SHOPPING_CHESS_SELECT1.png",IMG_CMP_DEFAULT,    0)


原创粉丝点击