アリさんのケーキ探し ―― もうちょい進展
Sub Gか冒険か3() Dim Gran, Gran2, IT2, ST1, DR1 Gran = Rnd() Range("D10") = Gran ' Greedyで行くか、冒険で行くか、その結果どの方向に行くかを決める ‘ しかし、b10より小さければ冒険、としているが、B10が1なので、間違いなく冒険 ‘ b10は今後、だんだん小さくしていく ' 行く方向は変数DR1に格納、D24に表示 If Gran >= Range("b10") Then Range("e10") = "RE" ' Greedyで行く場合 DR1 = Range("a37").Offset(Range("f7"), 6) Range("d24") = DR1 Else Range("e10") = "IT" ' 冒険で行く場合 'ST1 現在の状態で移動可能な方向の数 ST1 = Range("a25").Offset(Range("f7"), 5) Range("b24") = ST1 '乱数を使い、何番目の方向に行くかを決定 Gran2 = Int(Rnd * ST1 + 1) Range("c24") = Gran2 DR1 = Range("a25").Offset(Range("f7"), Gran2) Range("d24") = DR1 End If ' 行く方向によって、状態の行、列を更新 If DR1 = 1 Then Range("f9") = Range("f9") + 1 ElseIf DR1 = 2 Then Range("f8") = Range("f8") - 1 ElseIf DR1 = 3 Then Range("f9") = Range("f9") - 1 ElseIf DR1 = 4 Then Range("f8") = Range("f8") + 1 End If End Sub
とりあえず、こんなところ。