モールス信号(英文字入力)
説明
キーボードから普通に英小文字を入力するとモールス符号に変換して音を鳴らし同時に画面にも出力します。
なおモールス符号については以下を参照してください。
Studioで試す
以下のリンクから Jasmine Tea でこのサンプルプログラムを Studio 画面で開いて実際に試すことができます。プログラムを実行したいときは、エディターの右下にある青色の「実行」ボタンを押してください。
プログラム
// モールス信号(英文字入力)
a@=[]
mcode@=[]
for i=0 to 25
read a@[i],mcode@[i]
next
cls
do
k$=inkey$()
for i=0 to 25
if k$=a@[i] then
print k$;" : ";
for j=0 to len(mcode@[i])-1
b$=mid$(mcode@[i],j,1)
print b$;
if b$="o" then
beep 1,2000,250
pause 250
end if
if b$="-" then
beep 1,2000,450
pause 450
end if
next
print
end if
next
loop
// モールス符号
data a,o-
data b,-ooo
data c,-o-o
data d,-oo
data e,o
data f,oo-o
data g,--o
data h,oooo
data i,oo
data j,o---
data k,-o-
data l,o-oo
data m,--
data n,-o
data o,---
data p,o--o
data q,--o-
data r,o-o
data s,ooo
data t,-
data u,oo-
data v,ooo-
data w,o--
data x,-oo-
data y,-o--
data z,--oo
解説
2行目で入力されたキーに対応する文字を入れる配列を用意しています。dataで用意されているアルファベット以外に対応する場合に備えて配列として用意する仕組みにしてあります。英文字のみであれば入力されたキーのコードから対応するモールス符号を算出すればよいので、この配列は不要です。
3行目でモールス符号を示す文字列を入れる配列を用意しています。モールス符号データは41行目以降で定義してあります。符号内容はoがトン、で-がツーに対応しています。文字列を変更する、追加するだけで様々な文字に対応できます。
4〜6行目でモールス符号データを配列に読み込んでいます。
7行目で画面を消去しています。
8〜26行が繰り返し(メインループ)になります。
9行目で入力されたキーを変数k$に入れます。
10行目からのforで入力されたキーと配列a$に設定されている文字が一致するか総当たりで調べています。
12行目からは入力された文字に対応するモールス符号があった場合の処理です。入力された文字を画面に表示します。
13行目からがモールス符号に対応したデータを音と顔面に出力する部分です。
14行目でモールス符号となる1文字を読み出します。
16〜19行目ではトンに当たる処理です。音を鳴らしたらpauseを使って一定時間待ちます。
20〜23行目ではツーに当たる処理です。音を鳴らしたらpauseを使って一定時間待ちます。