投稿
ゆう© YUTO617
3秒間数えるプログラムとかありますか?
2そうだね
プレイ済み
返信[1]
親投稿
V.D. 5962-63214-97513
WAIT 命令を使うと良いでしょう 例) WAIT 180  '60で1秒なので、3秒は180 です。
0そうだね
プレイ済み
返信[2]
親投稿
かつみ opoQsn
1秒ずつ数えるならこれ N=3’この変数の秒数まで数える WHILE A!=N PRINT A BEEP 49 WAIT 60 INC A WEND BEEP 50
0そうだね
プレイ済み
返信[3]
親投稿
☆Tatsukin★ tatu_kin1192
WHITE A<180 A=A+1 WEND として、WHITEとWENDの間に 3秒の間に実行することを書けば行けます。 WAITは、実行してる間は 何もできない(やめることはできます)ので、 この場合はWHITEとWENDの方が ふさわしいです。
1そうだね
プレイ済み
返信[4]
親投稿
ゆう© YUTO617
では、『3秒たってもミッションをクリアできなかったらENDになる。』という命令はどうしたらいいでしょう。
0そうだね
プレイ済み
返信[5]
親投稿
こうあん kou051213
WAIT 180 END
0そうだね
プレイ済み
返信[6]
親投稿
V.D. 5962-63214-97513
プチコン3が管理しているシステム変数「MAINCNT」とか、「TIME$」を使えば、いろいろできると思います。あと「VSYNC」もよろしく
1そうだね
プレイ済み
返信[7]
親投稿
☆Tatsukin★ tatu_kin1192
WHITE A<180 ’ここにミッションを挿入 A=A+1 WEND
0そうだね
プレイ済み
返信[8]
親投稿
☆Tatsukin★ tatu_kin1192
※ENDはなくても終了します。  あと、TIME$は普通の  BASICにもあります。
0そうだね
プレイ済み
返信[9]
親投稿
CLS PRINT "ミッション:3びょういないにAをおせ!" FOR TIMECNT = 0 TO 60 * 3 IF BUTTON(2) AND 16 THEN BREAK VSYNC NEXT IF TIMECNT < 60*3 THEN PRINT "おめでとうミッションコンプリートだ!" ELSE PRINT "どっかーん! あなたはしんだ。" ENDIF 大ざっぱにはこんな感じ?
0そうだね
プレイ済み
返信[10]
親投稿
mhy mahuyu.1
訂正 CNT=MAINCNT WHILE MAINCNT<=CNT+60 処理 WEND
0そうだね
プレイ済み
返信[11]
親投稿
reji Satoshi.1103
僕もたつきんさんの方法を使っています。
0そうだね
プレイ済み
返信[12]
親投稿
カウントダウンや時間制限に関しては私が作ったゲームで使っているのがあります。詳しくは私の活動などで。 まぁ簡単に書きますと TIM=30 :'1秒を10カウント(6カウント=0.1秒)で計算する為3.0秒なら10倍の30として設定 TIMZ=MAINCNT @LOOP IF MAINCNT<=TIMZ+6 THEN TIM=TIM-1:TIMZ=MAINCNT IF TIM<=0 THEN END GOTO @LOOP 何も見ずに書いてるので確認していませんが、こんな感じになるかと。
1そうだね
プレイ済み
返信[13]
親投稿
ヨッシー okkun2002
ループの場合はVSYNCを忘れないように! MA=MAINCNT WAIT 8 ?MAINCNT-MA とかくと8位になると思います。 このWAIT 8のところを好きな処理に変えてください。
0そうだね
プレイ済み
返信[14]
親投稿
おちゃめ ochame_nako
「フレーム」という単位を使って3秒間をカウントします。 1フレームは1/60秒なので3秒間は3秒×60で180フレームに相当します。 それを使って画面に3秒からのカウントダウン表示をしながらミッションクリアを判定するプログラムを作りました。 今回のミッションは画面に出る数字と同じボタンを押すというものです。(16ならばAボタンを押す) 使用するボタンはABXYの4つのみです。
0そうだね
プレイ済み
返信[15]
親投稿
おちゃめ ochame_nako
プログラムリストはこちらです。
1そうだね
プレイ済み
返信[16]
親投稿
おちゃめ ochame_nako
簡単な解説をします。 R=(RND(15)+1)*16はA、B、X、Yボタンを示す15通りの乱数を発生させます。 WHILE T~WENDはTの値が0でなければループを繰り返します。 画面上に表示するタイムはTの値を60で割ったものを整数にして表示しています。 この際、切り捨てとなるFLOORだと1秒を切ったら残り時間が0になってしまうため切り上げとなるCIELを使っています。 IF BUTTON()==R THEN F=1:BREAKで指定のボタンを押したらフラグを示す変数Fに1を入れてBREAKでループを強制終了します。 ループから抜けた後はFの値が1かどうかでクリアしたかが分かりますのでクリア処理とゲームオーバー処理を用意すれば完成です。 わざわざフラグ用の変数を用意しなくても残りタイムが0以外かどうかで判定をすることも可能です。
0そうだね
プレイ済み
返信[17]
親投稿
ゆう© YUTO617
ほうほう。ところで乱数ってなんですのぉ?
0そうだね
プレイ済み
返信[18]
親投稿
おちゃめ ochame_nako
乱数というのは、でたらめな数であり法則性のない数のことです。 A=RND(5)とすることで変数Aには0から4の5通り(0、1、2、3、4)のうちからいずれかの値が入ります。 ここで注意するのは0から始まっているということです。 サイコロで使用する場合に1~6の値を発生させたいという場合にはRND(6)+1とすることで1から始まる6通りの乱数を発生させます。 RND(5)*2とすれば0、2、4、6、8という5通りとなる2の倍数の乱数となります。 このように足したり掛けたりすれば自分が希望するような範囲の乱数を発生させることが可能です。
1そうだね
プレイ済み
返信[19]
親投稿
ゆう© YUTO617
もし乱数が2だった場合、『アイテムを獲得』みたいにするためには、どう設定するんですか?
0そうだね
プレイ済み
返信[20]
親投稿
かつみ opoQsn
A=RMD(10)'0~9までの乱数 IF A==2 THEN GOTO @ITEM
1そうだね
プレイ済み
返信[21]
親投稿
かつみ opoQsn
誤字発見 A=RMD(10)'0~9までの乱数 ↓ A=RND(10)'0~9までの乱数
1そうだね
プレイ済み
返信[22]
親投稿
ゆう© YUTO617
その命令でランダムになりますか?
0そうだね
プレイ済み
返信[23]
親投稿
ゆう© YUTO617
あ、すいません。変なこと聞いちゃいましたwありがとうございました。
0そうだね
プレイ済み
返信[24]
親投稿
おちゃめ ochame_nako
乱数の範囲が分からないけど0~9の10通りの乱数を発生させてその値が2の場合ならば次のような感じにできます。 IF RND(10)==2 THEN  PRINT"アイテムをてにいれた!"  ITEM=1  BEEP 119 ENDIF あとは変数ITEMが1かどうかでゲーム中の効果を判断すると良いでしょう。 そのアイテムがまだ持ってない時のみ取得できるようなタイプの場合はそのアイテムを持ってないかどうかも判断しなくてはなりません。(IF RND(10)==2 && ITEM==0 THEN 以下略) これ以上は実際にプログラムを書いてこの動作がうまくできないという具体例を提示した方がベターな回答ができると思います。
1そうだね
プレイ済み
返信[25]
親投稿
おちゃめ ochame_nako
アイテムを持っているか否かではなく数もカウントする場合にはTHENの後のITEM=1の部分は「INC ITEM」もしくはITEM=ITEM+1にしてください。 その際はアイテムの効果は変数ITEMの値が1かどうかではなく0より大きいかどうかで判断します。
1そうだね
プレイ済み
返信[26]
親投稿
乱数てのはよく切ったトランプからカードを1枚引く感覚です。ただそのカードを山に戻してまたよく切って1枚引くようなシステムですが。
1そうだね
プレイ済み
返信[27]
親投稿
☆Tatsukin★ tatu_kin1192
A=RND(10)というふうに代入もできます。 1/10の確率でBEEP 7をならす A=RND(10) IF A==0 THEN BEEP 7
1そうだね
プレイ済み
返信[28]
親投稿
☆Tatsukin★ tatu_kin1192
おみくじプログラム CLS A=RND(2) IF A==0 THEN PRINT "あたり!おめでとう!" ELSE PRINT "はずれ…ざんねん…" ENDIF END
1そうだね
プレイ済み
返信[29]
親投稿
☆Tatsukin★ tatu_kin1192
かつみs»THEN GOTO @ITEMは エラーになりますよ。正しくは、 GOTO @ITEMです。
0そうだね
プレイ済み
返信[30]
親投稿
reji Satoshi.1103
「サンプルプログラム」のかずあてゲームは乱数を利用してますね。
1そうだね
プレイ済み
返信[31]
親投稿
ヨッシー okkun2002
>タツキンs え!エラーになりますか?プログラムの短縮には役立ちますが、大丈夫でした。 逆に、GOTOを抜かしてTHEN @ITEMでもOKなはずです。
1そうだね
プレイ済み
返信[32]
親投稿
ゆう© YUTO617
ヨッシーs»GOTOって省略できるんですか!?
0そうだね
プレイ済み
返信[33]
親投稿
おちゃめ ochame_nako
IF 条件式 THEN GOTO @ラベル は、GOTOもしくはTHENを省略可能です。
2そうだね
プレイ済み
返信[34]
親投稿
☆Tatsukin★ tatu_kin1192
○THEN @ITEM ×THEN "@ITEM" ○GOTO @ITEM ○GOTO "@ITEM" ×THEN GOTO @ITEM ×THEN GOTO "@ITEM"
0そうだね
プレイ済み
返信[35]
親投稿
ヨッシー okkun2002
もう一度...念のため...聞いて...いい...かな? 聞きます。 THEN GOTO ラベル って×(ばつ)なんですか!
0そうだね
プレイ済み
返信[36]
親投稿
ゆう© YUTO617
なんないと思いますが.........
0そうだね
プレイ済み
返信[37]
親投稿
☆Tatsukin★ tatu_kin1192
説明書かヘルプ見てください。 というか話脱線しているようn(殴
0そうだね
プレイ済み
返信[38]
親投稿
僕の記憶が正しければTHEN GOTO ラベルは大丈夫なはずですよ。
2そうだね
プレイ済み