バッチファイル(オセロ008_テスト)
■正しく動くかのテスト。
結果表示までできたので、いくつか項目をあげてみてテストをした。
思いつくもので下の項目をやってみた。
ちゃんとやるなら、これらの項目に期待される結果とかカテゴリーとか正常系、異常系とかつけてやるんだろうけど、ざっとした感じで。
- バッチファイルを実行する。
- バッチファイルに引数をつけて実行する。
- 相手の石を挟める場所へ石を置く。
- 相手の石を挟めない場所へ石を置く。
- 既に石が置いてある場所へ石を置く。
- フィールド外へ石を置く。
- 石の場所としてpassを入力する。
- 石の場所としてpassを入力した後、さらに相手もpassと入力する。
- 石の場所としてpassを入力した後、相手は石を置く。
- 石の場所としてスペースを入力する。
- 石の場所として入力なしとする(そのままEnterを押す)。
- 上方向の石の処理を確認する。
- 右上方向の石の処理を確認する。
- 右方向の石の処理を確認する。
- 右下方向の石の処理を確認する。
- 下方向の石の処理を確認する。
- 左下方向の石の処理を確認する。
- 左方向の石の処理を確認する。
- 左上方向の石の処理を確認する。
- 複数の石を挟んだ状態を確認する。
- フィールドのすべてに石を置いた状態を確認する。
- 白の数が黒の数より多い状態で結果表示する。
- 黒の数が白の数より多い状態で結果表示する。
- 黒と白の数が同じ状態で結果表示する。
10番目のスペース入力したときに、エラーとなって中断してしまったので、いろいろと試して、下のコードを追加し、さらにpositionの変数を"で囲んだ。
下のコードは、入力の前と後ろのスペースを消す処理。
"で囲むと変数にスペースが入っている場合でも処理してくれるよう。
:TRIM if "%position:~0,1%"==" " ( SET position=%position:~1% GOTO TRIM ) if "%position:~-1%"==" " ( SET position=%position:~0,-1% GOTO TRIM ) if "%position:~0,1%"==" " ( SET position=%position:~1% GOTO TRIM ) if "%position:~-1%"==" " ( SET position=%position:~0,-1% GOTO TRIM )
21番目もうまく動作したなかったので、turnchangeflagなどのフラグの数値を一部修正して、上の24項目はクリアした。
「最大 setlocal 再帰レベルに到達しました。」の文字は、setlocal enabledelayedexpansionの宣言を一度だけにしたら消えてくれた。
ひととおり動くようになったので、次はプラスアルファとして出力について考えてみる。