//疯狂查找
/*
对step阶的立方,按照各种起点,各种跳步方法逐一检验
*/
func CrazyFindPerfectCube(step:Int){
func enumInitPoint(#step:Int,#deltaPoint:(row:Int, col:Int, deep:Int),#deltaLine:(row:Int, col:Int, deep:Int),#deltaSide:(row:Int, col:Int, deep:Int)){
for var deep = 0; deep < step; ++deep{
for var row = 0; row < step; ++row{
for var col = 0; col < step; ++col{
// print("\n起点:row:\(row) col:\(col) deep:\(deep)")
let cube = createCube(step: step, point0: (row: row, col: col, deep: deep), deltaPoint: deltaPoint, deltaLine: deltaLine, deltaSide: deltaSide)
if let cube_ = cube {
let line1 = isMagicCube(cube_,false)
if let line1_ = line1{
if (line1_.end.row != line1_.begin.row) && (line1_.end.col != line1_.begin.col) && (line1_.end.deep != line1_.begin.deep){
println(" 这是个不太完美的幻立方。。。。。")
println("起点:row:\(row) col:\(col) deep:\(deep)")
println("deltaPoint:\(deltaPoint)")
println("deltaLine:\(deltaLine)")
println("deltaSide:\(deltaSide)")
printMagicCube(cube_)
}else{
// print(" 不是幻立方line=\(line1_)")
}
}else{
println(" 这是完美的幻立方! ! ! ! ! ! ! ! !")
println("起点:row:\(row) col:\(col) deep:\(deep)")
println("deltaPoint:\(deltaPoint)")
println("deltaLine:\(deltaLine)")
println("deltaSide:\(deltaSide)")
printMagicCube(cube_)
}
}
}
}
}
}
func enumDeltaPoint(#step:Int,#deltaLine:(row:Int, col:Int, deep:Int),#deltaSide:(row:Int, col:Int, deep:Int)){
for var deep = 0; deep < step; ++deep{
for var row = 0; row < step; ++row{
for var col = 0; col < step; ++col{
enumInitPoint(step:step,deltaPoint: (row: row, col: col, deep: deep), deltaLine: deltaLine, deltaSide: deltaSide)
}
}
}
}
func enumDeltaLine(#step:Int,#deltaSide:(row:Int, col:Int, deep:Int)){
for var deep = 0; deep < step; ++deep{
for var row = 0; row < step; ++row{
for var col = 0; col < step; ++col{
enumDeltaPoint(step:step,deltaLine: (row: row, col: col, deep: deep), deltaSide: deltaSide)
}
}
}
}
func enumDeltaSide(#step:Int){
for var deep = 0; deep < step; ++deep{
for var row = 0; row < step; ++row{
for var col = 0; col < step; ++col{
println("DeltaSide:row:\(row) col:\(col) deep:\(deep)")
enumDeltaLine(step:step,deltaSide: (row: row, col: col, deep: deep))
}
}
}
}
enumDeltaSide(step: step)
}
func CrazyFindPerfectCube3(){
println("开始时间:\(NSDate())")
CrazyFindPerfectCube(3)
println("结束时间:\(NSDate())")
}
//CrazyFindPerfectCube3()
/*
开始时间:2015-02-04 07:29:00 +0000
DeltaSide:row:0 col:0 deep:0
DeltaSide:row:0 col:1 deep:0
DeltaSide:row:0 col:2 deep:0
DeltaSide:row:1 col:0 deep:0
DeltaSide:row:1 col:1 deep:0
DeltaSide:row:1 col:2 deep:0
DeltaSide:row:2 col:0 deep:0
DeltaSide:row:2 col:1 deep:0
DeltaSide:row:2 col:2 deep:0
DeltaSide:row:0 col:0 deep:1
DeltaSide:row:0 col:1 deep:1
DeltaSide:row:0 col:2 deep:1
DeltaSide:row:1 col:0 deep:1
DeltaSide:row:1 col:1 deep:1
DeltaSide:row:1 col:2 deep:1
DeltaSide:row:2 col:0 deep:1
DeltaSide:row:2 col:1 deep:1
DeltaSide:row:2 col:2 deep:1
DeltaSide:row:0 col:0 deep:2
DeltaSide:row:0 col:1 deep:2
DeltaSide:row:0 col:2 deep:2
DeltaSide:row:1 col:0 deep:2
DeltaSide:row:1 col:1 deep:2
DeltaSide:row:1 col:2 deep:2
DeltaSide:row:2 col:0 deep:2
DeltaSide:row:2 col:1 deep:2
DeltaSide:row:2 col:2 deep:2
结束时间:2015-02-04 07:37:15 +0000
*/
/*
好恐怖居然没有3阶幻立方
连那种不太完美的都没有
不会是我错了吧
不过哪里错了呢
总感觉我还是没错的
总之,整个人都不好了
*/
func CrazyFindPerfectCube4(){
println("开始时间:\(NSDate())")
CrazyFindPerfectCube(4)
println("结束时间:\(NSDate())")
}
//CrazyFindPerfectCube4()
//执行了24分钟才执行了这么多,实在是不想再等,可惜的是连不太完美的都还没找着
/*
开始时间:2015-02-04 07:39:14 +0000
DeltaSide:row:0 col:0 deep:0
DeltaSide:row:0 col:1 deep:0
DeltaSide:row:0 col:2 deep:0
DeltaSide:row:0 col:3 deep:0
DeltaSide:row:1 col:0 deep:0
*/