- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计主要内容
题目
2048
需求分析
游戏操作需求:
1、可使用鼠标或↑、↓、→、←或W、X、A、D键进行操作;
2、Play按钮 重新开始游戏;
3、Undo按钮 取消本次操作,回到上一步。
2048游戏算法
1、游戏开始时随机的产生2个数值为2/4的方格,其中1个方格置于4个角中的一个位置,
另一个方格随机的置于其它位置,其余方格值为0。
2、每次移动鼠标或按方向键后,逐行计算移动后的方格值。每行移动的算法是:先将所有值为0的数移至行首。能后从行尾开始逐一和前一个数比较,如果相等则合并这2个格子。
3、每合并一次格子,将其值累计到游戏总分中。
4、一次移动结束后,在所有值为0的方格中随机的分配一个2/4的值。
5、所有方格值不为0且上下、左右相邻的方格都不相等,则游戏结束。
6、2出现的概率为90%,4出现的概率为为10%。
设计环境
运行环境:windows xp,windows 2003 windows 7
开发环境:Microsoft Visual Studio 2010
编写语言:c#
详细设计说明
系统程序流程图
系统概要说明
本程序是在VS2010环境下编写的Windows应用程序,函数中利用了画图函数绘制基本方块模型,并通过键盘或鼠标执行相应的操作。在产生的方块中,调用随机方法,随机产生1~100中的任何一个数字,数字小于90,方块显示数字为2,否则显示为4,每一,通过这种方式,实现了游戏中其中不同模块的数字的随机产生。
功能说明
(1) 实现可以显示2或者4两张数字的方块
(2) 实现各个方块的上下左右移动
(3) 实现方块间数字判断与相加
系统各类的知识点说明
主类
Main()方法
主函数调用主要功能的三个方法,实现程序运行。
2. Cube类(画单元格)
Cube类的功能定义了单个方块的构架。此类中,定义了不同的数字显示所显示的不同的单元格方块,使方块相加变化明显。
此类中定义了属性currValue//当前得分
以及方法Cube_Paint()方块的绘制,此方法针对可能出现的12中数字显示,运用Graphics类, 画出不同的显示的方块
3.forms类(方块的控制)
此类主要实现对方块的控制,实现每种不同操作的实现
此类创建了四个属性
private Cube[] cubes = new Cube[16];//创建个个cubes类的数组,实现游戏方块的创建
enum MoveDict { Up, Down, Left, Right };//定义枚举类型,键盘控制方向,上下左右
private int x1, y1;//鼠标位置
private int score = 0;//房钱成绩
private int[] prev =new int[17]; /./上一步方格值和积分
Form1()方法: 构造方法,实现方块的实例化创建
start()方法:游戏的初始化,实现最开始两个方块的摆放。
SavePrevVaule()方法:保存每上一步的方块值以及成绩,实现撤销一次的操作
LoadPrevValue()方法:加载上一步值,当进行撤销操作时,调用该方法。
OneMove()方法:实现移动一次的操作。此方法调用MoveLine()进行累加,实现成绩的相加
MoveLine()方法:移动一行的方法
getNextCube()方法:取下一个方块
CanMove()方法:通过方块是否能够移动,判断游戏是由结束
pictureBox1_MouseDown()方法:获取鼠标移动的位置
getDirection()方法:通过鼠标坐标判断方块的移动方向
Form1_KeyUp()方法:接受键盘信息,判断方块移动方向
btnPlay_Click()方法:“开始”按钮的单击事件,调用start()方法,开始游戏
btnUndo_Click()方法:“撤销”按钮的单机事件,调用LoadPrevValue()方法,进行撤销操作
主要算法设计
1.方块值的随机数产生
System.Random r = new Random();
int n1 = r.Next(1, 100);
cubes[0].Value = (n1 90 ? 2 : 4);
通过Random类产生100以内的随机数,数字大于90,方块值为4;小于90,方块值为2
2.游戏初始化两个随机方格位置的摆放
System.Random r = new Random();
int c1 = r.Next(1, 4);
int c2 = c1;
do
您可能关注的文档
最近下载
- Fronius伏能士 TPS320 400 500 600iv TPS400 LSCADV MIG.MAG电源操作手册.pdf VIP
- 4 2实现中华民族伟大复兴的中国梦-议题式教学课件 23张-【新教材】2021-2022学年统编版(2019)高中政治必修一.pptx VIP
- 预制钢筋混凝土装配式检查井施工方案.pdf VIP
- 14J936 变形缝建筑构造.docx VIP
- 有限公司股权激励计划协议限制性股权.pdf VIP
- 金融业三个办法新规及实操要点解读课件.pptx VIP
- 人教版小学三年级下册劳动教育完整教案.pdf VIP
- 公文语言的特点.doc VIP
- 辅助生殖拮抗剂方案标准化应用专家共识.pptx VIP
- 国家建筑标准设计图集22G101-3 混凝土结构施工图平面整体表示方法制图规则和构造详图(独立基础、条形基础、筏形基础、桩基础).pdf VIP
文档评论(0)