1. 程式人生 > 程式設計 >解讀C++11 原生字串

解讀C++11 原生字串

package chapter05

object test03 {

  def main(args:Array[String]):Unit={

    //1.建立迷宮,使用二維陣列map(8)(7)

    val map = Array.ofDim[Int](8,7)

    //2.給地圖加牆
    //0:沒有探測過
    //1:表示牆
    //2. 表示經過探測是通路
    //3. 表示經過探測是死路

    //最上邊和下邊加牆
    for(i <- 0 until 7){
      map(0)(i)=1
      map(7)(i)=1
    }

    
//最左邊和最右邊加牆 for(i <- 0 until 6){ map(i)(0)=1 map(i)(6)=1 } map(3)(1)=1 map(3)(2)=1 map(2)(2)=1 println("迷宮的情況是:") for(row <- map){ for (item <- row){ printf("%d ",item) } println() } setWay(map,1,1) println("迷宮的情況是:")
for(row <- map){ for (item <- row){ printf("%d ",item) } println() } //編一個方法,探測該點是否可以走 // map:地圖,i探測位置的橫座標,j 探測位置的縱座標 def setWay(map:Array[Array[Int]],i:Int,j:Int): Boolean ={ if(map(6)(5)==2){//路走通 return true }else{//map的可能取值為0,1,3 if
(map(i)(j)==0){//說明該點還沒有探測過 //使用策略探測該點(下=》右=》上=》左) //假定這個點是走的通map(i)(j)=2 map(i)(j)=2 if(setWay(map,i+1,j)){//向下 return true }else if(setWay(map,i,j+1)){//向右 return true }else if(setWay(map,i-1,j)){//向上 return true }else if(setWay(map,i,j-1)){//向左 return true }else{ //說明四個方向都走不通,假設錯誤 map(i)(j)=3 return false } }else{//1,2,3 return false } } } } }