投稿
現在、クイズゲームのプログラムを組んでいます。そこで、解答に制限時間を設けようとしているのですが上手く行きません。どうすればいいのでしょう? 理想はINPUT命令で解答待ちの時に制限時間を設け、制限時間を過ぎればゲームオーバーというのを目指しています。
4そうだね
プレイ済み
返信[1]
親投稿
けい kei0baisoku
プレイヤが入力し終わった時点で時間切れかどうか判定するのなら簡単ですが、時間切れになったらINPUT命令自体をすぐにキャンセルしたいということですよね? INPUT命令が入力完了まで待つ仕様のようなので、正攻法では難しそうです。INKEY$()命令を駆使して、入力待ちの部分を自分で作れば可能そうですが、相当難易度が跳ね上がりますのでオススメはできません(><) むぅ、結局たいしてお力になれそうにないです………(´з`) 他の方なら何か良い方法ご存じかも。
1そうだね
プレイ済み
返信[2]
親投稿
ASA fusuian
INPUT文では時間切れを測れないので、INKEY$とループを組み合わせます。 VSYNCで1/60秒ごとにカウントするので、持ち時間が5秒なら5に60をかけます。 FOR I=0 TO 5*60 A$=INKEY$ IF A$!="" THEN BREAK VSYNC NEXT IF A$=="" THEN PRINT "じかんぎれ!" ' A$が正解かを判定 おおざっぱですがこんな感じだと思います。
1そうだね
プレイ済み
返信[3]
親投稿
>>けいさん 返答ありがとうございます! 仕様ならば、難しいですね>< ちなみに最初の方に書いてある方法はどうするのでしょうか? 教えていただけると嬉しいです(*..)ペコッ
0そうだね
プレイ済み
返信[4]
親投稿
>>ASAさん 返答ありがとうございます! 詳しく書いていただき感無量です 今から試したいと思います!
0そうだね
プレイ済み
返信[5]
親投稿
きゃっきゃ INUNEKO238
inputは多分どうやってもプログラムが停止してしまうと思いますので、 回答を4つ程用意しといて選択式にしたらどうでしょう。 毎回乱数で順番はランダムにして。 という風に。 正解を必ず1個目に入れておくと 正解の指定を保存しておくひつようもなく、プログラムも書くの楽になるかもです。
0そうだね
プレイ済み
返信[6]
親投稿
けい kei0baisoku
>マシュマロさん 日本語表記で失礼します。 制限時間6秒とします。 '----------------------------------- 開始時間=MAINCNT 答え=INPUT() 終了時間=MAINCNT IF 終了時間 - 開始時間 > 6秒 THEN 時間切れ ELSE OK!正解か判定する '----------------------------------- MAINCNTが何なのか、どうやって秒に変換するのか等は、マニュアルとかで確認してみてください(^^) では、頑張って!(^O^)
0そうだね
プレイ済み
返信[7]
親投稿
きゃっきゃ INUNEKO238
成る程!そういう考えもあるのね・・
0そうだね
プレイ済み
返信[8]
親投稿
なるほど!試してみますね! 皆様、様々な回答ありがとうございました。
0そうだね
プレイ済み