前提・実現したいこと
Pythonで作ったhit&blowゲームのblowを正常に動かしたい
Pythonを勉強中でhit&blowゲームを作成しましたが、hitしか動かず、blowが作動していません・・・。
発生している問題・エラーメッセージ
8030 数を入力してね:0308 ヒット0 ブロー0 数を入力してね:0000 ヒット2 ブロー0 数を入力してね: 4桁の数字を入力してください 数を入力してね: 4桁の数字を入力してください 数を入力してね: 4桁の数字を入力してください 数を入力してね:8030 ヒット4 ブロー0 当たり!
該当のソースコード
#Python3
import random
ランダムで生成される4桁の数字を生成
a = [random.randint(0,9), random.randint(0,9), random.randint(0,9), random.randint(0,9)]
#テストのための答えを表示
print(str(a[0]) + str(a[1]) + str(a[2]) + str(a[3])) while True: isok = False
#isokがFalseの間ループする
while isok == False: b = input("数を入力してね:") if len(b) != 4: print("4桁の数字を入力してください")
#4桁が数字かどうかを判別する(4回繰り返し・・・b[0]~b[3]を確認)
else: kazuok = True for i in range(4): if (b[i] < "0") or (b[i] > "9"): print("数字ではありません") kazuok = False break if kazuok : isok = True
hit = 0 for i in range(4): if a[i] == int(b[i]): hit = hit + 1
blow = 0 for j in range(4): for i in range(4): if (int(b[j]) == a[i]) and (a[i] != int(b[i])) and (a[i] != int(b[j])): blow = blow + 1 break
# ヒット数とブロー数を表示
print("ヒット" + str(hit)) print("ブロー" + str(blow))
# ヒット数が4ならあたりで終了
if hit == 4: print("当たり!") break
Python
試したこと
引数を変えてみたりはしました・・・。
補足情報(FW/ツールのバージョンなど)
Atomで書いてMacのターミナルにコピペしてます。
回答1件
あなたの回答
tips
プレビュー