C#拼图游戏编写代码(拼图游戏编写代码(2))
主要为大家详细介绍了C#拼图游戏的编写代码下篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
前言:在C#拼图游戏编写代码程序设计 之 C#实现《拼图游戏》(上),上传了各模块代码,而在本文中将详细剖析原理,使读者更容易理解并学习,
程序有诸多问题,欢迎指出,共同学习成长!
正文:正文:
拼图是一个非常经典的游戏,基本每个人都知道他的玩法,他的开始,运行,结束。那么,当我们想要做拼图的时候如何入手呢?答案是:从现实出
发,去描述需求(尽量描述为文档),当我们拥有了全面的需求,就能够提供可靠的策略,从而在代码中实现,最终成为作品!
(一)需求:(一)需求: (这个需求书写较为潦草,为广大小白定制,按照最最最普通人的思维来,按照参与游戏的流程来)
1.图片:我们玩拼图 最起码有个图
2.切割:拼图不是一个图,我们需要把一个整图它切割成N*N的小图
3.打乱:把这N*N的小图打乱顺序,但是要保证通过游戏规则行走能还原回来
4.判断:判拼图成功
5.交互:我们使用哪一种交互方式,这里我选择鼠标点击
6.展示原图片完整的缩略图
以上为基本功能,以下为扩展功能
7.记录步数:记录完成需要多少步
8.更换图片:一个图片玩久了我们是不是可以换一换啊 哈哈
9.选择难度:太简单?不要!3*3搞定了有5*5,5*5搞定了有9*9,舍友挑战最高难度 3000多步,心疼我的鼠标TAT
(二)分析:(二)分析:
有了需求,我们就可以分析如何去实现它(把现实需求映射在计算机中),其中包括:
1.开发平台:这里选择C#语言
1).存储:其中包括我们要存什么?我们用什么结构存?我们反观需求,会发现,有一些需要存储的资源
图片:使用 Image 对象存储
单元(原图片切割后的子图像集合):自定义结构体 struct Node ,其中包括Image对象用来存储单元小图片,和用整形存储的编号(切割
以后,每个小单元都弄个编号,利于检验游戏是否完成)。
各单元(原图片切割后的子图像集合):使用二维数组(像拼图,五子棋,消消乐,连连看,俄罗斯方块等平面点阵游戏都可以用他来存
储,为什么?因为长得像嘛!)来存储
难度:使用自定义的枚举类型(简单and普通and困难)存储
步数:整形变量 int Num存储
有了存储,我们就可以去思考模块的划分(正确的逻辑划分已于扩展,也可以使通信变得更加清晰)并搭建,并实现各模块涉及到的具体算法