a = Blackjack(100,10)
M = a.Me(a.deck)
D = a.Dealer(a.deck)とした時に、MとDの値が常にともに0になります。
MとDは、それぞれの関数内で生成したランダム変数の合計のため、両者が常に0というのは変だと考えています。
なぜこのような結果になるのかわからなかったため、ご質問させて頂きました。
よろしくお願いします。
class Blackjack(object): def __init__(self, poket, bet,deck = [] ): self.poket = poket self.bet = bet self.deck = deck ###ディーラーの行動 def Dealer(self,deck): def Deck(self): for i in range(2): (self.deck).append(random.randint(1,13)) return self.deck def Hit(self):##カードを引く return random.randint(1,13) def Point(self):##手持ちカードの合計を返す s = 0 sorted((self.deck), reverse = True) for i in range(len(self.deck)): if self.deck[i] == 11 or self.deck[i] == 12 or self.deck[i] == 13: s += 10 elif self.deck[i] == 1: s += 11 if s >= 21: s -=10 else: s += self.deck[i] return s def d_Hit_or_stand(self, Point, Hit,deck): if Point <=16: self.deck.append(Hit) else: pass return Point(self) ###自身の行動 def Me(self,deck): def Deck(self): for i in range(2): (self.deck).append(random.randint(1,13)) return self.deck def Hit(self):##カードを引く return random.randint(1,13) def Point(self):##手持ちカードの合計を返す s = 0 sorted((self.deck), reverse = True) for i in range(len(self.deck)): if self.deck[i] == 11 or self.deck[i] == 12 or self.deck[i] == 13: s += 10 elif self.deck[i] == 1: s += 11 if s >= 21: s -=10 else: s += self.deck[i] return s def Me_Hit_or_stand(self,Point,Hit,deck): print("Now My sum of cards are "+ Point + "Decide Hit(input h) or Stand(input s)") if raw_input("h"): (self.deck).append(Hit(self)) else: pass return Point(self) ##勝敗判定と精算 def Judge_and_amount(self,Me,Dealer): if (Me >Dealer) and Me <= 21: print ("I win") poket += 10 if (Me <Dealer) and Dealer <= 21: print ("I lose") poket -= 10 if Me <= 21 and Dealer > 21: print ("l win") poket += 10 if Dealer <= 21 and Me > 21: print("I lose") poket -= 10 else: print("draw") print(self.poket)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/09 07:21
2016/07/11 14:02