2013-05-06 5 views
0

클래스를 사용하여 실행하는 블랙 잭 게임을 만들려고합니다. 나는 성공적으로 그때 갑판을 받아 다음을 섞어 클래스를 만들어 그것이 내가이 클래스는 올바른이라고 생각뿐이다 (I를 다루는 카드클래스가있는 검은 색 잭

class Card(object): 
    def __init__(self,suit,number): 
     self.suit=suit 
     self.number=number 

위한 클래스를 만들었 생각 나는 매우 때문에 교사로부터 직접 질문을 삽입 OK 희망, 나는 다음 플레이어의 클래스를 생성

class DeckofCards(object): 
    def __init__(self,deck): 
     self.deck=deck 
     self.shuffledeck=self.shuffle() 
     print(self.shuffledeck) 
    def shuffle(self): 
     b=[] 
     count=0 
     while count<len(self.deck): 
      a=randrange(0,len(self.deck)) 
      if a not in b: 
       b.append(self.deck[a]) 
       count+=1 
     return(b) 
    def deal(self): 
     if len(self.shuffledeck)>0: 
      return(self.shuffledeck.pop(0)) #removes the card from the deck and deals it 
     else: 
      shuffle(self) 
      return(self.shuffledeck.pop(0)) 

) 거래 기능에 대한 약간 확실하지 오전 일들이 나를 혼란스럽게 시작하는 곳이다 모호하고 혼란 스럽습니다.

클래스 플레이어 (객체) :

"" "내가 딜러에 대해 별도의 클래스를 만들었을 수도 있지만,이 클래스는 게임에서 플레이어입니다 (A 딜러가 플레이어로 간주됩니다.) 생성자는 플레이어의 이름, 손 (처음에는 빈 목록), 부울 값 inout, "in"임을 나타내는 True로 초기화 된 의 6 가지 속성과 부울 값 블랙 잭, False로 초기화됩니다 (플레이어가 블랙 잭을 가지고 있지 않음을 나타냄), 정수 머니,플레이어가 가지고있는 총 금액을 나타내는점수, 은 0으로 초기화되고, 0으로 초기화 된 정수 입찰가는 플레이어의 현재 입찰가를 유지합니다.

이 전체 방향, here

난 그냥 몇 가지 방향을 찾고 찾을 수 있습니다 내 시도

class Player(object): 
    def __init__(self,name,hand,inout,money,score): 
     self.name=name 
     self.hand=hand 
     self.inout=inout 
     self.money=money 
     self.score=score 
     self.blackjack=self.blackjacksearch() 
    def blackjacksearch(self): #not sure if any of this works 
     if Card('H','J') in self.hand: 
      return(False) 
     if Card('S','J') in self.hand: 
      return(False) 
     if Card('C','J') in self.hand: 
      return(False) 
     if Card('D','J') in self.hand: 
      return(False) 
     else: 
      return(True) 

이었다 나는 우둔이고 우리 교수에 매우 도움이되지 않았기 때문에 모든.

답변

0

플레이어가 항상 자신의 손에 대해 빈 목록으로 시작한다고 가정 할 때 블랙 잭 검색을 할 필요가 없습니다. 블랙 잭 검색은 항상 없으며 (항상 false), 항상 'in'(True)입니다. 그들은 0 점과 0 점을 가질 것입니다.

교수님이 '생성자에 6 개의 속성이 있습니다'라는 말은 '생성자가 6 개의 매개 변수를 가져야합니다'라는 뜻이 아닙니다. 파이썬에서는 클래스가 가져야하는 변수를 선언하는 것과 같은 것이 없으므로 그것이 디폴트 값이 될지라도 생성자에서 이들을 설정하십시오. 나는 생성자에게만 이름을 전달할 것이고 Player의 나머지 속성은 메소드에 의해 변경 될 수있다. (그것은 하나의 유효한 상태에서 다른 상태로 이동하고 모든 부작용을 처리하는 것이 허용된다.)