五子棋游戏开发总结(C语言版)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

五子棋游戏开发总结

一.五子棋游戏概述

二.游戏功能

对弈游戏,自动判断游戏胜负。

采用人机对话模式,界面设计美观友好。

具体玩法:采用任意键开始游戏,此处采用键盘值W、A、S、D控制棋子移动方向,空格键(SPACE)落子,ESC退出游戏。

三.系统开发平台

1)Visual C++ 单纯的Visual C++ 不行,需下载一个EasyX小插件对其进行配置好才可(网上有下的,也有配置方法)。

2)程序代码必须以.cpp结尾。

3)最佳分辨率:最佳效果1024*768。

四.游戏开发详细过程:

五.游戏的完整详细代码:

#include

#include //图形库

#include

#include

#include

//宏定义

#define ESC 27 //退出

#define SPACE 32

#define LEFT 65 //向左键

#define RIGHT 68

#define UP 87

#define DOWN 83

int key;

int chess[20][20]; //棋盘坐标位置

int flag=1;//标识要画的棋子的颜色flag=1,棋子为蓝色;其他为红色。int chessx,chessy;

void start();

void draw_chessboard();

void draw_circle(int x,int y,int color);

void play();

int result(int x,int y);

//开始游戏

void start()

{

outtextxy(200,240,"GAME START!");

outtextxy(200,380,"ESC-exit/press any key to continue ");

}

//画棋盘

void draw_chessboard()

{

int i,j;

setbkcolor(GREEN);//设置背景颜色为绿色

cleardevice();//清屏

for(i=40;i<=440;i+=20)

for(j=40;j<=440;j++)

{

putpixel(i,j,4);

putpixel(j,i,4);

}

setcolor(8);

setlinestyle(1,0,1);

rectangle(32,32,448,448);

outtextxy(10,10,"ESC-exit/SPACE-put a piece"); }

//画棋子

void draw_circle(int x,int y,int color)

{

setcolor(color);

setlinestyle(1,0,10);

x=(x+2)*20;

y=(y+2)*20;

circle(x,y,4);

}

//清除棋子

void draw_pixel(int x,int y,int color)

{

x=(x+2)*20;

y=(y+2)*20;

{

int a,b,c,d;

for(a=1;a<=8;a++)

putpixel(x+a,y,color);

for(b=8;b>=1;b--)

putpixel(x,y-b,color);

for(c=1;c<=8;c++)

putpixel(x,y+c,color);

for(d=8;d>=1;d--)

putpixel(x-d,y,color);

putpixel(x+9,y,color);

putpixel(x,y-9,color);

putpixel(x,y+9,color);

putpixel(x-9,y,color);

}

}

//游戏过程

void play()

{

int i,j;

switch(key)

{

case LEFT://棋子左移

if(chessx-1<0)

break;

{

for(i=chessx-1,j=chessy;i>=1;i--)

if(chess[i][j]==0)

{

draw_circle(chessx,chessy,GREEN);

draw_pixel(chessx,chessy,8);

break;

}

if(i<1)

break;

chessx=i;

if(flag==1)

draw_circle(chessx,chessy,BLUE);

else

draw_circle(chessx,chessy,RED);

}

break;

case RIGHT://棋子右移

if((chessx+1)>19)

break;

else

{

for(i=chessx+1,j=chessy;i<=19;i++)

if(chess[i][j]==0)

{

draw_circle(chessx,chessy,GREEN);

draw_pixel(chessx,chessy,8);

break;

}

if(i>19)

break;

chessx=i;

if(flag==1)

draw_circle(chessx,chessy,BLUE);

else

draw_circle(chessx,chessy,RED);

}

break;

case DOWN://棋子下移

if((chessy+1)>19)

break;

相关文档
最新文档