2008.02.22
目からウロコ。
ずっと解らなかった、プログラムのブロックをランダムに順に表示させて絵が出てくる判定のやり方がわかった。
一つやり方を知っているんだけど、フラグを立てて、ifで総当たりすると言うモノ。
flagを立っていない物を表示するやり方だ。
でも、これだとカスタマイズが出来ない・・・何より仕様を変えるのにすべて弄らないと駄目だから、オブジェクト化・・・一塊に出来ない。
設定だけ外に出しておいて、設定を変更すると予測される範囲の変更が用意になる仕組みだ。
これを作りたかったのだが、やっとこさわかった。
二次配列を作り、ループして判定かけていくのだ。
while (true)を使うやり方だ。
アプリを起動させ続ける時に、while(true)などを使うのだけど、終わる時にbreakなどで抜けるのだが、順次判定にこの方法でやるようだ。
これは眉唾・・・まいどプログラマーってすげぇーと思う。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
for (var i = 0; i<10; i++) {
for (var j = 0; j<100; j++) {
arrayflasg[ i ][ j ] = false;
}}
flag = true;
while (flag) {
cel1 = Math.floor(Math.random()*10);
cel2 = Math.floor(Math.random()*100);
flag = arrayflasg [cel1][cel2];
flasにtrueが入っていたのだけ、ランダムで配列を入れる。
}
["imag" + cel1]["imag" + cel2]._visible = true;
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
for (var i = 0; i<10; i++) {
for (var j = 0; j<100; j++) {
arrayflasg[ i ][ j ] = false;
}}
ここで、配列の中にフラグを初期化。
flag = true;
while用のflag trueを入れておく、するとwhlieにtrueになり回り続ける。
while (flag) {
cel1 = Math.floor(Math.random()*10);
cel2 = Math.floor(Math.random()*100);
flag = arrayflasg [cel1][cel2];
flasにtrueが入っていたのだけ、ランダムで配列を入れる。
}
配列が入ったので、flagがtrueじゃなくなったのでwhileを抜ける。
arrayflasg [cel1][cel2] = true;
配列にtrueを入れる。すると上のwhileをまた実行した時に同じ物はtrueが入っているので、スルーされて周り続ける。
flagに”false”が入っているarrayflasg [40][25] が入る、arrayflasg [40][25] にtrueが入るすると、flag = arrayflasg [40][25] = true になるので、回り続けるって感じ。
全部trueになるまで回り続けてくれるってわけです^^
["imag" + cel1]["imag" + cel2]._visible = true;
これにwhileで得た、数字を入れるので、flag配列数と実行するモノ自体の配列数を揃えないと意味ないけど・・・なんかちょっとスッキリ。
だけど、これ・・・学生の頃、7並べを作らされた時に使ったような気がするなぁ。。。w
対戦ゲームの処理とかもやったよな気が・・・ まぁプログラム科では無かったので忘れましたがw <3D学科でした。
面白いけど・・・やっぱプログラマーにはなりたくない!!