needmoreeasy EN 한국어
배우기

15 — 최고 점수: 작은 프로젝트

★★★☆☆ (3/5)프로젝트
선수 지식
13 — 파일, 14 — JSON, 06 — 조건
결과물
최고 점수를 기억하는 주사위 게임

지금까지 배운 것이 작은 프로젝트 하나에 담깁니다: 최고 점수를 기억하는 주사위 게임입니다. 랜덤 사용은 주사위를 굴리고, 파일 사용은 기록을 저장합니다.

단계

  1. best.nme 파일을 만들고 게임 전체를 한 파일로 저장합니다:

    랜덤 사용 최신
    파일 사용 최신
    import os
    이름을 물어봐 이름이 뭐예요?
    점수는 0
    3번:
        주사위는 랜덤정수(1, 6)
        만약 주사위 >= 4:
            점수에 1 더해
        말해 f"{이름}: 주사위 {주사위}, 점수 {점수}"
    if os.path.exists("best.json"):
        최고 = json읽기("best.json")
        말해 f"지난 최고 점수: {최고['score']}"
    else:
        최고 = {"name": "없음", "score": 0}
    if 점수 > 최고["score"]:
        json저장("best.json", {"name": 이름, "score": 점수})
        말해 f"새 최고 점수: {점수}"
    else:
        말해 f"최고 점수는 그대로 {최고['score']}"
    
    실행해 보기 →

    세 라운드가 주사위를 굴리고, 4 이상이 나올 때마다 점수에 1을 더합니다. 첫 if는 저장된 최고가 있으면 읽고, 둘째 if는 점수가 기존 최고를 넘을 때 새 최고를 저장합니다.

  2. 실행하고 이름을 입력합니다. 한 번의 실행은 이렇게 나올 수 있습니다:

    nme 실행 best
    
    이름이 뭐예요? 민수: 주사위 1, 점수 0
    민수: 주사위 4, 점수 1
    민수: 주사위 5, 점수 2
    새 최고 점수: 2
    

    주사위는 무작위라 숫자는 실행마다 다릅니다. 첫 실행은 저장된 최고가 없으므로 점수가 항상 새 최고가 됩니다.

  3. 다시 실행하면 이전 최고가 게임 시작 전에 파일에서 돌아오고, best.json에는 {"name": "민수", "score": 2}가 들어 있습니다. 그 점수를 넘기면 새 최고가 저장되고, 못 넘기면 그대로 남습니다.

  4. 영어는 같은 프로젝트를 use random latest, use file latest, score add 1과 초급 블록으로 씁니다. 전체 영어 프로그램은 영어 가이드에 있습니다. 이 조각은 저장된 최고를 읽어 보여 줍니다:

    use file latest
    best = json_load("best.json")
    say f"Saved best score: {best['score']}"
    
    실행해 보기 →

직접 해보기

게임을 어렵게 바꿔 보세요: 3번:4번:으로 바꾸면 더 긴 게임이 되고, 주사위 >= 4주사위 >= 5로 바꾸면 점수를 얻기 더 어려워집니다.

배운 것

  • 한 프로젝트에 랜덤 사용, 파일 사용, 물어봐, 3번:, 만약, JSON을 한 파일에 담을 수 있습니다.
  • os.path.exists(경로)는 저장된 파일이 이미 있는지 확인합니다.
  • json읽기는 지난 최고를 되살리고, json저장은 새 최고를 씁니다.
  • 점수에 1 더해 / score add 1는 조건 블록 안에서만 점수를 키웁니다.

GitHub에서 이 문서 보기