九宫格 Swift提供经典的数组和字典两种集合类型来存储集合数据,使用数组实现一个九宫格程序,

来源:互联网 发布:积分购物源码 编辑:程序博客网 时间:2024/06/06 15:03

//步骤一:定义一个二维数组


//首先定义一个常量n,用于规定创建一个nn列的九宫格,并且n只能是奇数,偶数无法创建九宫格,这里可以使用断言的方式进行判断,代码如下所示:

//nn列的九宫格

let n = 3

assert(n % 2 != 0, "n必须是奇数")

//其次定义一个整型的二维数组,并且将所有的元素初始为0,代码如下所示:

//定义一个二维数组用于存放1~n*n个数字

var array = [[Int]](count:n , repeatedValue: [Int](count:n , repeatedValue:0))

//步骤二:将1~n*n个数字放入九宫格


//首先定义两个整型变量rowcol分别记录行号和列号也就是二维数组的下标,从第零行的中间一个空格开始放入数字,因此rowcol分别初始化为0n/2,代码如下所示:

//0n/2列开始放第一个数字

var row = 0

var col = n/2

//然后使用for循环依次将1~n*n个数字放入二维数组array,注意区分行越界、列越界、行列同时越界以及冲突这四种情况的处理,代码如下所示:

//依次将1~n*n个数字放入二维数组array

for var; i = 1; i <= n*n; i++ {

    array[row][col] = i

    row--

    col++

    if row < 0 && col >= n {//行列都越界

        row += 2

        col--

    }else if col >= n {//列越界

        col = 0

    }else if row <0 {//列越界

        row = n-1

    }else if array[row][col] !=0 {//冲突

        row += 2

        col--

}



0 0
原创粉丝点击