亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? reversi.c

?? UC_GUI開發源代碼,里面含有范例,源文件
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*
*********************************************************************************************************
*                                                uC/GUI
*                        Universal graphic software for embedded applications
*
*                       (c) Copyright 2002, Micrium Inc., Weston, FL
*                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
*
*              礐/GUI is protected by international copyright laws. Knowledge of the
*              source code may not be used to write a similar product. This file may
*              only be used in accordance with a license and should not be redistributed
*              in any way. We appreciate your understanding and fairness.
*
----------------------------------------------------------------------
File        : Reversi.c
Purpose     : Simple 'reversi' game.
----------------------------------------------------------------------
*/

#include <string.h>
#include <stdio.h>

#include "GUI.h"
#include "DIALOG.h"
#include "MENU.h"

/*********************************************************************
*
*       Defines
*
**********************************************************************
*/

#define NUM_CELL_X        8
#define NUM_CELL_Y        8

#define AA_USE_HIRES      0
#define AA_FACTOR         1

#if AA_USE_HIRES
  #define AA_CALCFACTOR   AA_FACTOR
#else
  #define AA_CALCFACTOR   1
#endif

#define DESKTOP_COLOR     GUI_DARKGREEN
#define CLIENT_COLOR      GUI_DARKGRAY
#define GRID_COLOR        GUI_BROWN

#define ID_MENU_NEW       (GUI_ID_USER +  0)
#define ID_MENU_PASS      (GUI_ID_USER +  1)
#define ID_MENU_EXIT      (GUI_ID_USER +  2)
#define ID_MENU_SETTINGS  (GUI_ID_USER +  3)
#define ID_MENU_ABOUT     (GUI_ID_USER +  4)

#define ID_MENU_TEST      (GUI_ID_USER +  5)

/*********************************************************************
*
*       Types
*
**********************************************************************
*/

typedef struct {
  U8  aCells[NUM_CELL_X][NUM_CELL_Y];
  U8  aMoves[NUM_CELL_X][NUM_CELL_Y];
  int ActPlayer;
} BOARD;

typedef char REVERSI_AI_Func(const BOARD* pBoard, int* px, int* py);

/*********************************************************************
*
*       Static data
*
**********************************************************************
*/

/* Global data */
static WM_HWIN  _hContextMenu;
static WM_HWIN  _hFrame;

static REVERSI_AI_Func* _pPlayerAI[2];

static BOARD  _Board;
static int    _GameOver;
static int    _BoardX0;
static int    _BoardY0;
static int    _CellSize;

/* Game settings */
static int      _ShowPossibleMoves = 1;

/*********************************************************************
*
*       Static data, Micrium logo (65% size)
*
**********************************************************************
*/

/*   Palette
The following are the entries of the palette table.
Every entry is a 32-bit value (of which 24 bits are actually used)
the lower   8 bits represent the Red component,
the middle  8 bits represent the Green component,
the highest 8 bits (of the 24 bits used) represent the Blue component
as follows:   0xBBGGRR
*/

static GUI_CONST_STORAGE GUI_COLOR ColorsMicriumLogo[] = {
     0x000000,0x000080,0x008000,0x008080
    ,0x800000,0x800080,0x808000,0x808080
    ,0xC0C0C0,0x0000FF,0x00FF00,0x00FFFF
    ,0xFF0000,0xFF00FF,0xFFFF00,0xFFFFFF
};

static GUI_CONST_STORAGE GUI_LOGPALETTE PalMicriumLogo = {
  16,	/* number of entries */
  0, 	/* No transparency */
  &ColorsMicriumLogo[0]
};

static GUI_CONST_STORAGE unsigned char acMicriumLogo[] = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
        0x00, 0x00, 0x00,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xF0, 0x00, 0x00, 0x7F, 0xFF, 0xF8, 0x00, 0x00, 0x07, 0xFF, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x70, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xF0, 0x00, 0x00, 0x08, 0xFF, 0xF7, 0x00, 0x00, 0x07, 0xFF, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xF0, 0x00, 0x00, 0x07, 0xFF, 0xF0, 0x00, 0x00, 0x07, 0xFF, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x70, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xF0, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x00, 0x07, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xF0, 0x00, 0x00, 0x00, 0xFF, 0x70, 0x07, 0x00, 0x07, 0xFF, 0x00, 0x07, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x08, 0xFF, 0xFF, 0x00, 0x08, 0x00, 0x07, 0x70, 0x00, 0xFF, 0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x08, 0xFF, 0x00, 0x07, 0x87, 0x00, 0x07, 0xF8, 0x00, 
        0x07, 0xFF, 0xF0,
  0x0F, 0xF0, 0x00, 0x07, 0x00, 0xFF, 0x00, 0x08, 0x00, 0x07, 0xFF, 0x00, 0x07, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x0F, 0xF8, 0x00, 0x07, 0xFF, 0x00, 0x07, 0x00, 0x00, 0x00, 0x80, 0x00, 
        0x00, 0x7F, 0xF0,
  0x0F, 0xF0, 0x00, 0x08, 0x00, 0x8F, 0x00, 0x0F, 0x00, 0x07, 0xFF, 0x00, 0x07, 0xFF, 0xF0, 0x00, 0x07, 0x70, 0x00, 0x08, 0xFF, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x07, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
        0x00, 0x0F, 0xF0,
  0x0F, 0xF0, 0x00, 0x0F, 0x00, 0x7F, 0x00, 0x7F, 0x00, 0x07, 0xFF, 0x00, 0x07, 0xFF, 0x70, 0x00, 0x0F, 0xF7, 0x00, 0x07, 0xFF, 0x00, 0x00, 0x78, 0x8F, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x07, 0xFF, 0x00, 0x00, 0x78, 0x00, 0x00, 0x07, 0x80, 
        0x00, 0x0F, 0xF0,
  0x0F, 0xF0, 0x00, 0x0F, 0x00, 0x07, 0x00, 0x8F, 0x00, 0x07, 0xFF, 0x00, 0x07, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x07, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x7F, 0xF0, 
        0x00, 0x0F, 0xF0,
  0x0F, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x07, 0xFF, 0x00, 0x07, 0xFF, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x07, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x7F, 0xF0, 
        0x00, 0x0F, 0xF0,
  0x0F, 0xF0, 0x00, 0x0F, 0x70, 0x00, 0x00, 0xFF, 0x00, 0x07, 0xFF, 0x00, 0x07, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x88, 0xFF, 0xFF, 0x00, 0x07, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x0F, 0xF7, 0x00, 0x07, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x7F, 0xF0, 
        0x00, 0x0F, 0xF0,
  0x0F, 0xF0, 0x00, 0x0F, 0x70, 0x00, 0x00, 0xFF, 0x00, 0x07, 0xFF, 0x00, 0x07, 0xFF, 0x70, 0x00, 0x7F, 0xFF, 0x00, 0x07, 0xFF, 0x00, 0x07, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x7F, 0xF0, 
        0x00, 0x0F, 0xF0,
  0x0F, 0xF0, 0x00, 0x0F, 0xF7, 0x00, 0x08, 0xFF, 0x00, 0x07, 0xFF, 0x00, 0x07, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0x00, 0x07, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x7F, 0xF0, 
        0x00, 0x0F, 0xF0,
  0x0F, 0xF0, 0x00, 0x0F, 0xF7, 0x00, 0x08, 0xFF, 0x00, 0x07, 0xFF, 0x00, 0x07, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8F, 0xFF, 0x00, 0x07, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x7F, 0xF0, 
        0x00, 0x0F, 0xF0,
  0x0F, 0xF7, 0x77, 0x7F, 0xFF, 0x77, 0x7F, 0xFF, 0x77, 0x77, 0xFF, 0x77, 0x77, 0xFF, 0xFF, 0xF7, 0x70, 0x07, 0x7F, 0xFF, 0xFF, 0x77, 0x77, 0xFF, 0xFF, 0x77, 0x77, 0xFF, 0xF0, 0x00, 0x77, 0x08, 0x77, 0x78, 0xFF, 0x77, 0x77, 0xFF, 0x87, 0x77, 0x8F, 0xF7, 
        0x77, 0x7F, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x77, 0x8F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
        0xFF, 0xFF, 0xF0,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
        0x00, 0x00, 0x00
};

GUI_CONST_STORAGE GUI_BITMAP _Logo = {
  90, /* XSize */
  42, /* YSize */
  45, /* BytesPerLine */
  4, /* BitsPerPixel */
  acMicriumLogo,  /* Pointer to picture data (indices) */
  &PalMicriumLogo  /* Pointer to palette */
};


/*********************************************************************
*
*       Function declarations
*
**********************************************************************
*/

static void _StartNewGame(void);

/*********************************************************************
*
*       Static code, player AIs
*
**********************************************************************
*/
/*********************************************************************
*
*       _PlayerAI_FirstValid
*/
static char _PlayerAI_FirstValid(const BOARD* pBoard, int* px, int* py) {
  int x, y;
  for (y = 0; y < NUM_CELL_Y; y++) {
    for (x = 0; x < NUM_CELL_X; x++) {
      if (pBoard->aMoves[x][y]) {
        goto End;
      }
    }
  }
End:
  *px = x;
  *py = y;
  return 1;
}

/*********************************************************************
*
*       Static code, helper functions
*
**********************************************************************
*/
/*********************************************************************
*
*       _Delay
*/
static void _Delay(int Period) {
  int EndTime = GUI_GetTime() + Period;
  int tRem; /* remaining Time */
  while (tRem = EndTime - GUI_GetTime(), tRem > 0) {
    GUI_Exec();
    GUI_X_Delay((tRem > 5) ? 5 : tRem);
  }
}

/*******************************************************************
*
*       _AddMenuItem
*/
static void _AddMenuItem(MENU_Handle hMenu, MENU_Handle hSubmenu, const char* pText, U16 Id, U16 Flags) {
  MENU_ITEM_DATA Item;
  Item.pText    = pText;
  Item.hSubmenu = hSubmenu;
  Item.Flags    = Flags;
  Item.Id       = Id;
  MENU_AddItem(hMenu, &Item);
}

/*******************************************************************
*
*       _CreateMenu
*/
static void _CreateMenu(WM_HWIN hWin) {
  MENU_Handle hMenu, hMenuGame, hMenuOptions, hMenuHelp;
  MENU_SetDefaultFont(&GUI_Font10_1);
  /* Create menu 'Game' */
  hMenuGame = MENU_CreateEx(0, 0, 0, 0, WM_UNATTACHED, 0, MENU_CF_VERTICAL, 0);
  _AddMenuItem(hMenuGame, 0, "New game", ID_MENU_NEW,  0);
  _AddMenuItem(hMenuGame, 0, "Pass",     ID_MENU_PASS, 0);
  _AddMenuItem(hMenuGame, 0, 0,          0,            MENU_IF_SEPARATOR);
  _AddMenuItem(hMenuGame, 0, "Exit",     ID_MENU_EXIT, 0);
  /* Create menu 'Options' */
  hMenuOptions = MENU_CreateEx(0, 0, 0, 0, WM_UNATTACHED, 0, MENU_CF_VERTICAL, 0);
  _AddMenuItem(hMenuOptions, 0, "Game settings...", ID_MENU_SETTINGS, 0);
  /* Create menu 'Help' */
  hMenuHelp = MENU_CreateEx(0, 0, 0, 0, WM_UNATTACHED, 0, MENU_CF_VERTICAL, 0);
  _AddMenuItem(hMenuHelp, 0, "About Reversi...", ID_MENU_ABOUT, 0);
  /* Create main menu */
  hMenu = MENU_CreateEx(0, 0, 0, 0, WM_UNATTACHED, 0, MENU_CF_HORIZONTAL, 0);
  _AddMenuItem(hMenu, hMenuGame,    "Game",    0, 0);
  _AddMenuItem(hMenu, hMenuOptions, "Options", 0, 0);
  _AddMenuItem(hMenu, hMenuHelp,    "Help",    0, 0);
  /* Attach menu to framewin */
  FRAMEWIN_AddMenu(hWin, hMenu);
}

/*******************************************************************
*
*       _CalcBoardDimensions
*/
static void _CalcBoardDimensions(void) {
  GUI_RECT r;
  WM_GetClientRectEx(WM_GetClientWindow(_hFrame), &r);
  _CellSize  = ((r.x1 > r.y1) ? r.y1 : r.x1) >> 3;
  _BoardX0   = (r.x1 - (_CellSize << 3)) >> 1;
  _BoardY0   = (r.y1 - (_CellSize << 3)) >> 1;
}

/*******************************************************************
*
*       _InvalidateBoard
*/
static void _InvalidateBoard(void) {
  WM_InvalidateWindow(WM_GetClientWindow(_hFrame));
}

/*******************************************************************
*
*       _InvalidateCell
*/
static void _InvalidateCell(int x, int y) {
  GUI_RECT r;
  r.x0 = _BoardX0 + (x * _CellSize);
  r.y0 = _BoardY0 + (y * _CellSize);
  r.x1 = r.x0 + _CellSize - 1;
  r.y1 = r.y0 + _CellSize - 1;
  WM_InvalidateRect(WM_GetClientWindow(_hFrame), &r);
}

/*********************************************************************
*
*       _SetCapture
*/
static void _SetCapture(void) {
#if (GUI_SUPPORT_MOUSE & GUI_SUPPORT_CURSOR)
  WM_HWIN hWin;
  hWin = WM_GetClientWindow(_hFrame);
  if (WM_HasCaptured(hWin) == 0) {
    WM_SetCapture(hWin, 0);
    GUI_CURSOR_Select(&GUI_CursorCrossS);
  }
#endif
}

/*********************************************************************
*
*       _ReleaseCapture
*/
static void _ReleaseCapture(void) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美丰满少妇xxxxx高潮对白 | 久久久久久久久岛国免费| 欧美中文字幕久久| 91麻豆产精品久久久久久| 成人综合在线网站| 成av人片一区二区| 99久久99久久精品免费观看| 99久久国产综合精品女不卡| 91丝袜美腿高跟国产极品老师| 91丨porny丨中文| 91色乱码一区二区三区| 91在线免费看| 欧美午夜电影在线播放| 777a∨成人精品桃花网| 精品久久人人做人人爰| 国产欧美一区二区精品仙草咪| 欧美激情一区二区三区| 国产精品成人免费| 亚洲综合免费观看高清完整版在线| 亚洲成人精品影院| 久久精工是国产品牌吗| 高清国产一区二区三区| 91在线高清观看| 欧美另类高清zo欧美| 日韩欧美一区在线观看| 国产女同互慰高潮91漫画| 亚洲人成精品久久久久久| 亚洲国产sm捆绑调教视频| 日本亚洲三级在线| 国产福利一区二区三区视频| 91视频观看视频| 91精品国产麻豆国产自产在线 | 专区另类欧美日韩| 亚洲在线视频网站| 日本视频一区二区| 成人动漫av在线| 欧美丝袜丝交足nylons图片| 日韩免费高清视频| 国产精品久久综合| 日韩电影在线一区| av在线一区二区三区| 91精品国产91热久久久做人人| 久久久久久久精| 午夜精品久久一牛影视| 国产一区二区导航在线播放| 91视频免费播放| 2欧美一区二区三区在线观看视频| 国产精品你懂的| 奇米色777欧美一区二区| 成人av动漫网站| 日韩欧美成人一区| 一区二区激情视频| 国产成+人+日韩+欧美+亚洲| 欧美精品在线观看播放| 国产精品视频一二三| 日韩中文字幕区一区有砖一区 | 国产福利不卡视频| 欧美日韩精品三区| 中文字幕在线免费不卡| 蜜臀va亚洲va欧美va天堂| 97久久超碰国产精品| 欧美tickling网站挠脚心| 亚洲已满18点击进入久久| 丰满少妇在线播放bd日韩电影| 91麻豆精品国产自产在线 | 国产成人av电影| 91精品国产手机| 亚洲线精品一区二区三区八戒| 国产成人啪午夜精品网站男同| 日韩一区二区电影在线| 亚洲精品日韩综合观看成人91| 国产毛片精品视频| 欧美大片日本大片免费观看| 一区二区三区四区激情 | 欧美刺激脚交jootjob| 伊人色综合久久天天人手人婷| 国产福利一区二区三区视频| 日韩欧美另类在线| 丝袜国产日韩另类美女| 91成人在线精品| 亚洲婷婷在线视频| 不卡欧美aaaaa| 精品91自产拍在线观看一区| 天天操天天干天天综合网| 91久久精品一区二区三| 1024国产精品| av高清不卡在线| 国产精品乱码久久久久久| 精品一二线国产| 欧美一卡2卡三卡4卡5免费| 亚洲国产成人精品视频| 欧美性生活久久| 亚洲一区二区三区四区在线观看| av电影在线观看完整版一区二区| 国产亚洲精品超碰| 国产成人av自拍| 国产片一区二区| 成人精品小蝌蚪| 国产精品私房写真福利视频| 国产大陆精品国产| 国产免费久久精品| 成人av在线网站| 亚洲少妇30p| 色婷婷综合在线| 亚洲永久精品大片| 欧美日韩一区精品| 日韩激情av在线| 日韩一级大片在线观看| 精品一区免费av| 久久精品亚洲一区二区三区浴池| 国产一区二区在线影院| 国产欧美日本一区二区三区| 粉嫩av一区二区三区在线播放| 国产精品美女久久久久久久久久久| 高清不卡在线观看av| 中文字幕一区二区三区乱码在线| 成人激情av网| 一二三区精品福利视频| 欧美日韩高清在线播放| 日韩高清不卡在线| 亚洲精品在线观| 日韩美女视频在线| 国产成人丝袜美腿| 亚洲人成7777| 欧美一区二区三区日韩| 国产一区啦啦啦在线观看| 国产精品高潮呻吟久久| 欧美在线免费观看亚洲| 美女视频黄 久久| 久久久久综合网| 91国偷自产一区二区使用方法| 日韩中文字幕亚洲一区二区va在线 | 亚洲精品国产a| 9191精品国产综合久久久久久 | 欧美人妖巨大在线| 久久精品av麻豆的观看方式| 中文久久乱码一区二区| 在线视频欧美精品| 激情成人午夜视频| 亚洲少妇中出一区| 日韩一级欧美一级| aaa亚洲精品| 日韩av电影一区| 亚洲国产精品99久久久久久久久| 欧美色成人综合| 国产精品中文字幕日韩精品| 亚洲猫色日本管| 欧美变态tickle挠乳网站| 91免费在线看| 激情文学综合丁香| 亚洲激情中文1区| www激情久久| 欧美日韩日日摸| 不卡视频一二三四| 久久av中文字幕片| 亚洲影院久久精品| 国产亚洲精久久久久久| 欧美日韩国产一级二级| 懂色av一区二区三区蜜臀| 五月激情综合网| 国产精品电影院| 26uuu国产电影一区二区| 欧美三级电影在线看| 国产精品91一区二区| 日韩成人av影视| 亚洲精选视频免费看| 精品国产乱码久久久久久浪潮| 色综合亚洲欧洲| 国产在线播放一区三区四| 亚洲国产日产av| 综合久久综合久久| 久久综合久久久久88| 7777精品伊人久久久大香线蕉的 | 午夜精品视频一区| 亚洲欧洲国产专区| 国产日产欧产精品推荐色| 777午夜精品视频在线播放| 色猫猫国产区一区二在线视频| 国产精品888| 久久国产精品色婷婷| 五月天久久比比资源色| 亚洲精品免费在线| 中文字幕在线不卡一区| 国产校园另类小说区| 精品国产人成亚洲区| 51精品国自产在线| 欧美日韩精品欧美日韩精品一综合| 一本大道久久a久久精品综合| 粉嫩嫩av羞羞动漫久久久 | 成人高清在线视频| 国产在线播放一区| 久久se精品一区二区| 日韩1区2区3区| 天堂在线亚洲视频| 亚洲不卡一区二区三区| 亚洲综合在线视频| 一区二区在线观看视频| 国产精品区一区二区三区| 国产香蕉久久精品综合网| 久久精品人人做人人综合|