新しいビデオ.mp4

再帰の勉強がてら、迷路を解くやーーつ 作りました!

初再帰のため、ツッコミどころや改善点などあるかと思いますが、 ご指摘の際は優しく教えてください🥺💖ww

リファクタして短くなりました!!笑 /

下記が本体部分のコードです★(コメントなしver.)

Option Explicit
Const 壁 = 14277081
Const 白 = 16777215
Const 赤 = 255
Const 緑 = 9359529
Const 灰 = 8421504

Sub 開始()
    Call 再帰(ActiveCell)
End Sub

Private Sub 再帰(セル)
    
    Dim 範囲 As Range
    Set 範囲 = Union(セル.Offset(-1, 0), セル.Offset(0, -1), セル.Offset(0, 1), セル.Offset(1, 0))
    Dim 次のセル As Range
    
    For Each 次のセル In 範囲
        
        If 次のセル.Interior.Color = 白 Then
            セル.Interior.Color = 緑
            次のセル.Interior.Color = 赤
            If 次のセル.Value = "★" Then
                MsgBox "ゴーーール!"
                End
            End If
            Call 再帰(次のセル)
        End If
        
        If 範囲.Areas(4).Address = 次のセル.Address Then
            セル.Interior.Color = 灰
        End If
        
    Next
    
End Sub

進行方向の判定を入れたら 進む方向は「前・右・左」の3パターンでいいんですが、 判定するのが面倒だったのでとりあえず 「上下左右」の4方向を全て見てみる感じで作りました!🤣ww

ちなみに、ゴールが下にあるという前提で 面白い動きをするために、あえて『下』の選択を最後にしてますw

進行方向を判定するパターンもまた挑戦してみたいと思います!

コード見直してちょっと短くなりました♪ ( * ‘ω‘ *) < スッキリ!

Untitled