モールス信号(英文字入力)

説明

キーボードから普通に英小文字を入力するとモールス符号に変換して音を鳴らし同時に画面にも出力します。

なおモールス符号については以下を参照してください。

モールス符号とは - Wikipedia

Studioで試す

以下のリンクから Jasmine Tea でこのサンプルプログラムを Studio 画面で開いて実際に試すことができます。プログラムを実行したいときは、エディターの右下にある青色の「実行」ボタンを押してください。

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を使って一定時間待ちます。