您的位置:首页 > 其它

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

2013-03-26 14:22 459 查看
//mmishopping_chess_export.h

#include "mmishopping_chess_image.h"
PUBLIC BOOLEAN MMISHOPPING_OpenChessWin(void);


//mmishopping_chess_id.def

WIN_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 __cplusplus
extern   "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 __cplusplus
extern   "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.h

RES_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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐