Skip to content

zhengry/ZZSudoku

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 

Repository files navigation

ZZSudoku

Swift版数独游戏

最近,在手机上下载了个数独小游戏,觉得很有意思,正好在练习使用Swift,就试着用Swift自己写了一个。

数独盘面生成方法

  1. 将1~9内的随机数按满足数独的条件(行、列、小九宫格均无重复数字)填充盘面数组(二维数组)
  2. 随机交换任意小九宫格内的两行或两列(demo中有三次行交换、三次列交换)

挖坑方案

  1. 按照不同level,确定每个level的挖坑数量
  2. 循环生成两个0~8(index)内的随机数,将盘面数组中索引符合这两个随机数的位置替换为0

盘面UI方案

  1. 用UICollectionView生成81格,并将二维数组按顺序填充进去,值为0的位置默认隐藏数字
  2. 用户填充数字后,检查行、列、小九宫格是否有重复,有重复则报错(红色)

demo中的其他细节:

  1. 针对不同level,做了倒计时挑战
  2. 在一个AlertController调起时,如果一个AlertAction的动作是调起另一个AlertController,会持续报警告并且不能正常调起,demo中模拟系统的AlertController的功能实现了一个自定义的AlertView,点击Alert需要手动调用dismiss。
  3. “重来”功能相当于复盘

About

Swift版数独游戏

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages