15行目のbullCow-cowでなぜbullを導き出せるのかが分かりません。
10行目,13行目の#の説明もあいまいなので間違っていたら教えてくれると嬉しいです。
四桁のランダムな数字を当てるゲームになります。
・引用元・
(問題)http://www.practicepython.org/exercise/2014/07/05/18-cows-and-bulls.html
(コード)https://gist.github.com/JagDecoded/6e973effa2397ffd97b1cb5b9d8a146a
python
1import random 2 3#cow=数字と位置が正しい 4#bull=位置は違うが数字が含まれている 5 6def cowBull_loop(): 7 ask= str(input("enter a four digit number: ")) 8 cow=0 9 bullCow=0 10#---------------------------- 11 for i in range(0,4): 12 if num[i]==ask[i] 13 cow+=1 #位置と数字が正しいときにcow+=1 14#---------------------------- 15 for i in num: 16 if i in ask: 17 bullCow +=1 #askの値が1つでもnumに含まれていればbullCow+=1 18#---------------------------- 19 bull=bullCow-cow #位置と数字が正しい場合もbulCow+1してしまうので、重複しないために-cowをする。 20 print("you have {} cow and {} bulls".format(cow,bull)) 21 return cow 22#---------------------------- 23 24if __name__=='__main__': 25 num= str(random.randrange(1000,9999)) 26 cow= 0 27 count=0 28 while cow !=4: 29 count+=1 30 cow = cowBull_loop()
回答2件
あなたの回答
tips
プレビュー