アイコン設定
投稿者さん使い方
掲示板の主旨に反する投稿は掲載されません。掲載の是非は管理者が判断いたします。予めご了承願います。
よしきちさん (7uu8x238)2021/3/14 09:26 (No.71109)削除
なんとかタイマープログラムを作ったのですが、なんかタイマーの秒単位が9以下だと、〔1 : 7〕みたいに、なんか調味料の分量みたいになってしまうんですが…9以下の単位を〔1 : 07〕みたいにするには、どういうふうにプログラムをすればいいのですか。
不破さん (7uucdz3m)2021/3/14 11:03
変数Aの値を画面に表示することをかんがえてみましょう。

次のプログラムを使っていろいろ考えてみます。

 10 A=15
 20 ?A

RUNと実行すると、画面に変数Aの値15が2桁で表示されます。

次に、変数Aの値の値を1桁の数にしてみます。

 10 A=5
 20 ?A

RUNと実行すると、画面に変数Aの値5が1桁で表示されます。

ご質問は、1桁の数の場合、表示を時計のように2桁にして前に[0]をつけるということですね。
これは、表示したい数が1桁の時(つまり10より小さい時)にまず[0]を表示するように次のプログラムにすれば実現できます。

 10 A=5
 15 IF A<10 THEN ?0;
 20 ?A

付け加えたのは15行目です。変数Aの値が10より小さい時に、画面に0を出すだけですが、注意していただきたいのは、最後に[:](セミコロン)が付いていることです。画面表示命令である?の最後にセミコロンがあると、0を表示したあと改行しません。

この考え方で、プログラムを見直してください。
返信
マナヲさん (7u9atqga)2021/2/27 17:36 (No.70074)削除
不破先生
こんにちは。
前回のプログラミング教室に参加した、お友達が作った作品をアップしたところを教えて下さい。
参考にしたいです。
不破さん (7rh750yk)2021/2/27 18:52
ご質問ありがとうございます.
下記ページからご覧いただけます.

https://33gaku.jp/サザンガク動画-on-youtube/
マナヲさん (7u9atqga)2021/2/28 09:57削除
ありがとうございます。
次回までに作品を作って、どこかにアップすることがしゅくだいですか?
不破さん (7uab23dy)2021/2/28 10:30
マナヲさん

次回に宿題を再度説明し、アップ方法も説明します。それまでは、いろいろプログラム作りを楽しんでください。
返信
r
r.oさん (7u6k4ks5)2021/2/25 19:33 (No.69733)
土曜日はありがとうございました

現在レッスン2ステップ7まで行き、書いたプログラムをsaveできるようになり楽しみながら学べているようです。
さて、次回までに行うのはレッスン2の最後までだったでしょうか?
匿名さん (7u6nck00)2021/2/25 21:03
書き込みありがとうございます。
楽しんでいただいているようで、何よりです。

次回までにレッスン2を終えていることを目標にしてもらえればと思います。また、ゲームプログラム等をメールで紹介します。
返信
大井さん (7u3qbllz)2021/2/23 20:55 (No.69436)
プログラムです
1 LED1
2 WAIT60
3 LED0
4 WAIT60
5 GOTO1
6 IF BTN (0)=0 THEN GOTO6
7 LED1
10 A=0
20 CLS:LOCATE 0,0,?A
30 WAIT6:A=A+1
40 GOTO20
返信
大井さん (7u3qbllz)2021/2/23 20:03 (No.69427)削除
タイマープログラムで,ボタンを押すまではLEDが1秒単位で点滅して,ボタンを押したらLEDが
ずっとついていながらタイマーが始まるようにしたいのですが,ボタンを押してもLEDがずっと光らず,タイマーもカウントされません。
LEDがずっと光って,タイマーがカウントされるプログラムはどうやって作るのですか?
不破さん (7rh750yk)2021/2/23 20:24
質問ありがとうございます.
作成中のプログラムリストを書き込んで頂けますか.
返信
Y
Y.Oさん (7tz3jihk)2021/2/20 14:15 (No.69210)
川下りゲームのプログラムを教えて下さい。
不破さん (7l7pvyk0)2021/2/20 17:11
質問ありがとうございます。
川下りゲームは次のプログラムです。
実行(RUN)として、左右のカーソルキーで岩をよけながら川を下ってください。

10 CLS:CLT:X=16
20 K=INKEY()
30 X=X+(K=RIGHT)-(K=LEFT)
40 IF SCR(X,5)!=0 ?TICK():END
50 LC X,5:?"O"
60 LC RND(32),23:?"*"
70 WAIT 3
80 GOTO 20
Y
Y.Oさん (7tz3jihk)2021/2/20 21:16
川下りゲーム出来ました。WAITを変えることにより、ゲームの速さを変えられることも分かりました。ありがとうございました。
Y
Y.Oさん (7tz3jihk)2021/2/20 22:27
コンセントを抜いて別の場所へ移動してプログラムミングの復習をしようとしたら電源が入らなくなりました。直す方法はありますか?
Y
Y.Oさん (7tz3jihk)2021/2/23 13:49
電源が入らなくなった件、IchigoJamへ電源を供給するUSBケーブルを手持ちのUSBケーブルと交換したら、電源が入るようになりました。お騒がせしました。
不破さん (7rh750yk)2021/2/23 20:23
よかったです.USBケーブルが断線しやすく,面倒をおかけします.
返信
小澤さん (7s4fb1na)2021/1/9 08:54 (No.66292)
おはようございます。
お返事遅くなりました。
掲示板は一度ログアウトしないと更新されないのですね(・・;)

1 IF BNT(0)=0 THEN GOTO 1
2 A=0
3 CLS:LOCATE0,0:?A
4 WAIT6:A=A+1
5 IF A<=100 THEN GOTO3
10 BEEP10,40:LED1:WAIT 40:BEEP12,40 LED0:WAIT40:BEEP16,40:LED1:WAIT40
20 BEEP12,40:LED0:WAIT40:BEEP11,40:LED1:WAIT40:BEEP8,120:LED0:WAIT120
30 BEEP11,40:LED1:WAIT40:BEEP10,40:LED0:WAIT40:BEEP11,40:LED1:WAIT40
40 BEEP16,40:LED0:WAIT40:BEEP12,120:LED1:WAIT120:LED1:WAIT120:LED0:
BEEP0,60
55 IF BNT(0)=0 THEN GOTO10
60 END

メロディーの部分は一度に入力したらTOO LONGとなったので
4分割しました。
小澤さん (7s4fb1na)2021/1/9 09:14
修正 BTNがBNTで掲示板のみで、間違えてました。
不破さん (7l7pvyk0)2021/1/9 18:58
プログラムリストの提示,ありがとうございます.
このプログラムでは,10行目〜40行目のメロディを奏でるところではボタンが押されているかどうかの判断がされておらず,演奏が終わった後,55行目でだけボタンの確認をしています.このため,メロディが鳴り終わるまでずっとボタンを押し続ける必要があります.

メロディを演奏している10行目〜40行目の中でもボタンが押されていないかの確認をするようにすればどうでしょうか.
例えば,10行目は次のように分解します.

10 BEEP10,40:LED1:WAIT 40
11 IF BTN(0)=1 THEN GOTO60
12 BEEP12,40 LED0:WAIT40
13 IF BTN(0)=1 THEN GOTO60
14 BEEP16,40:LED1:WAIT40
15 IF BTN(0)=1 THEN GOTO60

同様に20,30,40行目も分解します.
小澤さん (7s4fb1na)2021/1/9 20:33
なるほど!アドバイスありがとうございました!おかげで完成しました!あとでファイルをアップロードしますので。ぜひ見てください。
不破さん (7l7pvyk0)2021/1/10 00:33
素晴らしいです.目的を実現できるプログラムが出来て良かったです.
タイマープログラムが動作する様子を是非教えてください.
返信
小澤さん (7s4fb1na)2021/1/8 18:03 (No.66246)
小澤遼太です。
先日はありがとうございました。

先生から教えていただいたPLAY CDEF…を試しましたが、作りたかったメロディーは#(半音)があったり、1オクターブ高い音があったので、BEEPに数字を入れて音を聴き取りながら完成しました!
そしてLEDもメロディーに合わせて点滅するようにできました!

今度は
このメロディーに
タイマーをプログラムしているのですが、
ボタンを押してもプログラムが終了しません。

レッスンのステップ9-2の
55行目のコマンド
IF BNT(0)=0 THEN GOTO50
のところだと思うのすが、
止めるには何か他にコマンドが必要なのでしょうか?
不破さん (7mpps8ge)2021/1/8 20:18
IchigjJamの音は、あまり正確な音階ではないで、限界がありますね。
音とLEDが同時に制御できてよかったです。

ボタンを押してもプログラムが終了しないとのこと、一緒に考えましょう。
まずは、現在のプログラムリストを教えてもらえませんか。
返信
小澤さん (7s4fb1na)2021/1/4 22:23 (No.66006)
小澤遼太です。
あけましておめでとうございます。

音程を調整し音楽を作ったんですが、その音に合わせてLEDを点滅させたいのですがどうすればいいですか?
点灯しっぱなしはできますが、もう少し動きをつけたいです。
不破さん (7rh750yk)2021/1/4 23:00
質問ありがとうございます.

PLAY命令を使った音の流れの中に,LEDを点滅させる命令を入れると,音を流しながらLEDの点滅をさせることができます.

例えば,「ドレミファソラシ」を鳴らす命令は次のようになります.
 PLAY"CDEFGAB"
これを,「ドレミファ」と鳴ったところでLEDを点灯し,その後「ソラシ」と鳴ってLEDを消灯するのであれば,
 PLAY"CDEF":LED1:PLAY"GAB":LED0
です.試してみてください.
小澤さん (7s4fb1na)2021/1/5 08:51
ありがとうございます。早速試してみます。
不破さん (7mpps8ge)2021/1/5 09:27
また結果を教えて下さい.
返信
小林舵さん (7s11qduf)2021/1/2 13:40 (No.65813)
明けましておめでとうごさいます。
昨年はプログラミングを教えてくれてありがとうございます。
質問です。
時間を計るタイマーではなくて、時刻になったら鳴るとか光るとかのタイマーをつくることはできますか?教えてください。
不破さん (7l7pvyk0)2021/1/2 14:44
質問をありがとう.

通常は時計として動いていて,設定した時刻になったらブザーが鳴ったりLEDが光るものを作りたいということですね.
一緒に考えてみましょう(1歩づつ説明するので長い説明となりますが,簡単です).

まず,通常の時計を作ってみましょう.パソコンなどは,内部にリアルタイムクロックという素子が入っていて,この素子が常に現在の時刻を刻んでいるのですが,IchigoJamにはそのような素子はありません.

でも,wait命令で時間を計ることができるので,これを組み合わせて時計を作る事ができます.

ここで,次の3つの変数を用いる事にします.
 S:秒の値が入っている変数
 M:分の値が入っている変数
 H:時の値が入っている変数

時計の基本は1秒を計測することです.これは
 WAIT60
とすると1秒計測できますね.そして,そのときにSの値を1つ増やします.
BASICで書くと次のようになりますね.

WAIT60:S=S+1

次にS(秒)が60になったらM(分)の値を1つ増やしてS(秒)を0に戻すと分の計測ができますね.
先ほどのプログラムの後ろにこの事をBASICで書くと次のようになりますね.

WAIT60:S=S+1
IF S=60 THEN M=M+1:S=0

さらに,Mの値を増やした時にそのM(分)の値が60になったら,H(時)の値を1つ増やしてM(分)の値を0に戻すと時の計測ができますね.
先ほどのプログラムにこのことを付け足すと,次のようになりますね.

WAIT60:S=S+1
IF S=60 THEN M=M+1:S=0:IF M=60 THEN H=H+1:M=0

最後に,Hの値を増やした時にHの値が24になったら,翌日になるのでHの値を0にする必要があります.そこ事を付け足すと,次のようになります.

WAIT60:S=S+1
IF S=60 THEN M=M+1:S=0:IF M=60 THEN H=H+1:M=0:IF H=24 THEN H=0

以上をまとめると,次のプログラムができあがります.

10 H=23:M=58:S=45
20 CLS:LOCATE 0,0:? H;":";M;":";S
30 WAIT60:S=S+1
40 IF S=60 THEN M=M+1:S=0:IF M=60 THEN H=H+1:M=0:IF H=24 THEN H=0
50 GOTO20

なお,10行目はこのプログラムを動かし始める時刻をセットする行です.
例えば,今が8時15分30秒だったとしたら,
 10 H=8:M=15:S=30
としてください.

まず,このプログラムを理解して,IchigoJamに入力して動かしてみてください.
そのあと,また掲示板で報告してください.次は特定の時刻になったらブザーを鳴らすことにしましょう.

よろしくお願いします.
小林舵さん (7s51vp98)2021/1/5 08:55
返信ありがとうございます。
字面だけ追うと難しそうで、足がすくみますが、挑戦してみます。
不破さん (7mpps8ge)2021/1/5 09:27
是非挑戦してください.どんどん質問をしてください.
返信