スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | TB(-) | CM(-)

モールス信号変換機 プログラミングのお話

モールス信号変換機のプログラミングに関するお話です。


プログラムに関するお話なので、興味ない方はスルーしていただいて全然構いません(^ ^)ゞ

一応、最後の方にあとがき的なものも書いてあります。

まず、ソースが欲しいという方がいると思いますので、こちらに用意しました。
Visual Studio 2010 C# で開けると思います。

■ Morseクラスを使った、モールス信号再生の仕方
Morseインスタンスを作り、
文字毎にモールス信号情報が入っているMorse.Items(List)を見ながら
音声を順次再生させていくというのが基本方針です。
Morseクラス


1.Morseインスタンスを作る
(引数)inputText:モールス信号に変換したい文字列,isEnglishMode:欧文モールス信号フラグ(false=和文)


2.画面側で音を再生させる


■ Morseクラスのプロパティ構成
Morseクラスで持っている各プロパティの構成と、
主要プロパティの構成に至るまでの大雑把な過程です。

● MorseクラスのメンバItemsの構成
Morseクラス内のItemsプロパティですが、
これは文字列の各文字をモールス符号に変換したものをListとしてもっています(List<SMorseAtom> Items)
構成としては、他のプロパティも含め下表のようになっています。
※ 「␣」は半角スペースを表しています。
Morseクラス
OriginalStringプロパティ みず␣1l␣ほしい
StringForMorseプロパティ ミス゛␣1L␣ホシイ
Itemsプロパティ
(List<SMorseAtom>)
(Index) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
CharForMorse (non) (non) (non) 1 (non) (non) L (non) (non) (non) (non)
MorseCodes ・・-・- _ ---・- _ ・・ ␣|␣ ・---- _ -・--・- _ ・-・・ _ ・-・・-・ ␣|␣ -・・ _ --・-・ _ ・-
Lang Ja Non Ja Non Ja Non Num Non Ja Non En Non Ja Non Ja Non Ja Non Ja
MorseType normal 字間の"間" normal 字間の"間" normal 単語間の"間" normal 字間の"間" normal 字間の"間" normal 字間の"間" normal 単語間の"間" normal 字間の"間" normal 字間の"間" normal

Morseクラスのコンストラクタに変換したい文字列を入れる
(例:var morse = new Morse("みず␣1l␣ほしい", isEnglishMode:false);)
ことで、自動的にMorse.Itemsに値が入るように作りました。
そのMorse.Itemsを見ながら音を再生させているだけです。

● モールス信号へ変換していく手順
モールス信号には符号間、文字間、単語間の"間"(ま)があるので、それらに注意しながら作りました。
"間"についての詳しい説明はこちらのサイト(モールス信号への誘い様)が分かりやすいので、そちらを参照願います。

モールス信号へ変換していく手順なのですが、私は以下のようにしました。
0.入力チェックで変換不可文字を除いたオリジナル文字列を用意
【例:みず␣1l␣ほしい】
1.オリジナル文字列をモールス信号に変換しやすいように加工。
具体的には濁点半濁点の分離、大文字小文字ひらがなカタカナの統一。
【例:ミス゛␣1L␣ホシイ】
2.モールス信号に変換(Itemsに格納)
2-1.各文字をモールス信号に変換
&和文モードのときに英字が入っていたら'('と')'を適宜いれる
&単語間の"間"を入れる
【例:(モールス信号→)ミス゛ | 1(L) | ホシイ】
2-2.文字間の"間"を入れる
【例:(モールス信号→)ミ_ス_゛ | 1_(_L_) | ホ_シ_イ】
3.モールス信号再生
※このとき、符号間の"間"を入れる(例:「・-・-・-」 →「 ・.-.・.-.・.-」)


こんな感じです。

友人向けに軽い気持ちで簡易版モールス信号変換機を作って送ったあと、
何だか完成させたくなってここまでしました。
作っていて、和文中の英字を'('と')'で囲うことや、符号間、文字間、単語間の"間"を入れる必要があると分かり、結構苦労しました。
が、まあ自分でも納得できるとこまで作れたのでよしとしましょうか。
モールス信号へ変換するプログラム作りが目的だったので、
実際に使われているものと異なっている点があったとしても、
実機でモールス信号を使ったことのない自分にはそれに気づくことができませんし。。。

まあ、何かの参考になれば思います。
では。
スポンサーサイト
[ 2015/09/30 23:12 ] プログラミング VB,C# | TB(0) | CM(0)

モールス信号変換機作ってみた(※Windows7のみ対応)

こんにちは!

なんとなくですが、C#でモールス信号変換機を作ってみました。

モールス信号変換機


ダウンロード
※ Windows7 のみ対応
ソースが欲しいという方はこちら

英数字やひらがなカタカナを入力してボタンを押せば、
モールス信号に変換して一音ずつ再生されます。

Windows7のみ対応です。
このアプリでは、パソコン端末のビープ音を出すよう作ってあるのですが、
それがどうやら音を出せないOSがある(「解説」の項)ということなので、
自分で確かめれたWindows7のみ対応とさせていただきます。
これに気づいたのが、「アプリができた!」となった直後。。。
他のOSで、起動・画面表示はできても音声が再生されない、となったとしても非対応OSとして悪しからず。
申し訳ないです (;^_^A

モールス信号に関しては完全に素人なので、
実際に使われているモールス信号と大きな違いがあったとしても
許していただきたいです m(_ _)m
実際のモールス信号に触れたことがないので、
モールス符号の規則にただただ従ってプログラムを組みました。
もし要望があれば対応も検討しますが、
あくまで趣味の範囲で作ったものなので、義務感を持った対応は致しかねます。

また、プログラミングに関するお話は次の日記に書きましたので、興味ある方はご覧ください。

以下、同梱のreadme.txtにも記載していますが、使い方を含む諸事項をここでも記させていただきます。

*** ↓↓↓ ここから引用 ↓↓↓ ***

===============================
◆ 起動方法 ◆
===============================
モールス信号変換機.exeをダブルクリックで開いてください。


===============================
◆ 操作説明 ◆
===============================
【1.入力言語ラジオボタン】
入力言語を選ぶラジオボタンから適切なものを選んでください。
各ラジオボタンの意味は以下の通り
《1:欧文和文自動判定》
テキストボックスに入力された文字が英数字、一部記号のみ → 欧文と判定
英数字以外にひらがな等が入っている → 和文と判定
漢字が混ざっているなど、上記以外のケース → 判定不能
《2:英字のみの入力(欧文)》
欧文モールス信号として扱う。
扱えない文字(ひらがな等)があった場合はエラーメッセージ出力
《3:日本語のみの入力(和文)》
和文モールス信号として扱う。
テキストボックスに英字が入力されていた場合、
和文モールス信号中に英字が入力されたものとみなし、
全角の'('と')'が英字文字列の前後に挿入されます。
※ 入力文字列が全て英字の場合も'('と')'が挿入されます。

【2.文字入力テキストボックス】
テキストボックスに文字を入力して下さい。
入力可能な文字列は「◆ 入力可能文字 ◆」の項を参照して下さい。
なお、テキストボックス中での改行は以下の文字が入力されたものとして
取り扱っています(あくまでアプリの仕様として、です。)
欧文モールスモード → 空白スペース
和文モールスモード → 段落を意味する特殊文字'」'

【3.音の高さテキストボックス】
お好みの音の高さを入力して下さい。
32~32767Hz(ヘルツ)の間で設定できます。
不正値(数値変換不可の場合も含む)の場合、
変換ボタン押下時にデフォルト値(800Hz)に設定されます。
※ 端末音源を使用しています。OSによっては音が再生されない場合があります。

【4.音の長さテキストボックス】
一点のお好みの音の長さを入力して下さい。
1~1000ミリ秒の間で設定できます。
不正値(数値変換不可の場合も含む)の場合、
変換ボタン押下時にデフォルト値(100ミリ秒)に設定されます。
※ 端末音源を使用しています。OSによっては音が再生されない場合があります。
また、音の長さの規則性は以下に準じます。
http://www.benricho.org/symbol/morse.html より
別表第一号 モールス符号(第十二条関係)から
*** ↓↓引用ここから↓↓ ***
一 符号の線及び間隔
1 一線の長さは、三点に等しい。
2 一符号を作る各線又は点の間隔は、一点に等しい。
3 二符号の間隔は、三点に等しい。
4 二語の間隔は、七点に等しい。
*** ↑↑引用ここまで↑↑ ***

【5.変換ボタン】
文字入力後、変換ボタンを押してください。
変換が上手くいった場合、
右側のテキストボックスに変換後のモールス信号と発信中の内容が表示され、
音が順次再生されます。
変換に失敗した場合、変換ボタン下のところにエラーメッセージが表示されます。


===============================
◆ 入力可能文字 ◆
===============================
このアプリでは以下の文字が入力可能です。
・欧文モールス信号
英字:A-Z
数字:0-9
記号:. , ? ! - / @ ( ) " "" "(全角半角スペース)
※ 原則、大文字小文字全角半角区別なし(変換ボタン押下時に自動変換)

・和文モールス信号
ひらがな:あ-ん
カタカナ:ア-ン
英字:A-Z
数字:0-9
記号(欧文と共通): . , ? ! - / @ ( ) " "" "(全角半角スペース)
記号(和文のみ) : ヰ ヱ ゛ ゜ ー 、 」 ( )
※ 原則、大文字小文字全角半角区別なし(変換ボタン押下時に自動変換)

入力可能文字かの判別は以下のURLを参照しました。
よろしければ、そちらも参照してください。
・wikipedia より 「モールス符号」のモールス符号欄
https://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%BC%E3%83%AB%E3%82%B9%E7%AC%A6%E5%8F%B7#.E6.AC.A7.E6.96.87.E3.83.A2.E3.83.BC.E3.83.AB.E3.82.B9.E7.AC.A6.E5.8F.B7


===============================
◆ インストール ◆
===============================
インストールは不要です。
削除したい場合は、
モールス信号変換機のフォルダごとexeファイルを削除していただければ結構です。


===============================
◆ 参考・参照URL ◆
===============================
・wikipedia より 「モールス符号」
https://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%BC%E3%83%AB%E3%82%B9%E7%AC%A6%E5%8F%B7
・みんなの知識 ちょっと便利帳 より 「モールス符号 (モールス信号)《一覧》」
http://www.benricho.org/symbol/morse.html


===============================
◆ 免責事項 ◆
===============================
モールス信号変換機.exeおよびソースの二次配布を禁止します。
このソフト動作中に起きました、
何らかのトラブルや損失・損害等につきましては
一切責任を問わないものとします。

また、このアプリはあくまでプログラミングの趣味の範疇で作成されたものであり、
モールス信号に関しては全くの素人であるため、
実際に使用されるモールス信号と著しい違いがあったとしても
その責任は一切負わないものとします。

*** ↑↑↑ 引用 ここまで ↑↑↑ ***


とりあえず、楽しんでいただけたらと思います。

では。
[ 2015/09/30 23:11 ] プログラミング VB,C# | TB(0) | CM(0)

麻雀点数記録装置

こんにちは。


さて、麻雀点数記録装置を作ってみました。

麻雀点数記録装置
(本体ダウンロードは画像をクリックするか、こちら からできます)

麻雀の1半荘分の点数計算を自動で行ってくれるソフトです。
誰がどう上がったかを入力していくだけで、その都度の結果を出して次の戦いへと移っていきます。

得点計算ですが、本体と一緒にダウンロードされる ScoreBook.xls で得点が細かく設定されています。
手元にあった麻雀の本を元に得点を設定してありますが、
地方・ルールによって異なる場合などは ScoreBook.xls を修正して調整願います。


特にこれといったきっかけがあって作った訳ではなく、ただパッと思いついたので、作りました。
需要があるのかどうかは分からないので、欲しい人はどうぞ、といったところでしょうか。

あと、ソースも置いておきます。
ソースのダウンロードは こちら から。
開発言語:C#、開発環境:Microsoft Visual C# 2010 Express
※2017/04/09 追記
ソースをgithubに移動しました。
リンク先へ移動 - [Clone or Download]ボタンクリック - [Download ZIP]ボタンクリック
でソースファイル一式をダウンロードできます。
※追記ここまで


それでは!
[ 2014/08/14 16:11 ] プログラミング VB,C# | TB(0) | CM(0)







上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。