元Webデザイナー兼コーダーの備忘録

ウェブデザインやプログラミング、ブログのカスタマイズなどについてアウトプットしています。

 メニュー

» HTML入門のまとめはこちらです。

Processing:ランダムウォークの確率の操作

The Nature of Code(PDF版)からランダムウォークについて取り上げます。Processingでプログラムを書いて、動作を確認します。動作を確認できるところがProcessingの楽しいところです。今回は、ランダムウォークの確率を操作します。

ランダムウォークの確率の操作

4方向に移動するランダムウォークの確率を操作します。以下のような確率で移動することとします。

  • 上へ行く確率:20%
  • 下へ行く確率:20%
  • 左へ行く確率:20%
  • 右へ行く確率:40%

以上より、右方向に進みやすいランダムウォークになります。

//ランダムウォーカー
class Walker{
  int x;
  int y;

  Walker(){
    x = width/2;
    y = height/2;
  }

  void display(){
    stroke(0);
    point(x, y);
  }

  void step(){
    float r = random(1);
    if (r < 0.4) {
      x++;
    } else if (r < 0.6) {
      x--;
    }else if(r < 0.8){
      y++;
    } else {
      y--;
    }
  }
}

Walker w;

void setup(){
  size(640, 360);
  w = new Walker();
  background(255);
}

void draw(){
  w.step();
  w.display();
}

step関数内で確率を設定しています。random関数が出力する値により、移動する方向を決定します。

まとめ

The Nature of Code(PDF版)からランダムウォークの確率の操作について取り上げました。引き続き、The Nature of Code(PDF版)の内容を勉強します。

参考サイト

» HTML入門のまとめはこちらです。