파이썬 카드 게임

조회수 855회

문제: 두 명의 친구 A와 B가 카드 뽑기 게임을 하려고 한다. A 부터 카드를 연속해서 뽑는다. 0을 뽑을 경우 A의 카드뽑기는 종료되고, B 카드를 뽑는다. 마찬가지로, 0을 뽑을경우 B의 카드뽑기는 종료되고 해당 라운드는 종료된다. 각 각의 턴에서 뽑은 카드의 총합이 큰 사람이 그 라운드를 이기며, 두 친구 중 2승을 먼저 하는 사람이 나올 경우 카드 뽑기 게임을 종료한다.

[입력 예시1]
1 --> A의 카드셋 뽑기
2
3
0
4 --> B의 카드셋 뽑기
5
6
0
0 --> A의 카드셋 뽑기
0 --> B의 카드셋 뽑기
1 --> A의 카드셋 뽑기
2
3
0 
7 --> B의 카드셋 뽑기
8
6
0
[출력 예시1]
A : 0 win, 2 lose, 1 draw
B : 2 win, 0 lose, 1 draw
t1 = 0
t2 = 0

w1 = 0
w2 = 0
e1 = 0
e2 = 0
v = 0
while True:
    while True:
        a = int(input())
        t1 = t1+ a
        if a == 0:
            break
    while True:
        b = int(input())
        t2 = t2 + b
        if b == 0:
            break
    if t1 == t2:
        v = v+1
    elif t1 > t2:
        w1 = w1+1
        e2 = e2+1
    elif t1 < t2 :
        w2 = w2 + 1
        e1 = e1 + 1
    if w1 == 2 or w2 == 2 :
        break

print("A : %d win, %d lose, %d draw"%(w1,e1,v))
print("B : %d win, %d lose, %d draw"%(w2,e2,v))

이게 제가 짠 코드인데 입력예시 1의 출력이 제대로 안나옵니다. 중간에 끊내버려요. 라운드를 시작할때 0으로 시작하면

if a== 0 : 
   break

때문에 그냥 끝내는 것 같아요. 이 부분을 어떻게 수정해야하나요..ㅠ

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • while 문 시작할떄 t1 t2 를 0 으로 초기화해주세요 김호원 2021.5.21 14:20
  • ㅠㅠ 두번째와 세번째 while문 첫 줄에 넣어봤는데 그럼 아예 while문이 안끝나요ㅠㅠ 알 수 없는 사용자 2021.5.22 10:05
  • if t1 == t2: v = v+1 t1=0 t2=0 elif t1 > t2: w1 = w1+1 e2 = e2+1 t1=0 t2=0 elif t1 < t2 : w2 = w2 + 1 e1 = e1 + 1 t1=0 t2=0 알 수 없는 사용자 2021.5.23 21:06
  • 왜 두번째 세번째 while문에... 첫번째while문에 달아놔야죠 그냥 제가 답글 단건... 게임의 승무패가 가려지면 임시로 저장하고있던 t1 t2 를 초기화하라는거예요 그것만 반영해도 정상적으로 돌아가는뎅 김호원 2021.5.26 15:35

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)