一、前言

我姥姥是一名退休数学老师,一直很喜欢玩数独游戏。我以前答应过她要给她写一个数独游戏。本来计划是写一个Android应用的,但恰好我学了好长时间iOS开发一直没做什么“大项目”练手,并且小姨给姥姥买了一个iPad玩。于是计划利用寒假过年的前五天,给姥姥用Swift写一个iPad上的数独游戏。现在(2月24日)游戏已经基本完成,于是记录下编写的思路、设计过程以及遇到的问题等。

二、需求分析

我的初步想法是做一个SingleView的应用足矣,但后来仔细分析加上我姥姥的要求,才发现没有那么简单。分类总结用到的知识点如下:

1、第一个界面是选关的界面

1)需要UITableView以及相应数据代理、协议的实现

2)读取plist文件并转化成模型

3)在单元格点击后进入数独游戏,涉及到把数据经segue在UIViewController间传递

4)记录某一关卡是否通过需要用到NSUserDefaults的存档记录功能

 

2、其次是游戏的界面

包括9*9的数独格子还有填数的按钮,以及填标记(就是说我这个地方不确定填哪个数,我都先标记上供参考)按钮

标记功能效果如图所示

1)数独格子的建模

(1)绘制数独格子要考虑到标记功能

所以要在每个格子内预先塞入9个标记数字,仅数独格子算下来就有9*9*9=729个格子且存在大量嵌套(这导致我在操作Storyboard时每一个修改都要等待至少20s)

(2)数独格子内部的Tag标记

为了方便编程时获取相应格子的View,需要把每个格子打上Tag

(3)数独格子的初始化

模型初始化包括背景色、填数操作 和 边框粗细的调整

2)“选数视图”与“选标记视图”以及“其他按钮”的建模

3)填数的游戏游戏规则的实现

(1)判断一个格子能填什么数

(2)判断游戏是否成功结束

 

3、看答案界面

1)接收上个界面传来的答案

2)显示答案

 

4、其他

1)生成数独关卡

(1)生成有解的数独,如果有多解至多显示两个解就好(挖空数从挖40个空开始,最后挖到了60多个空)

(2)输出成符合规范的plist文件

2)界面的美化

3)有待补充……

 

接下来的文章我会按照顺序逐步总结具体的开发过程与经验

最新文章

  1. 毛笔笔锋算法IOS版
  2. GridView不能添加头布局,并且scrollView与GridView冲突导致一些页面无法融合
  3. Tomcat启动时项目重复加载,导致资源初始化两次的问题
  4. Sphinx 的介绍和原理探索——不存储原始数据,原始数据来源于SQL,而生成索引放在内存或者磁盘中
  5. Deep Learning(深度学习)学习笔记整理
  6. ubuntu 14.04安装
  7. 抓取Js动态生成数据且以滚动页面方式分页的网页
  8. python(15)提取字符串中的数字
  9. python拆分excel脚本
  10. hunnu---11547 你的组合数学学得如何?
  11. c++矩阵运算
  12. DirectX Sample-ConfigSystem中采用配置文件进行游戏设置
  13. JavaWeb总结(一)—Servlet
  14. RadioButton与监听
  15. UVA1349:Optimal Bus Route Design
  16. lodop打印收费小票
  17. 浅析GDAL库C#版本支持中文路径问题(续)
  18. vi / vim 命令集合
  19. python新模块:secrets模块(为账户密码)
  20. SpringAop与AspectJ

热门文章

  1. java开发环境的安装
  2. jQuery遍历 filter()方法
  3. Linux开启MySQL远程连接
  4. 剑指offer:二维数组中的查找
  5. 团队冲刺Alpha(九)
  6. SystemTap 用法
  7. js获取页面元素位置函数(跨浏览器)
  8. REST Web 服务(一)----REST 介绍
  9. 论文笔记《Deep Hand: How to Train a CNN on 1 Million Hand Images When Your Data Is Continuous and Weakly Labelled》
  10. poj~3694Network