幻立方解法之暴力求解

//疯狂查找

/*

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("DeltaSiderow:\(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

DeltaSiderow:0 col:0 deep:0

DeltaSiderow:0 col:1 deep:0

DeltaSiderow:0 col:2 deep:0

DeltaSiderow:1 col:0 deep:0

DeltaSiderow:1 col:1 deep:0

DeltaSiderow:1 col:2 deep:0

DeltaSiderow:2 col:0 deep:0

DeltaSiderow:2 col:1 deep:0

DeltaSiderow:2 col:2 deep:0

DeltaSiderow:0 col:0 deep:1

DeltaSiderow:0 col:1 deep:1

DeltaSiderow:0 col:2 deep:1

DeltaSiderow:1 col:0 deep:1

DeltaSiderow:1 col:1 deep:1

DeltaSiderow:1 col:2 deep:1

DeltaSiderow:2 col:0 deep:1

DeltaSiderow:2 col:1 deep:1

DeltaSiderow:2 col:2 deep:1

DeltaSiderow:0 col:0 deep:2

DeltaSiderow:0 col:1 deep:2

DeltaSiderow:0 col:2 deep:2

DeltaSiderow:1 col:0 deep:2

DeltaSiderow:1 col:1 deep:2

DeltaSiderow:1 col:2 deep:2

DeltaSiderow:2 col:0 deep:2

DeltaSiderow:2 col:1 deep:2

DeltaSiderow: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

DeltaSiderow:0 col:0 deep:0

DeltaSiderow:0 col:1 deep:0

DeltaSiderow:0 col:2 deep:0

DeltaSiderow:0 col:3 deep:0

DeltaSiderow:1 col:0 deep:0

*/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值