1.先生成一个种子列表 代码:swift
var zhongziArray:Array<Int> = [];
while zhongziArray.count<9{
let number = arc4random()%9+1
if zhongziArray.contains(Int(number)){
continue
}else{
zhongziArray.append(Int(number))
}
}
2.行变换之后,替换左右两边
4.左右两边分别列变换替换四个角的3*3空格
代码:swift
//num 次数
func hangbianhuan(array:Array<Int>,_ num:Int)->Array<Int>{
if(num==1){
return Array(array[3...5])+Array(array[6...8])+Array(array[0...2])
}else{
return Array(array[6...8])+Array(array[0...2])+Array(array[3...5])
}
}
hangbianhuan(array: [1,2,3,4,5,6,7,8,9],1)
hangbianhuan(array: [1,2,3,4,5,6,7,8,9],2)
//num 次数
func liebianhuan(array:Array<Int>,_ num:Int)->Array<Int>{
var cArray = array
if(num==1){
for i in 0...8{
switch i%3 {
case 0:
cArray[i]=array[i+1]
case 1:
cArray[i]=array[i+1]
case 2:
cArray[i]=array[i-2]
default: break
}
}
return cArray
}else{
for i in 0...8{
switch i%3 {
case 0:
cArray[i]=array[i+2]
case 1:
cArray[i]=array[i-1]
case 2:
cArray[i]=array[i-1]
default: break
}
}
return cArray
}
}
liebianhuan(array: [1,2,3,4,5,6,7,8,9],1)
liebianhuan(array: [1,2,3,4,5,6,7,8,9],2)
func addNineToSudu(_ array:Array<Int>,_ sudu:Array<Array<Int>>,_ index:Int)->Array<Array<Int>>{
var nsudu = sudu
let rl = 0 + index/3*3
let rr = 2 + index/3*3
let cl = 0 + index%3*3
let cr = 2 + index%3*3
print(rl)
print(rr)
print(cl)
print(cl)
for column in cl...cr{
for row in rl...rr{
let c=column-cl
let r=row-rl
nsudu[row][column]=array[c+r*3]
}
}
return nsudu
}
addNineToSudu([1,2,3,4,5,6,7,8,9],[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]],4)
func printLine(_ array:Array<Any>){
for i in array{
print(i)
print("\n")
}
}
func shengchengshudu(){
var zhongziArray:Array<Int> = [];
while zhongziArray.count<9{
let number = arc4random()%9+1
if zhongziArray.contains(Int(number)){
continue
}else{
zhongziArray.append(Int(number))
}
}
var shuduArray = [[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]];
//添加中心
shuduArray = addNineToSudu(zhongziArray,shuduArray,4)
printLine(shuduArray)
//添加左边
let lhang = hangbianhuan(array: zhongziArray,1)
shuduArray = addNineToSudu(hangbianhuan(array: zhongziArray,1),shuduArray,3)
//添加右边边
let rhang = hangbianhuan(array: zhongziArray,2)
shuduArray = addNineToSudu(hangbianhuan(array: zhongziArray,2),shuduArray,5)
shuduArray = addNineToSudu(liebianhuan(array: zhongziArray,1),shuduArray,1)
shuduArray = addNineToSudu(liebianhuan(array: zhongziArray,2),shuduArray,7)
shuduArray = addNineToSudu(liebianhuan(array: lhang,1),shuduArray,0)
shuduArray = addNineToSudu(liebianhuan(array: lhang,2),shuduArray,6)
shuduArray = addNineToSudu(liebianhuan(array: rhang,1),shuduArray,2)
shuduArray = addNineToSudu(liebianhuan(array: rhang,2),shuduArray,8)
}
shengchengshudu()