例の暗号メッセージを生成してみる
説明するのもアレなので省略.最初に見たときに「すぐに作れるよね」と思っていたら,案の定すぐに作って公開した人がいるっぽい.いまさら感がありますがせっかくなので.
動機
- ぱっと作れそうな感じだったので
- 息抜き
目的
- 明確な目的はなし.息抜き
暗号メッセージ?
- 色付きの数字が,その色名(英語)の文字位置にある1文字を表している,というもの(一つの色付き数字が一つのアルファベットに対応する)
カラーネームについて
- navy, teal, lime, aqua, fuchsia, olive, maroon は日本人にはピンとこない(わかりづらい)ので不採用.
- gray と silver も判断に困るのでどちらか一択 → 今回は s と v を使いたいので silver を採用(gray の使用回避).
- 結果的に,f, j, m, q, x, z を含むカラーがないので,これらの文字は暗号化されないことに.それ以外については,上表のオレンジで塗りつぶしたセルの値(とカラー)を使うことにする.
JavaScriptで書いてみる
今回はcanvasを使って描くことに.フォームに入力された文字列から1文字ずつ取り出して,事前に定義した変換(テーブル)ルールに従って出力する.f, j, m, q, x, z, スペースはそのまま出力する.フォントサイズや文字送り幅は適当に設定.
htmlソースはこんな感じでどうでしょう.
<canvas id="cv" width="400" height="100" style="display:none;"></canvas> <form name="myform"> <input type="text" id="inputtext" placeholder="半角英小文字とスペース" pattern="^[a-z\s]+$" title="半角英小文字とスペースを入力してください" size="15" maxlength="15"> <input type="button" value="暗号化" onclick="genImg();"> </form> <div> <img id="out"> <div id="msg"></div> </div>
canvasの描画内容を画像(PNG)として出力させることにした.
(遊んでみたい人向けの注意!上記スクリプトはcanvasタグより後ろに記述 or 読み込むこと.)
結果
感想
- さあ仕事しよう