2012-12-15 2 views
1

저는 파이썬에 대해 아주 익숙하고 간단한 응용 프로그램을 계산하는 블랙 잭 카드를 썼습니다. 응용 프로그램이 실행되고 사용자 입력이 끝나면 사용자 입력을 요구하고 카운트를 인쇄합니다. 다시 시작하지 않으려 고 계속 진행하고 싶습니다. 필자는 소스 코드를 포함시켰다. 고마워.사용자가 끝날 때까지 Python 응용 프로그램을 계속 실행하도록 허용

count = 0 

var = int(raw_input("Enter the value of the card: ")) 

if var == 1 : 
     print count + 1 
elif var == 2 : 
     print count + 1 
elif var == 3 : 
     print count + 1 
elif var == 4 : 
     print count + 1 
elif var == 5 : 
     print count + 1 
elif var == 6 : 
     print count + 1 
elif var == 7 : 
     print count + 0 
elif var == 8 : 
     print count + 0 
elif var == 9 : 
     print count + 0 
elif var == 10 : 
     print count - 1 
elif var == 11 : 
     print count - 1 
+0

루프에 대해 배웠습니까? 주변을 둘러보고 예제를 찾으십시오. – JSuar

답변

1

사용자가 입력을 중지 할 때까지 프로그램을 실행하려면 코드를 루프에 넣어야합니다. A while 루프는 대개 루프가 필요한 시간을 미리 알지 못할 때 가장 좋습니다.

count = 0 
while True: # runs forever 
    var = int(raw_input("Enter the value of the card: ")) 

    # if/elif block goes here 

일단 이렇게하면 코드에 논리 오류가 있음을 알 수 있습니다. 현재 매번 if/elif 블록 중 하나에 count + 1 또는 유사 문자를 인쇄하고 있습니다. 그러나이 값은 count을 수정하지 않고 새 값을 직접 인쇄합니다. 생각하고 싶은 것은 if/else 블록에서 count을 직접 수정하여 코드를 변경 한 다음 별도의 단계로 작성하는 것입니다. 당신은 또한 다음과 같이 < 또는 >를 사용하여 조건의 몇 가지를 결합 할 수 있습니다 :

if var < 7: 
     count += 1 
    elif var > 9: 
     count -= 1 

    print count 

선택적으로 반드시 입력 된 값 (예 : 1 ~ 11) 적절하게 확인하는 몇 가지 추가 오류를 추가 할 수 있습니다,하지만 난 ' 명확성을 위해 여기에서 벗어났습니다.

+0

답변 해 주셔서 감사합니다.하지만 카드 계산 방법을 이해하지 못했을 것입니다. 이 때문에 새 코드는 올바른 주체를 따르지 않고 올바른 대답을 제공하지 못합니다. 그러나 어쨌든 고마워. –

+0

오, 나는 카드를 계속 묻는 것을 원하지 않는다. 나는 물어보고 그것을 인쇄하기를 원한다. 당신은 아무것도 모릅니다. –

+0

@KirmaanAboobaker : 음, 내 코드를 사용해 보셨습니까? 나는 그것이 당신이 원하는 것을 정확하게 할 것이라고 생각합니다. 블랙 잭 카드 카운팅의 기본 원칙을 이해하고, 낮은 카드를 볼 때 카운트를 높이고 높은 카드를 볼 때 카운트를 줄이는 것이 내 코드와 같습니다. 또한 항상 카운트를 업데이트 한 다음 각 입력 후에 새 값을 인쇄합니다. 다른 해결책을 원하면 질문에서 원하는 것을 설명해야합니다. 또한 시간이 걸리는 사람들을 모욕하지 않는 것이 도움이 될 것입니다. – Blckknght

관련 문제