1float x, y, r;2boolean isClicked;34voidsetup(){5size(400,300);6ellipseMode(RADIUS);7textAlign(CENTER,CENTER);8textSize(50);910 x =random(width);11 y =random(height);12 r =random(50,100);13}1415voiddraw(){16background(255);1718if(isClicked){19fill(255,0,0);20circle(x, y, r);2122fill(0);23text("Congratulations",0,0, width, height);24}else{25fill(255);26circle(x, y, r);27}28}2930voidmouseClicked(){31if(dist(x, y, mouseX, mouseY)< r){32 isClicked =true;33}34}
1finalintNUM=5;2float[] x, y, r;3boolean[] isClicked;45voidsetup(){6size(400,300);7ellipseMode(RADIUS);8textAlign(CENTER,CENTER);9textSize(50);1011 x =newfloat[NUM];12 y =newfloat[NUM];13 r =newfloat[NUM];14 isClicked =newboolean[NUM];1516for(int i =0; i <NUM; i++){17 x[i]=random(width);18 y[i]=random(height);19 r[i]=random(50,100);20}2122// (小さい順に)ソートして逆順にする(=大きい順にソート) 何のためにやっているか考えてみよう23 r =reverse(sort(r));24}2526voiddraw(){27background(255);2829boolean allClicked =true;30for(int i =0; i <NUM; i++){31if(isClicked[i]){32fill(255,0,0);33}else{34fill(255);35 allClicked =false;36}37circle(x[i], y[i], r[i]);38}3940if(allClicked){41fill(0);42text("Congratulations",0,0, width, height);43}44}4546voidmouseClicked(){47// 逆順に回しているが、何のためにやっているか考えてみよう48for(int i =NUM-1;0<= i; i--){49if(dist(x[i], y[i], mouseX, mouseY)< r[i]){50 isClicked[i]=true;51break;52}53}54}