第71話 日記と、鍵と、秘密のパスワード
「私、日記をつけてみたい」
マイラがそうおねだりしてきた。
「いいんじゃないの。文字の勉強にもなるし」
「それでね、鍵付きの日記帳が欲しいな。私以外誰にも開けられないのがいい」
「ええと魔道具で鍵を作れって事?」
「うん」
うーん、物理に干渉するのはやれない事はない。
力場を操れば良いんだから。
鍵はパスワードで開けるとすればできる。
こんなんでどうだ。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
extern void lock_key(void);
extern void unlock_key(void);
void main(int argc,char *argv[])
{
char str[100]; /*入力する文字列*/
lock_key(); /*初期状態はロック*/
while(1){ /*無限ループ*/
scanf("%s",str); /*パスワード入力*/
if(strcmp(str, argv[1])==0){ /*パスワードが正しければ*/
unlock_key(); /*ロック解除*/
}
else{ /*パスワードが違っていれば*/
lock_key(); /*鍵をロック*/
}
}
}
魔道具を起動した時に指定したパスワードでしか開かない。
問題は魔道具の動作を止められた場合だ。
再起動すればパスワードが変えられる。
『if(strcmp(str, argv[1])==0){』の行を『if(strcmp(str, "パスワード")==0){』とすべきかな。
これだとパスワード固定だけれど。
魔道具を止めても鍵が閉まった状態を維持できる。
あと問題は鍵の機構だ。
ブラックボックスみたいに封をしても良いが、魔法で外部から力場で力を掛けると解除されてしまう。
この辺は職人の腕の見せ所だ。
解除の方法は俺と職人しか知らなければ、要件を満たす。
ロックと解除をこうするとさらに効果的だ。
void lock_key(void)
{
lock_key1(); /*鍵1をロック*/
lock_key2(); /*鍵2をロック*/
lock_key3(); /*鍵3をロック*/
}
void unlock_key(void)
{
unlock_key1(); /*鍵1を解除*/
unlock_key2(); /*鍵2を解除*/
unlock_key3(); /*鍵3を解除*/
}
鍵が三つあれば、ブラックボックスの中を透視しない限り、どの鍵を解除して、どの鍵を解除しなかったか、分からなくなる。
要するにごちゃごちゃいじっていると、一つの鍵を解除しても、二つ目を解除する時に、間違って一つ目を掛けてしまうなどという事になる。
「マイラ、魔法が出来たよ」
「ほんとう? どうやって開けるの?」
「パスワードで開けるんだ」
「えー、タイトはそれを知ってるのよね」
「まあな、作った本人だから」
「じゃ、駄目」
「何でだよ。俺が作ったんだから、どうしようもない」
「駄目なものは駄目!」
なぜかマイラは必死だ。
「じゃあ、紙にパスワードを書いてよ。俺は目隠しして見ないから」
「本当?」
「嘘は言わないよ」
目では見ないよ。
魔法で見るけどね。
俺が目隠しするとマイラが紙にパスワードを書く。
俺は魔法を発動して見てしまった。
紙には『タイト大好き』と書かれていた。
「あー、見たでしょ。顔が赤い」
「見てないよ」
「もう良いわよ。どうせ見る気になれば、日記の中も覗けるんでしょ」
「出来るか、出来ないかで言ったら出来る」
「透視魔法は絶対禁止だからね」
「ああ、作らない」
「ほんと、絶対、絶対だからね」
「ああ、プログラムの神に誓う」
「聞いた事のない神様ね」
「俺の信奉している神様だ」
職人に鍵穴のない鍵を作って貰った。
設計図を見て、力場での鍵の開け閉めをイメージして魔道具を作る。
マイラの日記帳が出来上がった。
パスワードが『タイト大好き』なのは秘密だ。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます