资源简介
C++实现双人对战五子棋项目,内含项目源码,演示demo,开发具体流程文档。
代码片段和文件信息
#include
#include //图形库头文件
#include //播放音乐头文件
#include
#pragma comment(lib “winmm.lib“) //播放音乐库文件
int flag = 0; //表示下棋次数
int board[20][20] = { 0 }; //0表示棋盘没有棋子状态
void initGame();
int judge(int a int b);
void playChess();
int main() {
initGame();
playChess();
getchar();
return 0;
}
//1.画出棋盘
void initGame() { //初始化游戏
//1.1 绘图环境 库函数
//默认调用系统的窗口
initgraph(600 500); //创建自定义窗口
//setbkcolor(BLUE); //设置窗口背景颜色
//cleardevice(); //刷新
//1.2 贴图
loadimage(NULL “./src/bg.jpg“);
//1.3 背景音乐 mci 多媒体控制结口
mciSendString(“open ./src/skyCity.mp3“ 0 0 0);
//mciSendString(“play ./src/skyCity.mp3“ 0 0 0);
//setlinecolor(BLACK);
//1.4 绘制棋盘
//画线 20 20 25 25 500 500
for (int i = 0; i <= 500; i += 25) {
line(0 i 500 i);
line(i 0 i 500);
}
line(501 0 501 500);
//1.5 print out
outtextxy(510 100 “玩家1:黑棋“);
outtextxy(510 200 “玩家2:白棋“);
}
//2.下棋
void playChess() {
//鼠标
MOUSEMSG m; //保存鼠标消息
int x=0 y=0; //坐标
int a=0 b=0; //行列
//持续下棋
while (1) {
m = GetMouseMsg(); //获取一个鼠标消息
//获取离鼠标最近的点的坐标信息
for (int i = 1; i < 20; i++) {
for (int j = 1; j < 20; j++) {
if (abs(m.x - i * 25) < 12 && abs(m.y - j * 25) < 12) {
x = i * 25;
y = j * 25;
a = i;
b = j;
}
}
}
if (m.uMsg == WM_LBUTTONDOWN) {
//棋子重复下在一个位置上
if (board[a][b] != 0) {
MessageBox(NULL “这里已经有棋子了,请重新选择。“ “提示“ MB_OK); //弹出一个提示框
continue; //进入下一循环
}
//判断黑白子
if (flag % 2 == 0) { // 偶数次 黑子
setfillcolor(BLACK);
solidcircle(x y 10);
board[a][b] = 1;
}
else { //奇数次
setfillcolor(WHITE);
solidcircle(x y 10);
board[a][b] = 2;
}
flag++;
}
if (judge(a b)) {
if (flag % 2 == 0) {
MessageBox(NULL “玩家2胜利。“ “游戏结束“ MB_OK); //弹出一个提示框
exit(0);
}
else {
MessageBox(NULL “玩家1胜利。“ “游戏结束“ MB_OK); //弹出一个提示框
exit(0);
}
}
}
}
//3.判断输赢
int judge(int a int b) {
int i j;
int t = 2 - flag % 2; //1 判断黑子是否赢 2 判断白子是否赢
//横向
for (i = a - 4 j = b; i <= a; i++) {
if (i > 0 && i < 16 && t == board[i][j] && t == board[i + 1][j] && t == board[i + 2][j] && t == board[i + 3][j] && t == board[i + 4][j]) {
return 1;
}
}
//纵向
for (i = a j = b - 4; j <= b; j++) {
if (j > 0 && j < 16 && t == board[i][j] && t == board[i][j + 1] && t == board[i][j + 2] && t == board[i][j + 3] && t == board[i][j + 4]) {
return 1;
}
}
//右下
for (i = a - 4 j = b - 4; i <= a j <= b; i++ j++) {
if (i > 0 && i < 16 && j > 0 && j < 16 && t == board[i][j] && t == board[i + 1][j + 1] && t == board[i + 2][j + 2] && t == board[i + 3][j + 3] && t == board[i + 4][j + 4]) {
return 1;
}
}
//左下
for (i = a - 4 j = b + 4; i <= a j >= b; i++ j--) {
if (i > 0 && i < 16 && j > 0 && j < 16 && t == board[i][j] && t == board[i + 1][j - 1] && t == board[i + 2][j - 2] &&
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-07-26 12:55 C++实现五子棋项目(附源码)\
文件 1038797 2019-07-26 12:51 C++实现五子棋项目(附源码)\demo.gif
目录 0 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\
目录 0 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\.vs\
目录 0 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\.vs\gobang\
目录 0 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\.vs\gobang\v16\
文件 28160 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\.vs\gobang\v16\.suo
文件 36438016 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\.vs\gobang\v16\Browse.VC.db
目录 0 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\.vs\gobang\v16\ipch\
目录 0 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\.vs\gobang\v16\ipch\AutoPCH\
目录 0 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\.vs\gobang\v16\ipch\AutoPCH\9f00a37c38189f49\
文件 2359296 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\.vs\gobang\v16\ipch\AutoPCH\9f00a37c38189f49\MAIN.ipch
目录 0 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\Debug\
文件 114176 2019-07-26 12:29 C++实现五子棋项目(附源码)\gobang\Debug\gobang.exe
文件 866016 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\Debug\gobang.ilk
文件 88 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\Debug\gobang.log
文件 913408 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\Debug\gobang.pdb
目录 0 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\Debug\gobang.tlog\
文件 616 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\Debug\gobang.tlog\CL.command.1.tlog
文件 26834 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\Debug\gobang.tlog\CL.read.1.tlog
文件 404 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\Debug\gobang.tlog\CL.write.1.tlog
文件 202 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\Debug\gobang.tlog\gobang.lastbuildstate
文件 1134 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\Debug\gobang.tlog\li
文件 3602 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\Debug\gobang.tlog\li
文件 424 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\Debug\gobang.tlog\li
文件 25199 2019-07-26 12:29 C++实现五子棋项目(附源码)\gobang\Debug\main.obj
文件 257024 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\Debug\vc142.idb
文件 151552 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\Debug\vc142.pdb
文件 1432 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\gobang.sln
文件 6118 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\gobang.vcxproj
文件 949 2019-07-26 12:51 C++实现五子棋项目(附源码)\gobang\gobang.vcxproj.filters
............此处省略6个文件信息
- 上一篇:loadConfig.zip
- 下一篇:个人物品管理程序
相关资源
- loadConfig.zip
- VC++视频采集资料
- Effective C++中文版第三版带书签
- 基于SVM与人工神经网络的车牌识别O
- 数据结构、算法与应用——C++语言描
- C++17 标准 ISOIEC 14882 2017 官方pdf文档
- 人脸识别C++源码
- Visual C++ MFC 源代码大全
- C++程序设计第二版钱能.rar
- Visual C++ Redistributable for Visual Studio 2
- 车牌识别系统C++实现
- 数据结构与算法分析C++描述第三版及
- 顾卫刚手把手教你学DSP基于2812
- WAV转换成MP3音频文件 C++ vc MFC
- Learning C++ by Creating Games with UE4 无水印
- 《C++游戏开发》笔记十二 战争迷雾的
- 《MFC游戏开发》笔记九 碰撞检测 怪物
- C++ GUI Qt 4编程第二版 经典教材适合
- 图书管理系统c++与SQL数据库+课程设计
- Scientific and Engineering C++
- VC++游戏编程基础有书签
- 钱能C++程序设计教程第二版pdf高清带
- C++并发编程实战 美威廉姆斯著 高清扫
- 源代码——MFC的WebBrowser控件 C++与ja
- C++编程风格(PDF 英汉对照 The Element
- 精通Visual C++数字图像处理典型算法及
- vc++企业员工考勤系统源码
- MFC c++ 实现简易电话簿
- 钱能C++程序设计教程第二版&高清版
- VC++图像处理程序设计
评论
共有 条评论