//////////////////// 定数 ////////////////////////////// int n = 100; //////////////////// 変数 ////////////////////////////// int[] x; int[] y; int[] dx; int[] dy; //////////////////// 初期設定・準備 ////////////////////////////// void setup() { size(640, 480); // ウィンドウの作成 ellipseMode(CENTER); fill(color(0, 0, 0)); x = new int[n]; y = new int[n]; dx = new int[n]; dy = new int[n]; reset(); } void draw(){ for(int i = 0; i < n; i++){ ellipse(x[i], y[i], 2, 2); } move(); turn(); } void move() { for(int i = 0; i < n; i++){ x[i] += dx[i]; if(x[i] > width) x[i] = 0; y[i] += dy[i]; if(y[i] > height) y[i] = 0; } } void turn() { for(int i = 0; i < n; i++){ randomTurn(i); } } void randomTurn(int i){ if((int)random(100) == 0){ dx[i] = int(random(3)) - 1; dy[i] = int(random(3)) - 1; } // 動いていなかったらもう一度抽選 if(dx[i] == 0 && dy[i] == 0) randomTurn(i); } void reset(){ background(color(255, 255, 255)); randomSeed(int(random(65536))); for(int i = 0; i < n; i++){ x[i] = (int)random(width); y[i] = (int)random(height); dx[i] = int(random(3)) - 1; dy[i] = int(random(3)) - 1; } } void mouseReleased(){ if(mouseButton == LEFT) reset(); }