﻿○システム名
  ヒットアンドブロー

○システム説明
  Playerにゲームを行う桁数を決めてもらう
  コンピュータが数字を選ぶ
  Playerに当てる数字を入力してもらう
  入力した数値のエラーチェック（桁数、重複など）
  正誤チェック（xHit: yBlow）
  すべてHitになるまで、当てる数字を入力してもらう

○納品物
  作成したプログラム
  設計書

○早く終わったら・・・・
  CUI_BlackJackを作成してください

〇設計書
プログラミングの各段階ごとに処理詳細シートに追記する。
印刷を意識し、印刷プレビューや罫線も意識して作成すること。

〇プログラミング
1段階目（問題作成）
4桁のランダムな数字を表示させる。必ず4桁なので先頭0もOK。ただし、数字が重複しないこと。
＜実行例＞
0683

2段階目（回答妥当性チェック）
4桁のランダムな数字を表示させた後、キーボードから数字を入力させ、
以下のチェックを行う。エラーがあればエラーメッセージを表示し、再度入力させる。
・桁数が4桁か
　NGの場合のエラーメッセージ「桁数に過ちがあります」
・全部半角数字か
　NGの場合のエラーメッセージ「数値ではありません」
・重複している数字がないか
　NGの場合のエラーメッセージ「重複している値があります」
＜実行例＞
0683	←コンピュータが選んだランダムな4桁
12345	←4桁以外を入力
桁数に過ちがあります
123A	←半角数字以外を入力
数値ではありません
1233	←重複する数字を入力
重複している値があります
1234	←重複しない4桁の数字を入力

3段階目（Hit判定）
1段階目を使って4桁のランダムな数字を表示させる。
その後2段階目を使って4桁の重複しない数字を入力させる。
ランダムな数字と入力した数字でHitを数え、以下を表示する
　入力した数字 ( ?Hit)　　例：1234 ( 1Hit)
＜実行例＞
0283			←コンピュータが選んだランダムな4桁
1234			←重複しない4桁の数字を入力
1234 ( 1Hit)		←Hitを表示

4段階目（HitとBlow判定）
1段階目を使って4桁のランダムな数字を表示させる。
その後2段階目を使って4桁の重複しない数字を入力させる。
ランダムな数字と入力した数字でHitとBlowを数え、以下を表示する
　入力した数字 ( ?Hit: ?Blow)　　例：1234 ( 1Hit: 1Blow)
＜実行例＞
0283			←コンピュータが選んだランダムな4桁
1234			←重複しない4桁の数字を入力
1234 ( 1Hit: 1Blow)	←HitとBlowを表示

5段階目（正解するまで繰り返し）
以下の手順で4桁限定のHitAndBlowを完成させる。
1段階目で4桁のランダムの数字を作成するがそれを表示しないように変更する。
4Hitになるまで以下の処理を繰り返す。
・何回目の回答かを表示する
・2段階目を使って4桁の重複しない数字を入力させる
・HitとBlowを数え表示する
＜実行例＞
1回目の回答
2974
2974 ( 0Hit: 1Blow)
2回目の回答
7639
7639 ( 0Hit: 1Blow)
3回目の回答
5780
5780 ( 1Hit: 0Blow)
4回目の回答
5143
5143 ( 0Hit: 3Blow)
5回目の回答
4381
4381 ( 0Hit: 3Blow)
6回目の回答
3410
6回でクリア

6段階目（桁数指定）
5段階目の先頭に桁数を入力させる処理を追加する。
桁数が1～9以外であれば再入力させ、1～9であればその桁数でHitAndBlowを実行するように変更する。
＜実行例＞
何桁の数字で開始しますか？（1 ～ 9)
10
正しい数値を入力してください
3
1回目の回答
264
264 ( 0Hit: 1Blow)
2回目の回答
703
703 ( 0Hit: 0Blow)
3回目の回答
485
485 ( 0Hit: 1Blow)
4回目の回答
914
914 ( 0Hit: 1Blow)
5回目の回答
892
892 ( 1Hit: 0Blow)
6回目の回答
596
6回でクリア


○＜以下、時間が余った人向け＞

7段階目（アニメーション）
「コンピュータが数字を選んでいます。。。。」のアニメーションを実装する。
＜実行例＞
何桁の数字で開始しますか？（1 ～ 9)
3
コンピュータが数字を選んでいます。。。。
1回目の回答
264
264 ( 0Hit: 1Blow)
2回目の回答
703
703 ( 0Hit: 0Blow)
3回目の回答
485
485 ( 0Hit: 1Blow)
4回目の回答
914
914 ( 0Hit: 1Blow)
5回目の回答
892
892 ( 1Hit: 0Blow)
6回目の回答
596
6回でクリア
