- 微修正
- 部屋処理の試験的な実装
改めて正式に変更点を記載します。
- 結構いじりました。
- アカウント情報は
users.datに保存されます。1行ごとにユーザ名,パスワードのハッシュ値という形式で保存しています。 - 登録できるユーザ名は半角英数と下線のみ。既存アカウントとのユーザ名の重複は不可。これを、アカウント新規登録時にチェックする機能もつけました。
users.datには、とりあえず次のアカウントの情報を突っ込んであります。必要であれば、動かすときに使ってみてください。- ユーザ名: qb1、パスワード: test1
- ユーザ名: qb2、パスワード: test2
- ユーザ名: qb3、パスワード: test3
Usersクラスのauthenticate()メソッドは、authenticate()メソッドの内部でnameとpasswordを訊く形にして、引数は廃止してみました。差し支えがあれば元に戻します。- アカウントを削除する
deleteUser()メソッドは、users.datを一度削除してから、削除されたアカウントを抜きにして他のユーザの認証情報を書き込み直す、という暴挙に出ることで実装を成し遂げました。 - パスワード入力時に、パスワードを非表示にする方法は、
System.console()を使う方法であれば可能みたいです。本体に組み込むのは挫折しましたが、参考までにPassSample.javaも載せておきます。
- いきなりアカウント新規作成やログインを求めるのではなく、まず「どうしたいか」を尋ねる対話型のメニューを作りました。
- 終了メニューも作ってありますが、
GenericTerminal側から終了を選ぶと、何も出力されずにコマンドラインが虚空になります(終了させたかった)。