파이썬 질문드립니다! 코딩초보에요

조회수 570회

제가 조그만한 파이썬 종합게임을 만들려고 합니다.

예를 들어 게임1,게임2,게임3을 만들어서 1을 누르면 게임1이 뜨고 2를 누르면 게임2가뜨고

이런식으로 어떻게 작성 할까요??

게임1,게임2,게임3은 다 따로 코드를 작성했습니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

2 답변

  • import os
    import argparse
    from argparse import RawTextHelpFormatter
    
    
    def main():
        parser = argparse.ArgumentParser(
            description="Example Games!",
            formatter_class=RawTextHelpFormatter  # help text에서 개행을 주기 위함
        )
        parser.add_argument(
            "--mode",  # 인자 옵션
            type=int,
            help="진행할 게임 모드를 선택해 주세요. \n1: 액션\n2: 슈팅 \n3: RPG"
        )
        args = parser.parse_args()
        if args.mode is None:
            print("usage: {} [-h] [--mode MODE]".format(
                os.path.basename(__file__)
            ))
            return 
        print(args.mode)  # 여기서 args.mode 를 이용해서 해당 게임들을 호출하는 조건을 만들면 되겠죠?
    
    
    if __name__ == '__main__':
        main()
    
    

    실행방법:

    python filename.py -h
    python filename.py --mode 1
    python filename.py --mode 2
    python filename.py --mode 3

    출력예시

    usage: example.py [-h] [--mode MODE]
    
    Example Games! --mode
    
    optional arguments:
      -h, --help   show this help message and exit
      --mode MODE  진행할 게임 모드를 선택해 주세요.
                   1: 액션
                   2: 슈팅
                   3: RPG
    
    
    

    python2 시절에는 sys모듈의 argv를 사용하여 인자를 주로 받았는데
    python 3.2부터 추가된 argparse를 이용하면 편리하고 쉽게 사용할 수 있으며 공식문서도 참고해보세요!
    공식문서 - argsparse

    • 친절한 답변 감사드립니다!!! 알 수 없는 사용자 2019.12.18 23:07
    • 도움이 되셨다니 다행이네요! .py로는 윈도우에서 게임을 배포하기 어려우니 Pyinstaller등을 사용해서 exe파일로 쉽게 만들 수 있습니다. 강현우 2019.12.19 09:28
  • 저도 코딩 초보인데 최근 대학교 과제로 파이썬으로 종합게임을 만들어봤습니다. 저 같은 경우 새로운 파이썬 파일 pygame으로 만들어서 그 파일 안에 import 게임이름 (.py 빼고, 저 같은 경우 총 4개 파일을 import했습니다.)을 하고 사진으로서 제목, start버튼을 넣었고 if 문 안에 해당 게임에 대한 스타트 버튼을 클릭한다는 조건을 넣었고 그 if절 안에 해당 게임을 실행하는 함수(저 같은 경우 main())를 넣었습니다. 여기서 문제가 있었는데 종합 게임파일을 시작하면 맨 처음에 넣은 게임이 바로 실행되는 문제가 있었습니다. 이 문제를 해결하기 위해서는 종합게임에 넣었던 게임 파일들을 실행하는 코드를 빼야합니다. 그리고 그 코드를 스타트버튼을 클릭하는 if절 안에다 넣으시면 해결 될꺼 같습니다. 다른 질문 있으시면 댓글 또 달아주세요!!

    • (•́ ✖ •̀)
      알 수 없는 사용자

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

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

(ಠ_ಠ)
(ಠ‿ಠ)