뭐가 잘못됐는지 잘 안 된다.. 어케하는지 알려주실 분?
랜덤 숫자가 생성되면 사용자가 맞추고
다시 랜덤숫자 맞추는 거 몇 번 반복해야 됨
제한 횟수 이상 시도해도 못 맞추면 랜덤숫자 while문 탈출해서 for로 가고 다시 그 랜덤숫자 맞추는 while문으로 넘어가는 건 되거든?
근데 정답을 맞추면
정-답!
정-답!
정-답!
이러고 전체 while문 마지막만 반복하고 끝남
지금은 다른 거 추가해서 라운드2라는 말만 반복 함
===========
import random
print("컴퓨터와 함께 하는 랜덤 숫자맞추기 게임입니다~")
tryN=eval(input("게임은 총 몇 번 하실 건가요?"))
print("숫자는 1~15 중에서 생성되고, 한 게임당 맞출 수 있는 기회는 총 4번 주어집니다!")
cnt=0
cnt2=0
W=0
L=0
CN=random.randint(1,15)#랜덤 숫자 범위 지정, 랜덤 수 생성
UN=0
#입력받고 비교
#만약 ~이상/이하이면?
#너무 커/작아
#맞출 때까지 4번 반복
#아래 반복분 tryN만큼 반복
for num in range(0,tryN,1):#게임 반복 횟수
print("라운드{}".format(cnt2+1))
while(CN!=UN):
UN=eval(input("제가 생각한 숫자는 뭘까요?"))
if UN > CN+4:
print("제 생각보다 너무 큰 숫자입니다")
elif UN < CN-4:
print("제 생각보다 너무 작은 숫자입니다")
elif UN > CN:
print("그보다 작습니다")
elif UN < CN:
print("그보다 큽니다")
else:
W=W+1
cnt2=cnt2+1
print("정-답!")
continue
cnt=cnt+1
if cnt%4 == 0:
L=L+1
cnt2=cnt2+1
print("당신은 제한 횟수 내에 맞추지 못했습니다")
break
#한 게임당 도전 횟수 제한
#4 이하만에 맞추면 성공
#4 이상이면 실패
#n번 반복 후 성공 횟수와 실패한 횟수 출력
print("사용자의 성공 횟수는 : {}, 실패 횟수는 : {}입니다.".format(W,L))
if W > L:
print("최종 승자는 사용자!")
elif W == L:
print("최종 승자는 없습니다! 무승부!")
else:
print("최종 승자는 컴퓨터!")
문과가 뭔 생각으로 3학점 마저 채우겠다고 이걸 교양으로 신청했나 싶다ㅠㅠ
중간 대체과제로 프로그래밍도 뭐 하나 해서 제출해야하는데 막막함..
아기참치
ㅋㅋㅋㅋㅋ 이걸 논리 문제라고 해야되나 문법 문제라고 해야 되나 무튼 답은 while(CN!=UN): 여기서 CN이 UN이랑 같을때 처리를 안했어
스리랑카잡화점주인장마흐카뚤룹
아 그랬구나 뭔가 나사하나 빠진 것 같더라니... ㄱㅅㄱㅅ
아기참치
While문에 해당 조건이 참일때 너가 만든 로직이 어떻게 되는지 점검 해봥
스리랑카잡화점주인장마흐카뚤룹
ㅇㅋ 그거 중심으로 봐 볼게 고마워!
ayahyahyah
import random
print("컴퓨터와 함께 하는 랜덤 숫자맞추기 게임입니다~")
tryN=eval(input("게임은 총 몇 번 하실 건가요?"))
print("숫자는 1~15 중에서 생성되고, 한 게임당 맞출 수 있는 기회는 총 4번 주어집니다!")
cnt=0
cnt2=0
W=0
L=0
CN=random.randint(1,15)#랜덤 숫자 범위 지정, 랜덤 수 생성
UN=0
#입력받고 비교
#만약 ~이상/이하이면?
#너무 커/작아
#맞출 때까지 4번 반복
#아래 반복분 tryN만큼 반복
for num in range(0,tryN,1):##게임 반복 횟수
print("라운드{}".format(cnt2 + 1))
while(tryN!=cnt2):
UN=eval(input("제가 생각한 숫자는 뭘까요?"))
if UN > CN+4:
print("제 생각보다 너무 큰 숫자입니다")
elif UN < CN-4:
print("제 생각보다 너무 작은 숫자입니다")
elif UN > CN:
print("그보다 작습니다")
elif UN < CN:
print("그보다 큽니다")
elif UN == CN:
W+=1
cnt2+=1
print("정-답!")
cnt=0
break
cnt=cnt+1
if cnt%4 == 0:
L+=1
cnt2+=1
print("당신은 제한 횟수 내에 맞추지 못했습니다")
cnt=0
continue
#한 게임당 도전 횟수 제한
#4 이하만에 맞추면 성공
#4 이상이면 실패
#n번 반복 후 성공 횟수와 실패한 횟수 출력
print("사용자의 성공 횟수는 : {}, 실패 횟수는 : {}입니다.".format(W,L))
if W > L:
print("최종 승자는 사용자!")
elif W == L:
print("최종 승자는 없습니다! 무승부!")
else:
print("최종 승자는 컴퓨터!")
ayahyahyah
최대한 니가 한 틀 맞춰서 고쳤고 while 문 문제임 cnt1이 뭔지 cnt2가 뭔지 그런거 파악한다고 개오래걸렸네 저런거 할때 주석으로 표시해두셈
스리랑카잡화점주인장마흐카뚤룹
와... 진짜 정말 고맙다
앞으로 꼭 주석 잘 달아놓겠음 직접 파악하게 만들어서 ㅈㅅㅈㅅ
ayahyahyah
지금 문제점이 while 문 비교. cnt2 값 변하는거 라운드끝날때마다 초기화해야하는거 안되었고 break와 continue 구별 확실히 해야함
스리랑카잡화점주인장마흐카뚤룹
크흑.. 감사합니다 센세