Little Strange Software

スマホアプリの開発を行う LittleStrangeSoftware のブログです。

「Try Kotlin」で超巨大迷路のサンプルを作ってみました!

 どうも!LSSです!!

 

 昨日の記事、「超巨大迷宮の夢!」に、コメント・ブクマコメントくださった皆様、ありがとうございました!^^

 

 今日は、もう少し具体的に説明できるかな?と思い、とりあえず「Try Kotlin」でサンプルを作ってみました。

 

f:id:little_strange:20200228234808p:plain

 

 

コードはこんな感じ

 

fun maze(i:Int,j:Int):Int{
    return (i*i*1.41421356+i*j*5.4321+j*j*0.3+i+j+(i/10).toInt()).toInt()%256
}

fun main(args: Array<String>) {
    val h="0000000011111111000000001111111100000000111111110000000011111111" +
    "0000000011111111000000001111111100000000112311110000000011111111" +
    "0000000011111111000000001111111100000000111101110000000011111111" +
    "0000000011111111000000001111111100000000111111110000000011111111"
    var k=listOf("□","■","↓","↑")
    for (y in 0..10){
        for (x in 0..20){
//         print(maze(x,y).toString()+" ")
            print(k[h.substring(maze(x,y),maze(x,y)+1).toInt()])
        }
        print("\n")
    }
}

 

 

結果画面に表示された迷路は見づらいかな?と思い…

 

↓コピペした上で、CSSをいじって見やすくしてみました。

 

□□□■■■■■□■■□■■□■■■■□■
□■□□□□■□■■□□■□□□□■□■■
□□□□■□■■■□■□■■■□■□□□■
□■■□□■□□■□□□□□■■□□■■□
■□■■■■□■■□■■□□■■■□■■□
■■■■□■■□■■□■■↓□□■□□□□
□□■□■■■□■□■■□□■□□□■■■
□■■□■■□■■□■■□□■■□□■■■
■■■■□■■□■■□□■■■□■■□□■
□□■□■■■□■□□□□■□■■■■□■
■□■■■■□□■■■□■□□□■■□□□

 

 

 元々考えていたのは、こんな感じですね。

 

 コメントでいただいたアイディアもあわせて、これから考えてみたいです^^

 

 

コード中、コメントアウトしている部分

 

//         print(maze(x,y).toString()+" ")
            print(k[h.substring(maze(x,y),maze(x,y)+1).toInt()])

 

 2つのprint文、片方の頭に//をつけてコメントアウト(無効化)していますが、これを1つめを有効・2つめを向こうにすると、算出された数値が表示されます。
(256文字のうち何文字目を拾っているかという部分)

 

 それを元に
var h="000… 

の内容を編集すると、壁と通路をある程度選択できる、って感じです。