파이썬 챌린지_11

틱택토 입력



도전 수준 4/10


  • 이 도전에 대한 배경 스토리는 다음과 같습니다.
  • 틱택토 게임을 작성하고 있다고 상상해보십시오. 보드는 다음과 같습니다.

  •     1:  X | O | X
            -----------
        2:    |   |  
            -----------
        3:  O |   |
            A   B  C
    


    보드는 2D 목록으로 표시됩니다.

    board = [
        ["X", "O", "X"],
        [" ", " ", " "],
        ["O", " ", " "],
    ]
    


  • 사용자가 "C1"을 입력하고 보드의 해당 셀에 X 또는 O가 있는지 확인해야 한다고 상상해 보십시오.
  • 그렇게 하려면 문자열 "C1"에서 행 0과 열 2로 변환해야 합니다
  • .
  • 보드[행][열]을 확인할 수 있습니다.
  • 당신의 임무는 길이가 2인 문자열에서 튜플(행, 열)로 변환할 수 있는 함수를 작성하는 것입니다.
  • 함수의 이름을 get_row_col로 지정합니다.
  • 대문자와 숫자로 구성된 길이 2의 문자열인 단일 매개변수를 취해야 합니다.

  • 예를 들어:
  • get_row_col("A3")을 호출하면 튜플(2, 0)이 반환되어야 합니다.
  • A3는 보드의 인덱스 2에 있는 행과 인덱스 0에 있는 열에 해당하기 때문입니다.

  • 힌트:
  • 먼저 인덱싱을 사용하여 숫자와 문자를 추출합니다.
  • int()를 사용하여 숫자를 문자열에서 int로 캐스팅하십시오.
  • 사전을 사용하여 문자를 숫자로 번역할 수 있습니다.
  • 결과를 튜플로 반환합니다: (행, 열).

  • 내 솔루션




    board = [
        ["X", "O", "X"], # 1
        [" ", " ", " "], # 2
        ["O", " ", " "], # 3
    ]   # A    B    C
    
    def get_row_col(tic_tac):
        tic = tic_tac.upper()
        col = tic[0]
        row = int(tic[1]) - 1
    
        board_keys = {"A": 0, "B": 1, "C": 2}
    
        for key in board_keys:
            if key == col:
                column = board_keys[key]
                return (row, column)
    
    print(get_row_col("c1"))
    


    또 다른 솔루션




    def get_row_col(choice):
        translate = {"A": 0, "B": 1, "C": 2}
        letter = choice[0]
        number = choice[1]
        row = int(number) - 1
        column = translate[letter]
        return (row, column)
    

    좋은 웹페이지 즐겨찾기