hit and blowという数当てゲームがある。出題者は0〜9999の範囲の数字を正解として選ぶ。次に、解答者は予想する数字を言う。出題者は同じ桁(位置)に同じ数字があればヒット、桁は違うが同じ数字があればブローとして数え、ヒットとブローの数を答える(3桁以下の数字は頭に0が付いているものとする)。例えば、次のようになる:
正解:1234 予想:1234 → 4ヒット(=クリア)
正解:1234 予想:5678 → 0ヒット0ブロー
正解:1234 予想:1892 → 1ヒット1ブロー
正解:0034 予想:3400 → 0ヒット4ブロー
正解:1222 予想:1234 → 2ヒット0ブロー(ヒットはブローより優先して判定する)
正解:1112 予想:1221 → 1ヒット2ブロー
このゲームを3回に分けて作ってみよう。まず、コンピュータは正解となる4つの数字をランダムに選ぶ(同じ数字を何回使ってもよいし、0で始まってもよい)。次に、プレイヤーに4桁の数字を入力させる。そして、ヒットの数を数え、表示するプログラムを作成せよ。
実行例
4桁の数字を入力: 1234
target = 9834
2 hit
ヒント:正解の数字は、4桁の数字を別々に選ぶのでよい。後の判定のために配列に格納しておくと都合が良い。
プレイヤーの入力する数字は整数値で入力させ、No.87と同じ方法で各桁の数字を取り出して、別の配列に格納しておく。この時、逆順に(1の位から)数字を取り出せば、最初の桁が0であってもうまくいく。
入力値の各桁の数字が取り出せたら、各桁の数字を比較して一致している個数をカウントすればよい。