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("
")
}
}
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()