새벽_나그네
12시 지난 새벽
새벽_나그네
전체 방문자
오늘
어제
  • 분류 전체보기
    • TIL
    • DevLog
    • Algorithm
    • ComputerScience
    • etc

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • docker
  • til
  • 국비지원
  • 프로그래머스
  • Python
  • 코린이
  • 코딩프로젝트
  • 내일배움단
  • AI트랙
  • 코딩
  • portfolio
  • machine learning
  • 스파르타코딩클럽
  • Selenium 4
  • 자기주도학습
  • TodayILearned
  • 개발일지
  • 내일배움캠프
  • Github
  • 내일배움카드

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
새벽_나그네

12시 지난 새벽

[파이썬 프로젝트] 31 게임 만들기
DevLog

[파이썬 프로젝트] 31 게임 만들기

2021. 12. 21. 18:40

31게임만들기

오늘의 주제는 31게임을 만드는 것이었습니다.

모두가 다아는 그 배스킨라빈스 31 게임이죠 ㅋㅋ

31 게임 만들기

 

12/21 31게임

Colaboratory notebook

colab.research.google.com

오늘 만든 업다운 게임의 구조는

1. 배스킨라빈스 게임을 구현 다만 컴퓨터가 31을 부르면 져서 이를 회피하기 위한 알고리즘 같은 것은 구현하지 않고 랜덤 숫자만을 이야기하는 구조로 구현

 

2. 1번과 같이 배스킨라빈스 게임을 구현하지만 컴퓨터가 무조건 이길 수 있는 알고리즘을 탑재 - 지는 경우의 수가 1가지 있음

 

사용한 내용 정리

1. try: except: else: - 예외처리

ex) try:
        computerchoice, mode = must_win(num, must, mode)
    except:
        print('컴퓨터가 머리쓰는 중입니다.')
    else:
        if 31 < num + computerchoice:
            print('31 넘지 않는 수로 재계산 중입니다')
            computerchoice, mode = computer_choice(num, must, mode)
            return (computerchoice, mode)
        else:
            return (computerchoice, mode)
 
- try: 밑의 내용을 실행해보고 에러가 나오지 않으면 else를 실행 만약에 오류가 나오게 되면 except로 넘어가며 예외처리를 해주는 방법입니다.
 
2. 함수 다중인자 교환
 
ex) def must_win(num, must, mode):
        if mode == 2 and num == 0:
            must_num = 2
             mode = 3
             return (must_num, mode)            
 
- 함수 만들때 return에 ( )로 만들어서 두가지 인자 튜플 형식으로 넘기기
-----------------------------------------------------------------------------
         computerchoice, mode = must_win(num, must, mode)
 
- 함수 받을때 두가지 인자로 받기
 

문제점

처음 구상 단계에서 필승법이라고 생각된 숫자를 컴퓨터가 선점할 수 있게 하는 과정에서 모든 경우의 수를 if문으로 나열하는 방식으로 작성하여서 코드의 길이가 길어지는 문제가 있었습니다. 

def must_win(num, must, mode):
    if mode == 2 and num == 0:
        must_num = 2
        mode = 3
        return (must_num, mode)
    elif mode != 3:
        if num < 2:
            must_num = 2 - num
            mode = 3
            return (must_num, mode)
        elif 2 < num < 6:
            must_num = 6 - num
            mode = 3
            return (must_num, mode)
        elif 6 < num < 10:
            must_num = 10 - num
            mode = 3
            return (must_num, mode)
        elif 10 < num < 14:
            must_num = 14 - num
            mode = 3
            return (must_num, mode)
        elif 14 < num < 18:
            must_num = 18 - num
            mode = 3
            return (must_num, mode)
        elif 18 < num < 22:
            must_num = 22 - num
            mode = 3
            return (must_num, mode)
        elif 22 < num < 26:
            must_num = 26 - num
            mode = 3
            return (must_num, mode)
        elif 26 < num < 30:
            must_num = 30 - num
            mode = 3
            return (must_num, mode)
        else:
            must_num = int(random.randrange(1, 4))
            return (must_num, mode)

 

해결

해당 문제는 진행되고 있는 숫자를 4로 나눈 나머지의 규칙으로 간략화시킬 수 있으므로 밑의 코드처럼 요약할 수 있겠습니다.

   if   mode == 2 and num == 0:
        must_num = 2
        mode = 3
        return (must_num, mode)
    elif num%4 == 3:
        must_num = 3
        mode = 3
        return (must_num, mode)
 
    elif num%4  == 0:
        must_num = 2
        mode = 3
        return (must_num, mode)
 
    elif num%4 == 1:
        must_num = 1
        mode = 3
        return (must_num, mode)
 
    else:
        computer_call = random.randint(1,3)
        return (must_num, mode)

 

 

 

 

 

 

 

 

저작자표시 비영리 변경금지 (새창열림)

'DevLog' 카테고리의 다른 글

[Setting]Robo 3T 설정하기 - MongoDB Database  (0) 2021.12.28
[WIL]내일배움캠프 AI트랙 1기 2주차 주간회고  (0) 2021.12.26
[파이썬 프로젝트] UP/DOWN 게임 만들기  (0) 2021.12.21
[WIL]내일배움캠프 AI트랙 1기 1주차 주간회고  (0) 2021.12.17
[Log]내일배움캠프 웹프로그래밍 1주차 개발일지  (0) 2021.12.17
    'DevLog' 카테고리의 다른 글
    • [Setting]Robo 3T 설정하기 - MongoDB Database
    • [WIL]내일배움캠프 AI트랙 1기 2주차 주간회고
    • [파이썬 프로젝트] UP/DOWN 게임 만들기
    • [WIL]내일배움캠프 AI트랙 1기 1주차 주간회고
    새벽_나그네
    새벽_나그네
    IT, 프로그래밍, 정보, 스마트스토어

    티스토리툴바