C++课程设计五子棋游戏

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-5-
(2)单击按钮,弹出 MFC AppWinzard_Step1 对话框。选中单选按钮,如图所示。
(3)单击完成按钮,则建立一个单文档应用框架。
3.2 游戏项目开发
3.2.1 棋盘设计
1.在已创建的工程 Fivechess_44 中添加画棋盘的函数。首先在“Fivechess_44.h” 头文
//连续画 20 条竖线
{
pDC->MoveTo(i*50,0); //画笔移动到(i*50,0)点
pDC->LineTo(i*50,1000); // 画笔从(i*50,0)点到(i*50,1000)点
}
for(i=0;i<20;i++)
//连续画 20 条横线
-6-
{ pDC->MoveTo(0,i*50); pDC->LineTo(1000,i*50);
-3-
1.2 课程设计目的
在程序设计中,通过设计、编制、调试一个五子棋的程序,加深对语法及语义分析 原理的理解,并实现对命令语句的灵活应用。在程序设计中,可以用两种方法解决问题: 一是传统的结构化程序设计方法,二是更先进的面向对象程序设计方法。
由于多个函数均需要访问某些数据,这些数据常被设计为全局变量。 而在面向对象程序设计中关键是如何将问题域中的实体(即日常所见的概念)抽取 出来,作为 C++程序中的类,而属性与行为作为类的两类要素通常是必不可少的,甚至 还应考虑类必须满足的约束。
}
}
}
CView::OnLButtonDown(nFlags, point);
}
(2).右键消息
void CFivechess_44View::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
pDC->Ellipse(tempPoint.x-20,tempPoint.y-20,tempPoint.x+20,tempPoint.y+20); }
2 设计方案简述
如下是描述整五子棋游戏的流程, 开发一个五子棋游戏需要从两方面入手。一 是游戏规则,二是技术。其实,任何软件开发都是这两大类。根据项目的特点,将不相 关的功能分块份阶段进行。大致流程如下:1.画棋盘;2 画棋子;3 增加下棋制约条件; 4.每下一步,判断输赢;5.调试运行。
2.1 可行性分析
关键词 程序设计;Fivechess;MFC;
1 绪论
娱乐是人类不可或缺的生活内容,目前市场上的游戏种类繁多读者将所学的语言应 用到实际,用学习的 c++语言编程开发一个简易的计算机单机游戏,即五子棋游戏。
1.1 课题背景
中国民族原创网络游戏为中国网络游戏产业所做出了巨大贡献,民族原创网络游 戏已经成为产业发展的主导力量。同样在中国自主研发的民族原创网络游戏已经真正成 为中国游戏市场的主导力量。 网络游戏是通过信息网络传播和实现的互动娱乐形式,是一种网络与文化相结合的产 业。近年来,网络文化市场发展很快,随着互联网的迅速普及、宽带的接入社区和家庭, 我国网络游戏市场发展迅速并进入了一个高速增长期,并已经创造了较大的产值,带动 了相关产业的发展,对促进我国网络经济和娱乐业的发展、丰富互联网时代人民群众的 文化娱乐生活起到了积极作用。
} } 2.在应用程序框架的 OnDraw()函数中调用该画棋盘函数,将 pDC 对象作为实参传递给 Checkerboard()函数,代码如下:
void CFivechess_44View::OnDraw(CDC* pDC) {
CFivechess_44Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here
{for(int j = 0 ; j < 1000 ; j+=50)
{CRect rect(i,j,i+50,j+50);
if(rect.PtInRect(point))
{ CPoint tempPoint ;
tempPoint = rect.CenterPoint();
pDC->Ellipse(tempPoint.x-20,tempPoint.y-20,tempPoint.x+20,tempPoint.y+20);
3 详细设计
3.1 窗体设计
利用 MFC AppWinzard 生成五子棋游戏应用程序框架具体步骤如下: (1)执行 VC 程序,选择 File|New 命令,弹出 New 对话框.单击 Projects 标签,转到
Projects 选项卡,选择 MFC AppWizard(exe)选项,然后在 Project name 文本框中输入 Fivechess_44 。Lacation 文本框是指项目的本地路径。
CBrush* brush = new CBrush(RGB(255,255,255)) ;//定义白色画刷
CDC* pDC = this->GetDC();
//获取当前的图形设备指针
pDC->SelectObject(brush);
//选中该白色画刷
for(int i = 0 ; i < 1000 ; i+=50)
CBrush* brush = new CBrush(RGB(0,0,0)) ;//定义黑色画刷
CDC* pDC = this->GetDC();
//获取当前的图形设备指针
pDC->SelectObject(brush);
//选中该黑色画刷
for(int i = 0 ; i < 1000 ; i+=50)
3.2.4 游戏的调试与运行......................................................................................................21
4 设计结果及分析……………………………………………………...........……………23 4.1 程序的结果……………………………………….………………………………......23 4.2 结果分析…………………………………………..……………………………....…..24 5 总 结 ……..…………………………………………………..……………....…………24
-8-
{ for(int j = 0 ; j < 1000 ; j+=50) { CRect rect(i,j,i+50,j+50);//每格都信定义一矩形 if(rect.PtInRect(pLeabharlann Baiduint)) //如果鼠标点在该矩形内 { CPoint tempPoint ; tempPoint = rect.CenterPoint();//获取矩形中心,用于画棋子
江西理工大学应用科学学院 《Visual C++》课程设计论文
题 目:_ 五子棋游戏设计 __ 系 别:____ 经济管理系______ 班 级:_____信管 091 班______ 小组成员: 陈亮(09)_ 彭巍(19)
杨海军(14)_ 翁勇勇(05)
-1-
目录
摘 要 ……………………………………………………………………………………..3 1 绪论 ……………………………………………………………………………………3 1.1 课题背景 …………………………………………………………………………3 1.2 课程设计目的…………………………………………..…………………………... 4 2 设计方案简述 …………………………………………………………........................4 2.1 可行性分析………………………………………………..…………………………4 2.2 需求分析…………………………………………………..…………………………4 3 详细设计……………………………………………………………......………………5 3.1 窗体设计………………………………………………..………………………….....5 3.2 游戏项目开发………………………………………..……………………………….6 3.2.1 棋盘设置…………………………………………………………………………..…6 3.2.2 放置棋子功能的开发………………………………………………………………..7 3.3.3 游戏获胜决断的开发…………………………………………………….……....….13
-7-
添加鼠标左键和右键的消息处理函数:
(1).左键消息
void CFivechess_44View::OnLButtonDown(UINT nFlags, CPoint point)
{// TODO: Add your message handler code here and/or call default
-2-
摘要
网络游戏的出现代表了一种全新娱乐方式的诞生。目前网络游戏正以其独特的魅力吸引 着众多的玩家。随着游戏产业的蓬勃发展,将需要越来越多的人加入到游戏开发中来。 本毕业设计所完成的五子棋游戏(网络版)是在 Windows XP 下使用 Microsoft Visual C++6.0 开发的 C/S 系统,可以实现网络间的双人对战,并且可以提供多媒体播放功 能。系统的多媒体播放功能可以播放 MP3、WMA 等主流格式的音乐。 本论文从基本网络套节字开始入手,介绍了一些本系统相关的理论知识,随后详细介绍 了五子棋游戏(网络版)的开发过程。包括服务器端、客户端的 socket 编程,五子棋 服务器和客户端通信的实现,五子棋判断算法的实现,主界面视图,多媒体播放以及定 时器等附加功能的实现。最后对系统进行测试并对所做工作进行总结。
件中定义一个用于显示棋盘的自定义公有函数:void Checkerboard(CDC*pDC);
然后在“Fivechess_44View.cpp”源文件中实现该函数。代码如下:
void CFivechess_44View::Checkerboard(CDC*pDC)
{
for(int i=0;i<20;i++)
2.2 需求分析
近年来,随着网络的发展,游戏成为许多人关注的焦点。与传统的影音产业一样,
-4-
游戏产业也是娱乐行业的一个重要组成部分,基于数字化的网络游戏更让人们找到了前 所未有的感受,并已经成为全球互联产业的热点。五子棋,亦称“连五子”、“串珠”、“五 目”、“五格”等等,日文称之为“连珠”,英文则称之为“Gobang”或“Renju”或“FIR(Five In a Row)”,是起源于中国古代的传统黑白棋种之一,是一种体现民族特色的休闲游 戏,同时能较好的锻炼人的思维。具有广阔的开发前景。
游戏设计已经成为现在社会的一种热门行业。五子棋是一种受大众广泛喜爱的游 戏,其规则简单,变化多端,非常富有趣味性和消遣性。这里设计和实现了一个简单的 五子棋单机游戏。主要应用了 Visual C++编程来完成这个游戏的设计的。本文主要介 绍了本游戏开发环境 Microsoft Visual C++ 6.0,使用当前优秀的开发工具 VC++编 程。包含了五子棋程序的棋盘初始化、游戏规则、胜负判断。思路简单明了,程序也较 为简单。可以灵活运用一学过的 c++ 知识来编写程序。
Checkerboard(pDC); //调用自定义的画键盘函数 } 3.编译运行得到如下效果:一个空棋盘
3.2.2 放置棋子功能的开发 按照规划,棋子使用鼠标的左键和右键(分别用这两键来表示下棋的双方)来进行单 机下棋,即是当用户单击左键时,下黑色棋子,,用户单击右键时,下白色棋子。因此, 必须为鼠标添加鼠标左键和鼠标右键单击的鼠标消息处理函数,步骤如下: 1. 右 击 CFivechessView 类 , 调 用 添 加 消 息 处 理 函 数 的 对 话 框 , 选 择 Add windows MessageHandler 2.添加消息处理函数 WM_LBUTTONDOWN 和 WM_RBUTTONDOWN 这两个消息处理 函数。然后点击 Edit Exisiting 退出对话框。并添加消息处理函数代码。如下图所示:
相关文档
最新文档