前提・実現したいこと
プログラミング初心者の質問です。初質問ですがよろしくお願いします。
Python3を始めて数日、HIT&BLOWというゲームのプログラミングをやってみました。
流れとして、
(1).答えのリストに0から9までの数を3つ要素として加える。
(2).プレイヤーの答えのリストに0から9まで3回入力
(3).各要素を比較し、同一であれば'HIT'、順番が異なるがリストに含まれているのであれば’BLOW’、含まれていなければ'OUT'とし、その数を出力する。
(4).'HIT'(hit_count)が3つになれば終了。そうでなければ(2)に戻って入力からやり直し。
を考えて作ってみました。
結果としてはwhile文に突入せず、最終行の出力に飛んでしまう状況です。
何が原因か教えていただけますでしょうか。
また、inputを0~9の整数のみに制限し、それ以外であればやり直しを求める動作にはif文とwhile文で行うしかないのでしょうか?
それとも、何か簡単に行えるモジュール?があるのでしょうか?
回答をよろしくお願いいたします。
該当のソースコード
import random answers = [random.sample(range(0, 9), 3)] answers_len = len(answers) while hit_count == 3: players_answers = [] for player_input in range(answers_len): players_answers = input('プレイヤーが入力') hit_count = 0 blow_count = 0 out_count = 0 for i in range(answers_len): if answers[i] == players_answers[i]: hit_count += 1 elif players_answers[i] in answers: blow_count += 1 else: out_count += 1 print(hit_count, 'HIT!', blow_count, 'BLOW!', out_count, 'OUT!') print('You won')
Python3
試したこと
while文の中身は正常に作動しました。
hit_count = 0 をwhile文の前においても結果は変わりませんでした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/01 23:01