制限時間内のキー入力検査
2007/10/02
最近、どう書くに投稿できてませんが、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かを使う必要があるかもしれない。