c语言五子棋游戏报告,C语言五子棋游戏
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
/*
初始化游戏界面:
1.绘图环境
2.背景图片
3.背景音乐
4.绘制格子
5.绘制边界线
6.显示黑棋为玩家1,白棋为玩家2
下棋:
1.while循环让游戏能不断的玩下去
2.定义一个保存鼠标消息的变量,获取鼠标消息
3.鼠标左键按下的时候下棋
4.探讨怎样实现玩家轮流下棋
5.探讨怎样让玩家在十字交叉的位置下棋
6.解决同位置可以反复下棋的问题
*/
#include
#include
#include
#include
#define N20
int chess[N][N] = { 0 };
//用来记录轮到玩家1还是玩家2
int flag = 0;
void initGame();
void playChess();
int judge(int, int);
HWND hWnd;
int main()
{
//初始化游戏
initGame();
playChess();
return 0;
}
void initGame()
{
initgraph(600, 500);
loadimage(NULL, L"1.jpg");
//绘制棋盘
for (int i = 1; i < 20; i++)
{
setlinestyle(PS_SOLID, 1);
setlinecolor(BLACK);
line(i * 25, 0, i * 25, 500);
line(0, i * 25, 500, i * 25);
}
//绘制棋盘边界线
setlinestyle(PS_SOLID, 2);
line(500, 0, 500, 500);
line(0, 500, 500, 500);
outtextxy(505, 20, L"黑棋:玩家1");
outtextxy(505, 50, L"白棋:玩家2");
outtextxy(505, 70, L"加群");
outtextxy(505, 90, L"626871916");
outtextxy(505, 110, L"邀请码,华灯");
}
void playChess()
{
int a = 0, b = 0;
int x, y;
MOUSEMSG m;
hWnd = GetHWnd();
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)
{
a = i;
b = j;
x = i * 25;
y = j * 25;
}
}
}
if (m.uMsg == WM_LBUTTONDOWN)
{
if (chess[a][b] != 0)
{
MessageBox(hWnd, L"这里已经有棋子了,请重新选择下棋的位置", L"提示", MB_OK);
continue;
}
else
{
if (flag % 2 == 0)
{
outtextxy(505, 200, L"请玩家2落子");
setfillcolor(BLACK);
solidcircle(x, y, 10);
chess[a][b] = 1;
}
else
{
outtextxy(505, 200, L"请玩家1落子");
setfillcolor(WHITE);
solidcircle(x, y, 10);
chess[a][b] = 2;
}
}
flag++;
}
if (judge(a, b))
{
if (1 == flag % 2)
{
MessageBox(hWnd, L"玩家1胜利", L"游戏结束", MB_OK);
return;//修复BUG
}
else
{
MessageBox(hWnd, L"玩家2胜利", L"游戏结束", MB_OK);
return;//修复BUG
}
}
}
}
int judge(int x, int y)
{
int i, j;
int t = 2 - flag % 2;//flag%2=0时,t=2
for (i = x - 4, j = y; i <= x; i++)
{
if (i >= 1 && i <= N - 4 && t == chess[i][j] && t == chess[i + 1][j] && t == chess[i + 2][j] && t == chess[i + 3][j] && t == chess[i + 4][j])
return 1;
}
for (i = x, j = y - 4; j <= y; j++)
{
if (j >= 1 && j <= N - 4 && t == chess[i][j] && t == chess[i][j + 1] && t == chess[i][j + 2] && t == chess[i][j + 3] && t == chess[i][j + 4])
return 1;
}
for (i = x - 4, j = y - 4; i <= x, j <= y; i++, j++)
{
if (i >= 1 && i <= N - 4 && j >= 1 && j <= N - 4 && t == chess[i][j] && t == chess[i + 1][j + 1] && t == chess[i + 2][j + 2] && t == chess[i + 3][j + 3] && t == chess[i + 4][j + 4])
return 1;
}
for (i = x - 4, j = y + 4; i <= x, j >= 1; i++, j--)
{
if (i >= 1 && i <= N - 4 && j >= 1 && j <= N - 4 && t == chess[i][j] && t == chess[i + 1][j - 1] && t == chess[i + 2][j - 2] && t == chess[i + 3][j - 3] && t == chess[i + 4][j - 4])
return 1;
}
return 0;
}
guan
c语言五子棋游戏报告,C语言五子棋游戏相关推荐
- c语言课程设计猜数字游戏报告,C语言课程设计猜数字游戏报告
C语言课程设计猜数字游戏报告 C 语言课程设计----猜数字1摘 要该 软 件 在 Windows 系 统 上 为 玩 家 提 供 猜 数 字 游 戏的 基 本 功 能 , 游 戏 用 户 可 以 选 ...
- C语言实践作业报告,c语言社会实践报告
资料简介 c 语言社会实践报告 c 语言社会实践报告 随着个人素质的提升,越来越多的事务都会使用到报告,报告 中提到的所有信息应该是准确无误的. 相信许多人会觉得报告很难写 吧,下面是为大家的 c 语 ...
- c语言课程设计猜数字游戏报告,C语言课程设计-猜数字游戏报告.doc
C语言课程设计-猜数字游戏报告 摘要 该软件在Windows系统上为玩家提供猜数字游戏的基本功能,游戏用户可以选择开始游.排行榜查看.帮助等主要功能.当用户选择开始游戏时,系统会提示用户排行榜上猜数字 ...
- c语言四则运算实验报告,c语言四则运算实验报告.doc
c语言四则运算实验报告.doc 课程编号 1300050027 得分教师签名批改日期深 圳 大 学 实 验 报 告课程名称 C语言实验 实验名称 100以内的四则运算游戏 学 院 信息工程学院 指导教 ...
- 杂志订阅管理系统c语言实训报告,C语言程序设计报告—杂志订阅管理软件、、.doc...
C语言程序设计报告-杂志订阅管理软件.. 中国地质大学(武汉)C语言课程设计报告 学 院: 专 业: 题 目: 杂志订阅管理系统 班 级: 姓 名: 学 号: 指导教师: 2011年1月9日 程序在最 ...
- c语言初步实验报告,c语言实验报告(大一c语言实验报告答案)
哪位帮我一下啊,我这有个作业,要写C语言程序设计实验报告,包括五个部. 最低0.27元/天开通百度文库会员,可在文库查看完整内容> 原发布者:aming7728081 计算机科学与技术系C语言实 ...
- c语言程序设计实验8,c语言程序设计实验报告8_c语言实验报告格式及实验内容_c语言设计报告...
实验名称 计算出1000以内10个最大素数之和 实验目的 1.熟练掌握if.if-else.if-else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和s ...
- c语言考试系统设计报告,c语言课程设计报告单项选择题标准化考试系统.doc
c语言课程设计报告单项选择题标准化考试系统.doc <C语言程序设计>课程设计题目:单项选择题标准化考试系统专业:计算机科学与技术班级:计科1001目录<C语言程序设计>课程设 ...
- 华北科技c语言综合实验报告,C语言综合性实验报告1.doc
C语言综合性实验报告1.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档 ...
- c语言专业实习报告,C语言个人实习报告(范文1)
<C语言个人实习报告.doc>由会员分享,可免费在线阅读全文,更多与<C语言个人实习报告>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索. 1.好的学 ...
最新文章
- 常见问题:内存,循环引用,runloop的简单理解
- 数据流动控制学习笔记
- HDU 2704 Bulletin Board
- ApplicationContext和BeanFactory
- 英文求职信计算机网络,计算机网络专业毕业生英文求职信.doc
- Android Studio 3.4增可视化资源管理工具 可管理和预览项目资源
- linux 命令案例学习——文件搜索
- python webui测试ie浏览器环境配置_python+selenium做ui自动化测试用法必会
- SP2-0734: 未知的命令开头 imp scott/... - 忽略了剩余的行。
- pandas尾部添加一条_Numpy与Pandas
- 云图说 | GPU共享型AI容器,让AI开发更普及
- java线程的小问题与回答
- JAVA可以赋值分数吗_Java数据类型知多少?
- 判断是否是64位操作系统
- C++制作鼠标连点器
- Chrome OS:“比 Linux 更好的 Linux”,这样你就可以忘记 Windows
- netkeeper客户端_中国电信创翼客户端下载
- 资深程序员教你,用python入门的知识抓取抖音短视频,太厉害了
- 分支-07. 比较大小(10)
- Codeforces 985 E - Pencils and Boxes