Skip to content

Latest commit

 

History

History
39 lines (35 loc) · 1.7 KB

TASK.md

File metadata and controls

39 lines (35 loc) · 1.7 KB

タスク

  • modulo 26

    • 使うひとからは隠蔽する(文字かキーで指定できるようにする)
  • ロータ

    • prototype
    • new メソッドを Result にして、map のチェックなどを追加する
    • substitute メソッドのインターフェースを検討する
    • デフォルト位置を追加
    • 1周したかどうかを返すメソッドを追加
    • 文字列からロータを作るメソッドを追加
    • テストの修正
      • 換字テーブルの対応を、一定の幅にしない
    • 後からオフセットを設定できるAPIにする
      • オフセットはデフォルト実装が発生するようにする
    • オフセットを分離する
      • ロータは回転の状態をしらないようにしたい
    • デフォルト位置はキーで指定するように変更する
  • リフレクタ

    • デフォルト実装をつくっておく
  • プラグボード

    • ペアをキーで指定するように変更する
  • スクランブラー(全体)

    • 小文字アルファベット以外は暗号化せずスルーする仕様にする
    • ascii 文字以外の入力は考慮しない
    • デバッグの痕跡を消す
  • Error の扱いを検討する

  • テストの改善

    • グループ化
    • テストケースの追加
    • リファクタリング

メモ

  • 換字の内部実装では Modulo を使い、ユーザが定義できる部分はEnumで表現したアルファベットのキーを利用するインターフェースにする
    • キーに変更
      • ロータの初期位置
      • プラグボードのペア設定