HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0712
イーグル■を2つに6解決


イーグル

リンク

2006/7/12(Wed) 23:05:01|NO.1338

screen 0,500,650,0
randomize
max_x = 13 : max_y = 18
gamedot = 16
*mainlp
redraw 0
color 0, 0, 0 : boxf
gosub *move_ene
gosub *disp_ene
gosub *make_ene

redraw 1
await 50
goto *mainlp
*make_ene
;出現位置決定
if eneflag ! 0 : return
enex = rnd(max_x)
eney = 0 : eneflag = 1
return
*move_ene
if eneflag = 0 : return
eney ++
return
*disp_ene
if eneflag = 0 :return
if eney > max_y : eneflag = 0 : return
color 255,0,255
pos enex*gamedot,eney*gamedot
mes "■"
return


■をもう1つ増やして2つランダムで■を表示したいのですが、
どうすれば良いのでしょうか?



この記事に返信する


ありくい

リンク

2006/7/13(Thu) 00:41:54|NO.1339

enexやeneflagなど■に関する変数を配列として多数用意し、
それらを処理する際には繰り返しを使う。これが順当かと。
二つといわずたくさん管理できます。

あと、小言になりますが、スクリプトは適切な字下げや行空けをして書く
ほうが後から楽ですよ。
それから、スクリプト部分は<pre></pre>で囲みましょう。書き込みフォーム
の注意書きの三番目をよく見てください。…私もたまに忘れますけど(^ ^;;



イーグル

リンク

2006/7/18(Tue) 23:47:08|NO.1422


screen 0,500,650,0 randomize max_x = 13 : max_y = 18 gamedot = 16 *mainlp redraw 0 color 0, 0, 0 : boxf gosub *move_ene gosub *disp_ene gosub *make_ene redraw 1 await 50 goto *mainlp *make_ene ;出現位置決定 if eneflag ! 0 : return enex = rnd(max_x) eney = 0 : eneflag = 1 return *move_ene if eneflag = 0 : return eney ++ return *disp_ene if eneflag = 0 :return if eney > max_y : eneflag = 0 : return color 255,0,255 pos enex*gamedot,eney*gamedot mes "■" return



イーグル

リンク

2006/7/18(Tue) 23:50:04|NO.1423

こうやればいいのか。
の意味が今までずっとわからなかったのですが、
これでわかりました。



osakana

リンク

2006/7/19(Wed) 03:56:03|NO.1425

イメージしている動作とは違うかも知れませんが、
そのまま配列にしてみました。

screen 0,500,650,0 randomize max=10 dim eneflag,max max_x = 13 : max_y = 18 gamedot = 16 *mainlp redraw 0 color 0, 0, 0 : boxf gosub *move_ene gosub *disp_ene gosub *make_ene redraw 1 await 50 goto *mainlp *make_ene ;出現位置決定 repeat max if eneflag(cnt) ! 0 : continue enex(cnt) = rnd(max_x) eney(cnt) = 0 eneflag(cnt) = 1 loop return *move_ene repeat max if eneflag(cnt) = 0 : continue eney(cnt) ++ loop return *disp_ene repeat max if eneflag(cnt) = 0 : continue if eney(cnt) > max_y : eneflag(cnt) = 0 : continue color 255,0,255 pos enex(cnt)*gamedot,eney(cnt)*gamedot mes "■" loop return
色々研究して見て下さい。
配列は分かりますよね?



イーグル

リンク

2006/7/21(Fri) 23:52:00|NO.1484


screen 0,500,650,0 randomize max=2 dim eneflag,max max_x = 29 : max_y = 39 gamedot = 16 *mainlp redraw 0 color 0, 0, 0 : boxf gosub *move_ene gosub *disp_ene gosub *make_ene redraw 1 await 50 goto *mainlp *make_ene ;出現位置決定 repeat max if eneflag(cnt) ! 0 : continue enex(cnt) = rnd(max_x) eney(cnt) = 0 eneflag(cnt) = 1 loop return *move_ene repeat max if eneflag(cnt) = 0 : continue eney(cnt) ++ loop return *disp_ene repeat max if eneflag(cnt) = 0 : continue if eney(cnt) > max_y : eneflag(cnt) = 0 : continue color 255,0,255 pos enex(cnt)*gamedot,eney(cnt)*gamedot mes "■" loop return

配列が分かっていたらそんなに苦労しないと思います。
えーと、それを使うと便利なわけか。



kz3

リンク

2006/7/22(Sat) 09:15:24|NO.1492

>配列が分かっていたらそんなに苦労しないと思います。

苦労した人のセリフとは思えません。



ONION software Copyright 1997-2021(c) All rights reserved.