Petit computer 3
TakumiTakumi.K0415
3 days ago ·Spoilers
質問です。 プログラムで制限時間をつくりたいのですが、どうしたらよいでしょうか。 誰か教えてください。
Share this Post
Comment
This post has no comments.
-
3 days ago ·Spoilers
方法はいくらでも有りますが、メインループの中にカウンタ仕込んで、規定の時間経過したらブレークするのが、簡単かな? 1フレームおよそ1/60秒なので60回ループでおよそ1秒(10秒なら600を指定、1分なら3600)ただし1ループが1フレームに収まってる必要が有りますが。
Yeahs0Played -
3 days ago ·Spoilers
基本内でやるなら WAIT 1のあるループ内で 変数を足し算(もしくは引き算)して 変数が制限時間の値になったら とする形かな。 ループ開始地点 WAIT 1 A=A+1 IF A==終了時間(フレーム) THEN 時間経過した後の処理 ループ開始地点へ 目的によりけりだけど FOR TO NEXT(回数指定ループ)で 制限時間分だけループさせるって方が楽な場合も有り。 MAINCNTってシステム変数に プチコンを起動してからの時間(フレーム)が入ってるので 最初の形に近いけど ループ前に 変数=MAINCNT+制限時間(フレーム) ループ内に IF MAINCNT==変数 THEN ~ とすると ほんの2,3手だけ楽が出来る場面も有り。
Yeahs0Played -
2 days ago ·Spoilers
お二人とも、ありがとうございました。 「A=A+1」や「MAINCLT」なるほどです! しかし、僕はINPUTを使い、その間は動作しなくなるので、A=~が難しく、MAIN~もその時だけの制限時間なので、INPUTを使っても(たくさん)大丈夫な方法を教えてください。 お二人とも、本当にすみません。
Yeahs0Played -
-
2 days ago ·Spoilers
ん~ INPUTから強制的に抜け出したいって事なのかな。 INPUTは 永久ループ⇒文字入力処理 という処理を呼び出すだけの命令と思われるので INPUTみたいな文字入力出来るモノを自作しない事には 多分 強制的に抜けるのは無理です。方法があったら知識として自分も知りたいかも。 INPUT中も時間経過するってだけなら MAINCNT一択かな 多分。 先に書いた通りシステム変数で 命令に左右されず内部で勝手に数値が書き換わってるので INPUTの直前に 変数1=MAINCNT(INPUTを開始した時間) INPUTの直後に 変数2=MAINCNT-変数1(現在の時間-開始時間) INPUT中の経過時間が出るので 経過時間カウント変数に加算して終了…だと思う。
Yeahs0Played -
2 days ago ·Spoilers
あ~、INPUTで待ってる間も、MAINCNTは進んでいるので、INPUT直後に規定時間過ぎてたら「何らかの処理」は出来ますが、INPUT待ち中に「時間なのでそこで強制終了」ってのはできないと思います。 (プチコンでは、割り込み処理は、でき無かったかと。)
Yeahs0Played -
-
2 days ago ·Spoilers
あ 良いのか。 AのカウントがINPUTで止まるから 止まった分を加算してんだよな。 数値関係には特に弱いので ちと混乱してしまった。
Yeahs0Played -
2 days ago ·Spoilers
まぁ、視覚だけで良いのであれば、INPUT待ち中でもSPANIMは動いてるので、カウントダウン的な事は可能かと・・・ (画像はその一例)
Yeahs0Played -
2 days ago ·Spoilers
プログラムから察するに 文字は不要で 数値入力だけして欲しい感じのものなのかな。だとすると 簡易INPUTを自作するってのも手かな。 INPUTを細分化すると 永久ループ タッチ座標を取得 タッチ座標が 文字座標内なら 文字を取得(※) 表示する為の文字ならPRINT エンターの座標をタッチしたらループ脱出 数値だけが欲しい場合 ※の部分は 0~9 エンター バックスペース の12個のみ。 タッチでの作成がめんどい/意味不な様なら キー入力で DQの名前入力みたいなのとか。カーソル位置変数がどこどこなら 1とか2って感じのね。 すでにIFで変数判定してる様だし そう時間はかからずに作れるかも。自作しちゃえば 入力途中で強制脱出ってのも組み込めるね。
Yeahs0Played -
2 days ago ·Spoilers
横から失礼。 Takumiさんが作成しようとしているのって 制限時間内に 足し算問題を 何個答えられるか? というプログラムでしょうか?(スクショからそう判断した。) だとすれば 多分実装したい仕様として 数値を入力中でも「あと(制限時間が)はんぶんだ」とか表示させたいと思うので INPUTでは無理ですね。 (文字入力でプログラムが止まってしまうため。) そひさんのおっしゃるとおり 自作のINPUTのようなものを作成する必要があります。
Yeahs0Played -
2 days ago ·Spoilers
では どうするかというと INKEY$ という命令と INKEY$の中身を常に確認する ループを用意すれば なんとかなりそうです。 あとは 入力された文字が 数値であるかのIF処理と 正解/不正解判断IF処理 制限時間のカウントダウン処理 (カウント変数の増減と 規定カウントでのループ脱出【タイムオーバー】など…)を ループ内に用意して…… ……って考えると 少し大変ですな。
Yeahs0Played -
2 days ago ·Spoilers
INPUT命令を自作するサンプル INPUT "="、C を INPUT5 "=" OUT C に 置き換えられる 簡易DEF です。 (おまけでカウントダウン表示付) 通常のINPUT命令と違うのは[BS]で消せない。 矢印でカーソル移動できない。 コレらを実装するともう少しDEFが長くなります。 (入力した文字列を操作したり、カーソル位置を移動させるだけですが)
Yeahs0Played -
2 days ago ·Spoilers
皆さん、ありがとうございました! 結論として、INPUT中は基本は無理で、自分でつくるか、MAINCLTを工夫してしないと無理ということですね!! 本当にありがとうございました!!
Yeahs0Played -
2 days ago ·Spoilers
色々と教えてくださったおれいとして、公開キー[BDX3V8V]の足し算の勉強を公開します。 DLしたら『そうだね!』おしてください!!
Yeahs1Played -
2 days ago ·Spoilers
あーINKEY$先生が居たか。プチコンだとBUTTONばっかですっかり存在を忘( 計算ゲームの中身を覗いてみた。 動いてるので全然問題ないんだけど 1行ずつ何をしてるのか考えてみるとLVUPに繋がるかも。 コレいらないんじゃね ってのが出て来たり コレ置く場所違うんじゃね ってのが出て来たり。 こういう些細な事で理解を深めておくと 命令自体は解らずとも書く場所だけは解るとか 何かバグが起きた時に どこで起きてるのか見当が付くとか そんな感じに自然となります。 障害物だらけの校庭を全速力で周回。休憩は一切無し。 こういうのに疑問を覚えたり 意外ッ!ゴールはもう1歩先にあったッ!! みたいな事に気づくと1LVUPします。(最初に書いてる通り 動いてるので無理に直す必要はなく 気づく事が重要。)
Yeahs1Played -
2 days ago ·Spoilers
プログラム拝見しましたけど、結局制限時間はあきらめたんでしょうか・・・ この内容であれば、INPUTを強制中断しなくても、制限時間内に回答入力が間に合わなかった場合、(正解でも)間違いとして処理すれば、問題ないと思いました。
Yeahs0Played -
Add a Comment
You must sign in to post a comment.
Sign in using a Nintendo Network ID to connect to users around the world by writing posts and comments and by giving Yeahs to other people's posts. You can create a Nintendo Network ID using your Wii U console or your system in the Nintendo 3DS family.
Report Violation to Miiverse Administrators
You are about to report a post with content which violates the Miiverse Code of Conduct. This report will be sent to Nintendo's Miiverse administrators and not to the creator of the post.
Report Violation to Miiverse Administrators
You cannot report posts made automatically by a software title.

