这是一个可以进行五子棋游戏的小程序,采用C语言进行编写。上下左右控制光标位置,空格下子,黑白棋交替进行。 编译环境:Dev-c++(采取纯C语言写法),没有调用第三方库,简单易学二、运行截图下棋时候界面,光标显示位置,空格下子
获胜后提示界面:
为了实现游戏的运行,我们需要完成Gamerun这个函数。下面是函数的框架,也是这个游戏运行的具体流程初始化变量循环对局:{打印棋盘;以下循环{接收键盘输入输入为esc,退出游戏输入为方向键,改变光标位置输入为空格,走子并判定胜负,分出胜负则跳出循环}处理胜利事件}具体为代码就是void Gamerun(){ int input;//定义键盘输入字符 Initialize();//初始化变量 while(1) { Datatomap();//将对局信息输入缓冲变量 Showcursor();//将光标加入缓冲变量 Printmap(); //打印棋盘 input=getch();//等待键盘输入指令 if(input==27)exit(0); //若输入是Esc,退出游戏 else if(input==32)//若输入空格,进行走子 { if(Put())//走子成功 { if(Check())break;//检查是否分出胜负 else now=3-now;//切换走子方 } else;//走子失败 } else if(input==0xE0)//如果按下的是方向键,会填充两次输入,第一次为0xE0表示按下的是控制键 { Movecursor(getch());//利用第二次输入移动光标 } else; } Showtest();//将胜利文字输入缓冲区 Printmap();//打印棋盘 getch();//输入任意键开始下一局游戏}getch()可以立即对输入的字符做出反应,而不像getchar()还要输入回车。 我们来详细看这几个步骤。1. 初始化变量:随着项目的推进,我们自然会知道哪些数据需要初始化。先在这里放一个空函数。void Initialize(){ }2. 打印棋盘:我们可以通过打印制表符的方式来拼接整个棋盘。自然,我们需要一个缓冲变量来存储整个棋盘的信息,这个变量又是对局信息经过转换得到的。int data[LENGTH][LENGTH];//储存对局信息,0空白,1黑子,2白子char map[LENGTH2+1][LENGTH2+1][5];//需要打印的棋盘,包括边框,子的位置,以及文字(建议缓冲变量不要像我这么写。这个三维字符数组的本意是想构建一个二维的字符串组,但在后续的操作中,就会发现这引起了可能的麻烦。有条件的同学可以试试,改变这个变量的形式,看看这个程序应该怎么写。) 设定将对局信息转化为缓冲变量的函数void Datatomap()//由对局信息生成棋盘信息{ int i,j; for(i=0;i
【瓜分奖池】c语言实现五子棋小游戏 第5张插图