2012-09-28 2 views
1

문 '가'무시하는 것 같다 내가 갇혀있을 것 같다, 내 코드는 다음과 같다 :파이썬 블랙 잭 게임, 내가 파이썬에서 간단한 블랙 잭 게임을 만들기 위해 노력했습니다

from random import choice 

def deck(): 
    cards = range(1, 12) 
    return choice(cards) 

def diack(): 
    card1= deck() 
    card2 = deck() 
    hand = card1 + card2 
    print hand 
    if hand < 21: 
     print raw_input("Would you like to hit or stand?") 
     if "hit": 
      return hand + deck() 
     elif "stand": 
      return hand 

때 I을 그것이 "히트"를 위해 일하는 것처럼 보이지만 "stand"를 타이핑 할 때 "hit"하는 것처럼 보인다. 당신은 아마 지금까지 말할 수 있듯이 프로그래밍에 새로운 경험이 있습니다. 내 게임을 어떻게 만드는지 올바른 방향으로 안내해 줄 수 있겠습니까 (가능한 한 많은 코드를 사용하고 싶습니다).

print raw_input("Would you like to hit or stand?") 
if "hit": 
    return hand + deck() 
elif "stand": 
    return hand 

귀하의 if 단지 문자열 "hit" 사실 여부를 확인하고 있습니다 :

+0

이 단지 당신에게 들여 쓰기 오류를 줄 것입니다, 두 번째'if'이 print''에서 들여 쓰기 때문에, 이것은 제어 명령문이 아닙니다. 실제 코드를 게시하십시오. – abarnert

답변

5

if "hit" 문자열이 "hit" 인 지 여부 만 테스트하면됩니다. 따라서 elif 문은 절대로 실행되지 않습니다.

당신은 대신에 변수 테스트에서 사용자 입력을 캡처해야합니다

choice = raw_input("Would you like to hit or stand?") 
print choice 
if choice == "hit": 
    return hand + deck() 
elif choice == "stand": 
    return hand 
+0

정말 고마워요! 내가 뭘 잘못하고 있는지, 정말 고마워. – iamtesla

4

당신이 들여 쓰기 권한을 얻을 가정. 비어 있지 않은 문자열은 모두 true이고 "hit"은 비어 있지 않으므로 항상 성공합니다.

cmd = raw_input("Would you like to hit or stand?") 
if cmd == "hit": 
    return hand + deck() 
elif cmd == "stand": 
    return hand 

지금 당신이 raw_input의 결과가 당신이 원하는 어떤 문자열 "hit"인지 여부를 확인 중입니다 : 당신이 원하는 무엇

이 같은 것입니다.

+0

감사합니다! 지금 일하고있는 것 같습니다. 또 다른 메모에 복사하고 들여 쓰기 maintaing 동안 stackoverflow 코드를 통해 paster? – iamtesla

+0

나는 이맥스를 복사하고, 창에 붙여 넣고,'{}'버튼을 클릭하여 4 칸을 들여 쓰기 할 수 있습니다. – abarnert

관련 문제