関数の再帰呼び出しを使って、こんな感じで出来たような記憶が。 def func x,y if xまたはyが範囲外ならreturn if (x,y)の場所が開いていたら return (x,y)の場所を開ける if (x,y)の場所が0より大きければreturn func(x,y-1) '上 func(x+1,y) '右 func(x,y+1) '下 func(x-1,y) '左 end 違ってたらすみません^^;