c语言图形化界面编程之《五指棋》
用c语言写《五子棋》
目前还不太完善大神别喷,萌新们都来改改吧!
主要思路
捕获鼠标的消息来获取它的坐标,从而来下棋子,(目前还不能判定它的输赢)
逻辑差不多就是,一个棋子 的坐标的上下左右同时出现五个相同的IMAGE 变量然后取得胜利!
效果图如下
#include<graphics.h>
#include<conio.h>
#include <mmsystem.h>//导入声音头文件
#pragma comment(lib,"Winmm.lib")
void main(){
mciSendString("play D:\\1.mp3",NULL,0,NULL);//插入背景音乐
int n=1; //初始棋子数
MOUSEMSG mouse; //创建一个鼠标变量
IMAGE Checkerboard; //创建棋盘图片变量
IMAGE White_; //创建白色棋子
IMAGE Black_; //黑色棋子
initgraph(400,800);//创建游戏窗口的大小
loadimage(&Checkerboard, "D:\\Checkerboard.jpg",400,800,true);//加载棋盘图片到图像变量地址中
loadimage(&White_,"D:\\White.jpg",20,24,true);
loadimage(&Black_,"D:\\Black.jpg",20,24,true);
putimage(0,0,&Checkerboard);//绘制出棋盘图片
while(1)
{
mouse=GetMouseMsg();//获取鼠标消息
if(mouse.uMsg==WM_LBUTTONDOWN)//如果按下的是左键
{
if(n%2==1)
{
putimage(mouse.x-24,mouse.y-12,&White_); //放下白色棋子
n++;
FlushMouseMsgBuffer();//清楚鼠标缓存消息
}
else
{
putimage(mouse.x-10,mouse.y-12,&Black_); //放下黑色棋子
n++;
FlushMouseMsgBuffer();
}
}
}
getch();
}
资源图如下 大家自行下载
棋盘
黑子
白子