トピック

赤と黄の●を全てランダムに動かすにはどのようにすれば良いでしょうか?

上下左右にそれぞれ1文字分動かしたいです。
1そうだね
プレイ済み
返信[1]
親投稿
みむ*mim hidemimtp
どうやって描いているんでしょう? 座標をランダムで表示しているのか、変数・配列などに座標を持たせているのか・・・LOCATE、PRINTしているのか、スプライトを使っているのか・・・
1そうだね
プレイ済み
返信[2]
親投稿
X=RND(48) Y=RND(28) LOCATE X+1,Y+1 ?¨●¨ これをFORで繰り返しています。
0そうだね
プレイ済み
返信[3]
親投稿
ΖΕΧ ZEX256
ほい
0そうだね
プレイ済み
返信[4]
親投稿
みむ*mim hidemimtp
それだと移動は難しいですね・・・出来なくはないですけど。動かさないものはそれで良いとして動かすものは配列で座標を持たせる。仮に5個だとして、まず初期設定。 DIM X[5],Y[5] ’配列を使う宣言 FOR I=0 TO LEN(X)-1 ’初期値を代入  X[I]=RND(48)+1:Y[I]=RND(28)+1 NEXT
0そうだね
プレイ済み
返信[5]
親投稿
みむ*mim hidemimtp
その後、ループ。 @LOOP ’ループ FOR I=0 TO LEN(X)-1  LOCATE X[I],Y[I]:?" " ’今の位置を消す  R=RND(4) ’どっちに動くか  IF R==0 && X[I]<48 THEN INC X[I]  IF R==1 && X[I]>1 THEN DEC X[I]  IF R==2 && Y[I]<28 THEN INC Y[I]  IF R==3 && Y[I]>1 THEN DEC Y[I]  LOCATE X[I],Y[I]:?"●" ’新しい位置に表示 NEXT VSYNC 10 GOTO @LOOP
0そうだね
プレイ済み
返信[6]
親投稿
MIKI ifconfig
ZEXさんとみむさんの手法は●が主体のオブジェクト方式。大概の場合はこれ。 とくちゃんさんの手法は空間が主体のセルオートマトン方式。コンウェイのライフゲームはこれね。 セルオートマトンの場合は、現世代の空間と次世代の空間を別に持たないとダメです。現世代のセル空間をスキャンして、一定のルールに従って、次世代のセル空間を決定する。ぐたいてきには for y = 0 to ymax for x = 0 to xmax if 現世代のセル[x,y]=="●" then 次世代のセル[x+rnd(3)-1,y+rnd(3)-1]="●" endif next next
0そうだね
プレイ済み
返信[7]
親投稿
MIKI ifconfig
あと衝突のルールを決める必要があります。 上記のは、「後から動いたほうで上書き」というルール。 例えば「既に●がいるセルには移動できない」というルールなら、移動先の次世代の空間を調べて、●がいないセルにあたるまでループする必要があります。
0そうだね
プレイ済み
返信[8]
親投稿
ありがとうございます。 色々な方法があるのですね、一番合っている方法はどれかなどを試して、一番良い方法を探したいと思います。
0そうだね
プレイ済み