コメント
このコメントは、【トピック】whileでendを繰り返すへのコメントです。コメントの内容
コメントの内容(一番最初の投稿)
ikosami(投稿日:2010/03/28 03:03/28/10)
体験版をやればわかると思いますが、
同じ色がいくつ続いているか、を判断するwhile~endのループを
作るには
ifのループ
ifのループ2
ifの数だけendのループ
をやる必要があるんです・・・
ループをひとつにまとめると
間のマスがすべて敵のこまだったら
という判定ができないんです・・・
まとめると、たとえば
右側に自分のこまがあって
その間の判定をするときに
1つ右が敵のこまだったら1つ右を自分のこまに変える
2つ右が敵のこまだったら2つ右を自分のこまに変える
3つ右が敵のこまではなかったら判定終了
になるので
ひっくり返せないコマがひっくり返ってしまうんです・・・
ループなしなら普通に・・・
というか書いてる途中で思いついたんですけど
ループで
1の時に正しかったら+1
2の時に正しかったらさらに+1
で数字が全部足されていたら(間のコマがすべて敵のコマだったら)
ひっくり返す。
つまり↓
ならいいような気がしますけど
これって全マス共通じゃないから
全然省略になりませんよね・・・
全マス共通でないと意味がなく
しかも省略せずに書くと文字数オーバーですから・・・
ムツカシイデス・・・
同じ色がいくつ続いているか、を判断するwhile~endのループを
作るには
ifのループ
ifのループ2
ifの数だけendのループ
をやる必要があるんです・・・
ループをひとつにまとめると
間のマスがすべて敵のこまだったら
という判定ができないんです・・・
まとめると、たとえば
右側に自分のこまがあって
その間の判定をするときに
1つ右が敵のこまだったら1つ右を自分のこまに変える
2つ右が敵のこまだったら2つ右を自分のこまに変える
3つ右が敵のこまではなかったら判定終了
になるので
ひっくり返せないコマがひっくり返ってしまうんです・・・
ループなしなら普通に・・・
というか書いてる途中で思いついたんですけど
ループで
1の時に正しかったら+1
2の時に正しかったらさらに+1
で数字が全部足されていたら(間のコマがすべて敵のコマだったら)
ひっくり返す。
つまり↓
z = 0 if getVariable("a")[7][0] == getVariable("koma") z = z + 1 end i = 1 while i < 7 if getVariable("a")[i][0] == getVariable("koma2") z = z + 1 end i = i + 1 end if z == 7 i = 1 while i < 6 getVariable("a")[i][0] = getVariable("koma") i = i + 1 end end
ならいいような気がしますけど
これって全マス共通じゃないから
全然省略になりませんよね・・・
全マス共通でないと意味がなく
しかも省略せずに書くと文字数オーバーですから・・・
ムツカシイデス・・・
同じ色がいくつ続いているか、を判断するwhile~endのループを
作るには
ifのループ
ifのループ2
ifの数だけendのループ
をやる必要があるんです・・・
ループをひとつにまとめると
間のマスがすべて敵のこまだったら
という判定ができないんです・・・
まとめると、たとえば
右側に自分のこまがあって
その間の判定をするときに
1つ右が敵のこまだったら1つ右を自分のこまに変える
2つ右が敵のこまだったら2つ右を自分のこまに変える
3つ右が敵のこまではなかったら判定終了
になるので
ひっくり返せないコマがひっくり返ってしまうんです・・・
ループなしなら普通に・・・
というか書いてる途中で思いついたんですけど
ループで
1の時に正しかったら+1
2の時に正しかったらさらに+1
で数字が全部足されていたら(間のコマがすべて敵のコマだったら)
ひっくり返す。
つまり↓
ならいいような気がしますけど
これって全マス共通じゃないから
全然省略になりませんよね・・・
全マス共通でないと意味がなく
しかも省略せずに書くと文字数オーバーですから・・・
ムツカシイデス・・・