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

2020-02-28 其他工作总结 下载本文

五子棋游戏开发总结(C语言版)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“五子棋游戏设计总结”。

五子棋游戏开发总结

一.五子棋游戏概述

二.游戏功能

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

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

具体玩法:采用任意键开始游戏,此处采用键盘值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 che[20][20];

//棋盘坐标位置

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

void start();void draw_cheboard();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/pre any key to continue ”);} //画棋盘

void draw_cheboard(){

int i,j;

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

cleardevice();//清屏

for(i=40;i

for(j=40;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

putpixel(x+a,y,color);

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

putpixel(x,y-b,color);

for(c=1;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(chex-1

break;

else

{

for(i=chex-1,j=chey;i>=1;i--)

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

{

draw_circle(chex,chey,GREEN);

draw_pixel(chex,chey,8);

break;

}

if(i

break;

chex=i;

if(flag==1)

draw_circle(chex,chey,BLUE);

else

draw_circle(chex,chey,RED);

}

break;

case RIGHT://棋子右移

if((chex+1)>19)

break;

else

{

for(i=chex+1,j=chey;i

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

{

draw_circle(chex,chey,GREEN);

draw_pixel(chex,chey,8);

break;

}

if(i>19)

break;

chex=i;

if(flag==1)

draw_circle(chex,chey,BLUE);

else

draw_circle(chex,chey,RED);

}

break;

case DOWN://棋子下移

if((chey+1)>19)

break;

else

{

for(i=chex,j=chey+1;j

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

{

draw_circle(chex,chey++,GREEN);

draw_pixel(chex,chey,8);

break;

}

if(j>19)

break;

chex=i;

if(flag==1)

draw_circle(chex,chey,BLUE);

else

draw_circle(chex,chey,RED);

}

break;

case UP://棋子上移

if((chey-1)

break;

else

{

for(i=chex,j=chey-1;j>=1;j--)

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

{

draw_circle(chex,chey,GREEN);

draw_pixel(chex,chey,8);

break;

}

if(j

break;

chey=j;

if(flag==1)

draw_circle(chex,chey,BLUE);

else

draw_circle(chex,chey,RED);

}

break;

case ESC://退出游戏

break;

case SPACE://落子

if(chex>=1&&chey=1)

{

if(che[chex][chey]==0)

{

che[chex][chey]=flag;

if(result(chex,chey)==1)

{

cleardevice();

if(flag==1)

{

cleardevice();

outtextxy(80,200,“CONGRATIONATIONS,BLUE WIN!”);

getch();

closegraph();

exit(0);

}

if(flag==2)

{

cleardevice();

outtextxy(80,200,“CONGRATIONATIONS,RED WIN!”);

getch();

closegraph();

exit(0);

}

}

if(flag==1)

flag=2;

else

flag=1;

break;

}

}

else

break;

} } //判断胜负

int result(int x,int y){

int j,k,n1,n2;

while(1)

{

n1=0;

n2=0;

for(j=x,k=y;j>=1&&k>=1;j--,k--)

{

if(che[j][k]==flag)

n1++;

else

break;

}

for(j=x,k=y;j

{

if(che[j][k]==flag)

n2++;

else

break;

}

if(n1+n2-1>=5)

return(1);

n1=0;

n2=0;

for(j=x,k=y;j=1;j++,k--)

{

if(che[j][k]==flag)

n1++;

else

break;

}

for(j=x,k=y;j>=1&&k

{

if(che[j][k]==flag)

n2++;

else

break;

}

if(n1+n2-1>=5)

return(1);

n1=0;

n2=0;

for(j=x,k=y;j>=1;j--)

{

if(che[j][k]==flag)

n1++;

else

break;

}

for(j=x,k=y;j

{

if(che[j][k]==flag)

n2++;

else

break;

}

if(n1+n2-1>=5)

return(1);

n1=0;

n2=0;

for(j=x,k=y;k>=1;k--)

{

if(che[j][k]==flag)

n1++;

else

break;

}

for(j=x,k=y;k

{

if(che[j][k]==flag)

n1++;

else

break;

}

if(n1+n2-1>=5)

return(1);

return(0);

} }

//主函数

int main(void){

initgraph(620,480);

start();

key=getch();

if(key==ESC)

exit(0);

else

{

cleardevice();

flag=1;

draw_cheboard();

do

{

chex=10;

chey=10;

if(flag==1)

draw_circle(chex,chey,BLUE);

else

draw_circle(chex,chey,RED);

do

{

while(getch()==0);

key=getch();

play();

}

while(key!=ESC&&key!=SPACE);

}

while(key!=ESC);

closegraph();

}

return 0;}

作者:flybird 时间:2012/08/18

《五子棋游戏开发总结(C语言版).docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
五子棋游戏开发总结(C语言版)
点击下载文档
相关专题 五子棋游戏设计总结 语言版 游戏开发 五子 五子棋游戏设计总结 语言版 游戏开发 五子
[其他工作总结]相关推荐
    [其他工作总结]热门文章
      下载全文