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

📄 renju.h

📁 嵌入式linux下面五子棋游戏代码
💻 H
字号:
/*
 * Copyright (c) 2003,2004 Jing Cheng Tong Wireless Technology (ShenZhen) Ltd.
 * All rights reserved.
 * 
 * Filename: Renju.H
 * Description: <FIXME>
 * 
 * Author: Liu Zhi <Zhi.LIU@JCTMobile.COM>
 * Department: R&D Center, JCTCD
 * Creation: <UNKNOWN>
 *
 * History:  2004/05/26,YZB  add copyright and file header.
 *           2004/05/26,XXX  
 */

/* $Id: Renju.h,v 1.6.2.3 2004/12/07 01:27:48 luojc Exp $ */

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
#include "sysGUI.h"
#include "sysROS33.h"

#define		LCDWIDTH	128
#define		LCDHEIGHT	160  //与这个无关

#define   MAX_LEVEL              4    // 游戏最高级别         Don't modify
#define   INIT_LEVEL             1    // 游戏初始级别         1

#define   CHESS_LEN_X  			 12    // 棋盘 X 方向格子数+1. Can modify freely.
#define   CHESS_LEN_Y			 12    // 棋盘 Y 方向格子数+1. Can modify freely.

#define   MAN					 1    // 人落下的棋子或人先走
#define   MACHINE				 2    // 机落下的棋子或人先走
#define   INIT_WIN               0	  // 初始值

#define   ALL_NO_WIN             3    // 和棋

#define   THRESHOLD              10   // 防守门槛 Don't modify
#define   DEEP 					 12   // 预测深度 Can modify, but must more than 5.
#define   MANY                   8    // 危棋限数 Can modify, but must more than 2.

// 棋盘对象
typedef struct
{
	char map[CHESS_LEN_Y][CHESS_LEN_X]; 			// 棋盘矩阵 0 : null(无棋子), 1:MAN, 2:MACHINE
	unsigned short int attack_value[CHESS_LEN_Y][CHESS_LEN_X];	// 进攻方棋子矩阵
	unsigned short int defence_value[CHESS_LEN_Y][CHESS_LEN_X];	// 防守方棋子矩阵
	char who_go;                        			// 当前该谁走?MAN, MACHINE
	char who_win;									// 谁赢
	char old_who_go;								// 上次谁走?
	char begin_flag;  								// 谁先走0 : null, MAN, MACHINE
	char cmd_buttom[6];								// 
	char x,y;										// 上步机器落子的坐标
	char wx,wy;										// 胜者最后落子的坐标
	char dir;										// 用于保存5子连成线的方向。0:横线,1:竖线,2:左对角,3:右对角
	char msgflag;
	char step;										// 人已走步数
	char mmin,sec,tm_flag;							// 分、秒及时间发生改变标志
	unsigned char particular;
	unsigned char level;							// 级别
	unsigned char *imgkey;
	unsigned char *msgbox;
	unsigned short int put_chess_counter;           // 当前机器落下棋子数,用来判和棋
	short int oldsec;								// 上次定时器读取的时间
}CHESS_OBJECT;

typedef struct _CHESS_POINT{
	short int x;						// 棋子x坐标
	short int y;						// 棋子y坐标
} CHESS_POINT;

#define KEY_NUMERIC_0		0
#define KEY_NUMERIC_1		12
#define KEY_NUMERIC_2		2
#define KEY_NUMERIC_3		3
#define KEY_NUMERIC_4		4
#define KEY_NUMERIC_5		5
#define KEY_NUMERIC_6		6
#define KEY_NUMERIC_7		7
#define KEY_NUMERIC_8		8
#define KEY_NUMERIC_9		9

#define KEY_UP				103
#define KEY_DOWN        	108
#define KEY_LEFT        	105
#define KEY_RIGHT       	106

#define KEY_CANCEL		   	14
#define KEY_ENTER		   	10


#define KEY_STAR        	27
#define KEY_WELL        	29

short int Renju_InitChess(void);
short int Renju_CanGo(int manX, int manY);
short int Renju_ManGo( char manX, char manY);
short int Renju_JudgeWin(int currX, int currY);
void Renju_MachineGo(short int *mX, short int *mY);

T_WORD fnGAME_Renju();

⌨️ 快捷键说明

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