制限時間内のキー入力検査

最近、どう書くに投稿できてませんが、common lispも忘れる前に動かしたいです。

ということで、http://ja.doukaku.org/64/ をやってみようとしましたが、なんだか難しい問題というか問題を理解するのが難しかったです。ちょっと自分でまとめてみました。

制限時間内のキー入力検査
ユーザーの入力を検査する関数 InputCheckerを実装する。
引数
第一引数 : timeout時間(秒)
第二引数 : 検査文字列
概要
ユーザからの標準入力と検査文字列を比較し、一致すれば 「OK」、
一致しなければ「NG」を標準出力へ出力する。
ただし、ユーザーの入力がtimeout時間以内に完了しなかった場合は、
比較せず「TIME OUT」を標準出力へ出力する。
仕様
関数実行時に以下のプロンプトを標準出力に表示する。
1. input(ABCDEF) =>
ユーザの入力が完了したら結果を標準出力に表示する。
timeout時間以内に検査文字列が入力された場合
1. result => OK
timeout時間以内に検査文字列以外が入力された場合
2. result => NG
timeout時間以内に入力が完了しなかった場合
3. result => TIME OUT
ユーザーが入力を開始した時、入力時間が開始したものとする。
ユーザーがENTER キーを入力した時、ユーザー入力が完了したものとする。
ユーザーが入力を開始してからtimeout時間を経過しても、ユーザの入力が完
了するまでは、完了を待ち続けるものとする。
以下の出力結果を貼り付ける。
InputChecker(5, "ABCDEF") を3回連続実行する。
1回目 5秒以内に"ABCDEF"を入力しEnterキーを押す。
2回目 5秒以内に"AAAAAA"を入力しEnterキーを押す。
3回目 5秒以上かけて"ABCDEF"を入力しEnterキーを押す。

まとめてみて、ようやくわかってきたんですが、出力例の部分各行の頭の数字はどう理解すればよいのか。

1. input(ABCDEF) =>ABCDEF<ENTER>

1. result => OK

2. result => NG

3. result => TIME OUT

制限時間内のキー入力検査

問題は1回しか表示されないということかな?「result =>」の前の数字はパターンを表してるだけなのか?

とにかくcommon lispで書いてみよう、明日。自前curses wrapperか、cl-cursesかを使う必要があるかもしれない。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください