投稿
しゆう PIITYANO5
僕は毎日OSのメンテナンスをしています。 そこで、 写真のようなプログラムを作りました。 でも全く機能してくれません… 誰か教えて下さい…
3そうだね
プレイ済み
返信[1]
親投稿
うーん・・・実行結果は悪くないかと思われますが、それよりもあまりスッキリとしないプログラムに見えますね・・・ まず2行目はA=VAL(MID$(TIME$,0,2))で一括りに出来ますし 5行目も@Aに飛ぶのではなく@OPENに直接飛ばせますし、そうなると@Bも不要になります。 あと22行目からは行数の確保か何かでしょうか。LOCATE x,yで直接場所指定出来ますのでそこも不要になるかと。 工夫次第でプログラムはシェイプアップ、ひいてはスリム化による高速化も可能となります。
0そうだね
プレイ済み
返信[2]
親投稿
しゆう PIITYANO5
ありがとうございます。 ですが、@Aと@Bが逆なだけでした! 今は正常に動いてます! もうひとつ質問いいですか? 随時時間が更新される時計って、 どうすれば作れますか?
0そうだね
プレイ済み
返信[3]
親投稿
しゆう PIITYANO5
書き忘れました! Bボタンを押したら、 ホーム画面に戻るようにもしたいです。
0そうだね
プレイ済み
返信[4]
親投稿
まず随時時間が更新される表示方法ですが、 IF TIME$!=T$ THEN LOCATE 0,0:PRINT TIME$:T$=TIME$ 極端な書き方ですが「TIME$とT$を比較して変わっている(時間が経過している)ならTIME$を表示して新たにT$にTIME$をセットする」というプログラムです。 随時なら毎回TIME$を書いてしまうというのもあるっちゃありますが、表示しつづけるのは速度が重くなりますし効率も悪いので。
1そうだね
プレイ済み
返信[5]
親投稿
十字キー、ボタンに関する関数はBUTTON()です。 Bボタンはビットコードで100000(1が押した、0が押してないを表します。右から数えて6番目がBボタンの位置。例えば100001でBと上(上は右から数えて1番目)を同時に押しているという事に)32を返します。PRINT &B100000 と入力して実行すると32と返ってきますよ。 本題に戻りますが、 B=BUTTON() IF B==32 THEN @HOME こんな感じで指定されたボタンを押せばそこへ飛ばす事が出来ます。 ただしBEEPなどを入れて間髪入れずに連打状態にしているとフリーズするので今の段階ではオススメできません(私もチェック用に入れてたらフリーズ起こしたことがあります)。
0そうだね
プレイ済み
返信[6]
親投稿
しゆう PIITYANO5
ありがとうございます! 助かりました。 この技術を使用したOSを、 本日15:00から公開致します。 お楽しみに!
0そうだね
プレイ済み
返信[7]
親投稿
頑張れー
0そうだね
プレイ済み
返信[8]
親投稿
けい kei0baisoku
あ、逆なのは既に気付かれたようですがもう一つ。 5行目の判定ですと「6:00~7:59」がメンテナンス中の判定になると思うのですが、意図と違うのではないでしょうか?
0そうだね
プレイ済み
返信[9]
親投稿
しゆう PIITYANO5
けいs»6:00より大きい。7:00より小さいという風になってますが。
0そうだね
プレイ済み
返信[10]
親投稿
しゆう PIITYANO5
みけらんジェロさん»随時更新されません!!!
0そうだね
プレイ済み
返信[11]
親投稿
一度更新しただけではダメですよ。何度も更新しないと。 例えばボタンを押すまで待ち続ける所に追加するとか。
0そうだね
プレイ済み
返信[12]
親投稿
けい kei0baisoku
あ、私の勘違いでしたらすみません。 7:59に実行すると、Aには何が入りますか?私は7が入るように見えたので。
0そうだね
プレイ済み