python
1class Owner: 2 def __init__(self): 3 self.hands = [] 4 5 def draw(self, bj): 6 self.hands.append(bj.pop()) 7 8 def sequence(self, hide=False): 9 s = ''.join(str(cd) for cd in self.hands) 10 return s[:2] + '**' + s[4:] if hide else s 11 12 def point(self): 13 p = sum(cd.point() for cd in self.hands) 14 for cd in self.hands: 15 if cd.rank == 1 and p + 10 <= 21: 16 p += 10 17 return p 18 19 20if __name__ == '__main__': 21 bj = Blackjack(7) 22 own = Owner() 23 own.draw(bj) 24 own.draw(bj) 25 print(own.sequence(), own.point()) # ♥⒌♣A 16
ポイント関数の中で、p = sum(cd.point() for cd in self.hands)がありますが、
繰り返し文でリストからcdを抜きだした後、point()をcdの後ろに付けるのはなぜでしょうか?
試してpoint()を外すと、以下のエラーが表示されました。
TypeError: unsupported operandtype(s) for +: 'int'and 'Card'
リストのself.handsは♥⒌♣Aで♥⒌は数字の5、♣Aは数字の1です。own.draw(bj)で♥⒌と♣Aを引きました。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/06 09:19