본문 바로가기
프로그램

[파이썬] 문제 : 수도 맞추기 게임

by 오디세이99 2022. 12. 4.
728x90
반응형
import random

dict = {1:{"핀란드":"헬싱키", "스위스":"베른", "가나":"아크라"}
        ,2:{"베트남":"하노이", "말레이시아":"쿠알라룸푸르", "스웨덴":"스톡홀롬"}
        ,3:{"노르웨이":"오슬로", "대만":"타이베이", "파키스탄":"이슬라마바드"}
        ,4:{"크로아티아":"자그레브", "포르투갈":"리스본", "네덜란드":"암스테르담"}
        ,5:{"브라질":"브라질리아", "콩고민주공화국":"킨샤사", "모로코":"라바트"}}

def cityQuiz(dic, k, q, sc):   # k : 퀴즈 종류, q : 퀴즈 번호
    country = list(dic[k].keys())[q]   # 딕셔너리 key(1,2,3,4,5)로 하위 딕셔너리의 key(핀란드, 스위스...)를 라져옴(리스트)
    city = list(dic[k].values())[q]    # 딕셔너리 key(1,2,3,4,5)로 하위 딕셔너리의 values(헬싱키, 베른...)를 라져옴(리스트)
    
    a=input(f"{country}의 수도는?")    # 수도를 입력 받음.
    
    if a==city:                       # 입력 받은 수도와 정답 수도 비교
        print("정답입니다")
        sc += 20                      # score 더함
    else :
        print(f"오답입니다, 정답은 {city}")
    return sc                        # score 리턴


yn = 'Y'
while yn.upper() == 'Y':
    score = 0
    for i in range(1, len(dict)+1):             # 5번 퀴즈 실행
        q = random.randint(0,2)        # 0.2 는 딕셔너리를 리스트로 변환해서 리스트의 인덱스 0부터 시작.
        score = cityQuiz(dict, i, q, score)   # 튀즘 함수 실행
        

    print('획득한 점수는',score)

    if score>=80 :
        print("매우 잘하셨습니다.")
    elif 80>score>=60 :
        print("조금 더 노력하세요")
    else :
        print("아쉽네요")
        
    yn = input('다시 진행하시겠습니까?(Y/N) : ')

728x90
반응형

댓글