软件开发的家园,编程爱好者的天地.

现在是:北京时间 2016/4/14 上午11:50:51 星期四

设为首页  |  加入收藏  |  网站地图

当前位置: 第八基地首页 > 游戏开发 >
五子棋的原代码
发布于:第八基地 来源:互联网 作者:天堂路上 时间:2016-04-24 点击:321

适合象我这样的初学者!

高手可以不看。

bc下编译通过,可实现人际对战。

原代码如下

#include<stdio.h>
#include<bios.h>
#include<ctype.h>
#include<conio.h>
#include<dos.h>
/*定义画棋盘所需的制表符*/
#defineCROSSRU 0xbf /*右上角点*/
#defineCROSSLU 0xda /*左上角点*/
#defineCROSSLD 0xc0 /*左下角点*/
#defineCROSSRD 0xd9 /*右下角点*/
#defineCROSSL 0xc3 /*左边*/
#defineCROSSR 0xb4 /*右边*/
#defineCROSSU 0xc2 /*上边*/
#defineCROSSD 0xc1 /*下边*/
#defineCROSS 0xc5 /*十字交叉点*/
/*定义棋盘左上角点在屏幕上的位置*/
#defineMAPXOFT 5
#defineMAPYOFT 2
/*定义1号玩家的操作键键码*/
#definePLAY1UP 0x1157/*上移--'W'*/
#definePLAY1DOWN 0x1f53/*下移--'S'*/
#definePLAY1LEFT 0x1e41/*左移--'A'*/
#definePLAY1RIGHT 0x2044/*右移--'D'*/
#definePLAY1DO 0x3920/*落子--空格键*/
/*定义2号玩家的操作键键码*/
#definePLAY2UP 0x4800/*上移--方向键up*/
#definePLAY2DOWN 0x5000/*下移--方向键down*/
#definePLAY2LEFT 0x4b00/*左移--方向键left*/
#definePLAY2RIGHT 0x4d00/*右移--方向键right*/
#definePLAY2DO 0x1c0d/*落子--回车键Enter*/
/*若想在游戏中途退出,可按Esc键*/
#defineESCAPE 0x011b
/*定义棋盘上交叉点的状态,即该点有无棋子*/
/*若有棋子,还应能指出是哪个玩家的棋子 */
#defineCHESSNULL 0 //没有棋子
#defineCHESS1 'O'//一号玩家的棋子
#defineCHESS2 'X'//二号玩家的棋子
/*定义按键类别*/
#defineKEYEXIT 0/*退出键*/
#defineKEYFALLCHESS 1/*落子键*/
#defineKEYMOVECURSOR 2/*光标移动键*/
#defineKEYINVALID 3/*无效键*/
/*定义符号常量:真,假---真为1,假为0*/
#defineTRUE 1
#defineFALSE 0
/**********************************************************/
/*定义数据结构 */
/*棋盘交叉点坐标的数据结构*/
structpoint
{
intx,y;
};
/**********************************************************/
/*自定义函数原型说明 */
voidInit(void);
int GetKey(void);
intCheckKey(intpress);
int ChangeOrder(void);
int ChessGo(intOrder,structpointCursor);
voidDoError(void);
voidDoOK(void);
voidDoWin(intOrder);
voidMoveCursor(intOrder,intpress);
voidDrawCross(intx,inty);
voidDrawMap(void);
int JudgeWin(intOrder,structpointCursor);
int JudgeWinLine(intOrder,structpointCursor,intdirection);
voidShowOrderMsg(intOrder);
voidEndGame(void);
/**********************************************************/
/**********************************************************/
/*定义全局变量 */
int gPlayOrder; /*指示当前行棋方 */
structpointgCursor; /*光标在棋盘上的位置 */
chargChessBoard[19][19]; /*用于记录棋盘上各点的状态*/
/**********************************************************/
/**********************************************************/
/*主函数*/
voidmain()
{
intpress;
intbOutWhile=FALSE; /*退出循环标志*/
Init(); /*初始化图象,数据*/

上一篇:没有了
对我有帮助
(0)
0%
对我没帮助
(0)
0%
返回顶部
在线反馈
在线反馈