Play Journal Entries

Petit computer 3

TakumiTakumi.K0415

3 days ago ·Spoilers

質問です。 プログラムで制限時間をつくりたいのですが、どうしたらよいでしょうか。 誰か教えてください。

Advertisement

Comment

This post has no comments.

  • TERA(LL)

    3 days ago ·Spoilers

    方法はいくらでも有りますが、メインループの中にカウンタ仕込んで、規定の時間経過したらブレークするのが、簡単かな? 1フレームおよそ1/60秒なので60回ループでおよそ1秒(10秒なら600を指定、1分なら3600)ただし1ループが1フレームに収まってる必要が有りますが。

    Yeahs0
    Played
  • そひ

    3 days ago ·Spoilers

    基本内でやるなら WAIT 1のあるループ内で 変数を足し算(もしくは引き算)して 変数が制限時間の値になったら とする形かな。 ループ開始地点  WAIT 1  A=A+1  IF A==終了時間(フレーム) THEN 時間経過した後の処理 ループ開始地点へ 目的によりけりだけど FOR TO NEXT(回数指定ループ)で 制限時間分だけループさせるって方が楽な場合も有り。 MAINCNTってシステム変数に プチコンを起動してからの時間(フレーム)が入ってるので 最初の形に近いけど ループ前に 変数=MAINCNT+制限時間(フレーム) ループ内に IF MAINCNT==変数 THEN ~ とすると ほんの2,3手だけ楽が出来る場面も有り。

    Yeahs0
    Played
  • Takumi

    2 days ago ·Spoilers

    お二人とも、ありがとうございました。 「A=A+1」や「MAINCLT」なるほどです! しかし、僕はINPUTを使い、その間は動作しなくなるので、A=~が難しく、MAIN~もその時だけの制限時間なので、INPUTを使っても(たくさん)大丈夫な方法を教えてください。 お二人とも、本当にすみません。

    Yeahs0
    Played
  • TERA(LL)

    2 days ago ·Spoilers

    そひさんの書かれてる通り、MAINCNTを利用すれば、大丈夫と思います。 (時間の長さは任意に調整)

    Yeahs0
    Played
  • そひ

    2 days ago ·Spoilers

    ん~ INPUTから強制的に抜け出したいって事なのかな。 INPUTは 永久ループ⇒文字入力処理 という処理を呼び出すだけの命令と思われるので INPUTみたいな文字入力出来るモノを自作しない事には 多分 強制的に抜けるのは無理です。方法があったら知識として自分も知りたいかも。 INPUT中も時間経過するってだけなら MAINCNT一択かな 多分。 先に書いた通りシステム変数で 命令に左右されず内部で勝手に数値が書き換わってるので INPUTの直前に 変数1=MAINCNT(INPUTを開始した時間) INPUTの直後に 変数2=MAINCNT-変数1(現在の時間-開始時間) INPUT中の経過時間が出るので 経過時間カウント変数に加算して終了…だと思う。

    Yeahs0
    Played
  • TERA(LL)

    2 days ago ·Spoilers

    あ~、INPUTで待ってる間も、MAINCNTは進んでいるので、INPUT直後に規定時間過ぎてたら「何らかの処理」は出来ますが、INPUT待ち中に「時間なのでそこで強制終了」ってのはできないと思います。 (プチコンでは、割り込み処理は、でき無かったかと。)

    Yeahs0
    Played
  • そひ

    2 days ago ·Spoilers

    あれ 変な事教えたかも。 INPUTの経過時間を出しても同じ事か。

    Yeahs0
    Played
  • そひ

    2 days ago ·Spoilers

    あ 良いのか。 AのカウントがINPUTで止まるから 止まった分を加算してんだよな。 数値関係には特に弱いので ちと混乱してしまった。

    Yeahs0
    Played
  • TERA(LL)

    2 days ago ·Spoilers

    まぁ、視覚だけで良いのであれば、INPUT待ち中でもSPANIMは動いてるので、カウントダウン的な事は可能かと・・・ (画像はその一例)

    Yeahs0
    Played
  • そひ

    2 days ago ·Spoilers

    プログラムから察するに 文字は不要で 数値入力だけして欲しい感じのものなのかな。だとすると 簡易INPUTを自作するってのも手かな。 INPUTを細分化すると 永久ループ  タッチ座標を取得  タッチ座標が 文字座標内なら 文字を取得(※)  表示する為の文字ならPRINT  エンターの座標をタッチしたらループ脱出 数値だけが欲しい場合 ※の部分は 0~9 エンター バックスペース の12個のみ。 タッチでの作成がめんどい/意味不な様なら キー入力で DQの名前入力みたいなのとか。カーソル位置変数がどこどこなら 1とか2って感じのね。 すでにIFで変数判定してる様だし そう時間はかからずに作れるかも。自作しちゃえば 入力途中で強制脱出ってのも組み込めるね。

    Yeahs0
    Played
  • シュナ

    2 days ago ·Spoilers

    横から失礼。 Takumiさんが作成しようとしているのって 制限時間内に 足し算問題を 何個答えられるか? というプログラムでしょうか?(スクショからそう判断した。) だとすれば 多分実装したい仕様として 数値を入力中でも「あと(制限時間が)はんぶんだ」とか表示させたいと思うので INPUTでは無理ですね。 (文字入力でプログラムが止まってしまうため。) そひさんのおっしゃるとおり 自作のINPUTのようなものを作成する必要があります。

    Yeahs0
    Played
  • シュナ

    2 days ago ·Spoilers

    では どうするかというと INKEY$ という命令と INKEY$の中身を常に確認する ループを用意すれば なんとかなりそうです。 あとは 入力された文字が 数値であるかのIF処理と 正解/不正解判断IF処理 制限時間のカウントダウン処理 (カウント変数の増減と 規定カウントでのループ脱出【タイムオーバー】など…)を ループ内に用意して…… ……って考えると 少し大変ですな。

    Yeahs0
    Played
  • GRS

    2 days ago ·Spoilers

    INPUT命令を自作するサンプル INPUT "="、C を INPUT5 "=" OUT C に 置き換えられる 簡易DEF です。 (おまけでカウントダウン表示付) 通常のINPUT命令と違うのは[BS]で消せない。 矢印でカーソル移動できない。 コレらを実装するともう少しDEFが長くなります。 (入力した文字列を操作したり、カーソル位置を移動させるだけですが)

    Yeahs0
    Played
  • Takumi

    2 days ago ·Spoilers

    皆さん、ありがとうございました! 結論として、INPUT中は基本は無理で、自分でつくるか、MAINCLTを工夫してしないと無理ということですね!! 本当にありがとうございました!!

    Yeahs0
    Played
  • Takumi

    2 days ago ·Spoilers

    色々と教えてくださったおれいとして、公開キー[BDX3V8V]の足し算の勉強を公開します。 DLしたら『そうだね!』おしてください!!

    Yeahs1
    Played
  • そひ

    2 days ago ·Spoilers

    あーINKEY$先生が居たか。プチコンだとBUTTONばっかですっかり存在を忘( 計算ゲームの中身を覗いてみた。 動いてるので全然問題ないんだけど 1行ずつ何をしてるのか考えてみるとLVUPに繋がるかも。 コレいらないんじゃね ってのが出て来たり コレ置く場所違うんじゃね ってのが出て来たり。 こういう些細な事で理解を深めておくと 命令自体は解らずとも書く場所だけは解るとか 何かバグが起きた時に どこで起きてるのか見当が付くとか そんな感じに自然となります。 障害物だらけの校庭を全速力で周回。休憩は一切無し。 こういうのに疑問を覚えたり 意外ッ!ゴールはもう1歩先にあったッ!! みたいな事に気づくと1LVUPします。(最初に書いてる通り 動いてるので無理に直す必要はなく 気づく事が重要。)

    Yeahs1
    Played
  • TERA(LL)

    2 days ago ·Spoilers

    プログラム拝見しましたけど、結局制限時間はあきらめたんでしょうか・・・ この内容であれば、INPUTを強制中断しなくても、制限時間内に回答入力が間に合わなかった場合、(正解でも)間違いとして処理すれば、問題ないと思いました。

    Yeahs0
    Played
  • Takumi

    1 day ago ·Spoilers

    今回のことで、 「いらなさそうなもの」や、 「時間がたつと間違い」とできることが分かりました。 ありがとうございました。

    Yeahs0
    Played

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.

Use of Miiverse Details about Miiverse

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.

Violation Type:

Post ID: 3DB-NBL7-DPU-2NLB-G7H-N6N4

Report Violation to Miiverse Administrators

You cannot report posts made automatically by a software title.

Edit Post

Select an action: