tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^6: 渦巻き回りの座標移動アルゴリズム
投稿日: 2010/10/01(Fri) 19:01
投稿者
> もし、もっと良い方法があれば後学のために、教えてください。

もっと良い方法かは判りませんが、
移動済みか否かを判別せずに移動するロジックを考えてみました。

'----------------------------------------
mCount = 21   '移動回数
iMovement = 0  '移動方向

For I = 1 To mCount
    Select Case iMovement
        Case 0  '右:X+
            X = 1
            Y = 0
        Case 1  '下:Y-
            X = 0
            Y = -1
        Case 2  '左:X-
            X = -1
            Y = 0
        Case 3  '上:Y+
            X = 0
            Y = 1
    End Select

    For J = 1 To Int((I / 2) + 0.5)
        Move(X, Y)
    Next J

    iMovement = (iMovement + 1) Mod 4  '方向転換
Next I
'----------------------------------------

変数 mCount は次の曲がり角までの直進を 1 とする移動回数です。
事前に調査して設定、または算出して入れておく必要があります。

変数 X および Y は各座標軸に対する増減です。
移動する方向に合わせて+-を設定します。

現在地から次の曲がり角までの移動量(1,1,2,2,3,3…)を算出し、1マスずつ移動します。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。