Python

[Python] 12 Project - 06. Tic Tac Toe

망고고래 2024. 7. 3. 16:10

https://youtu.be/8ext9G7xspg?si=a7dhyWrUfcCW2cen&t=2153

 

240627 파이썬 메모 (tistory.com)

 

240627 파이썬 메모

1. for _ in range()self.board = [' ' for _ in range(9)] _: 관례적으로 사용되는 변수명. 반복문 내에서 현재 반복 중인 값이 필요하지 않을 경우 사용  2. [i*3:(i+1)*3] for i in range(3) def print_board(self): for row in [s

mangowhale.tistory.com

 

 

 

1. self

class Player:
    def __init__(self, letter):
        #self: 클래스의 인스턴스
        #self를 통해 클래스의 메서드와 변수에 접근할 수 있음
        # letter is x or o
        self.letter = letter

    def get_move(self, game):
        pass

 

Player를 상속하는 클래스 RandomComputerPlayer

class RandomComputerPlayer(Player):
    def __init__(self, letter):
        super().__init__(letter)

    def get_move(self, game):
        pass

__init__(): 부모 클래스의 __init__() 호출

파이썬에서는 메서드를 호출할 때 self 인자를 자동으로 전달 → 호출시 필요없음

 

 

2. 보드 출력

def print_board(self):
        for row in [self.board[i*3:(i+1)*3] for i in range(3)]:
            print('| ' + ' | '.join(row) + ' |')

*리스트 컴프리헨션

1) 기본 구조

new_list = [expression for item in iterable]

2) 2의 코드와 비교

[self.board[i*3:(i+1)*3] for i in range(3)]
[      expression       for item in iterable]

결과: [ self.board[0:3], self.board[3:6], self.board[6:9] ]

 

for row in [self.board[i*3:(i+1)*3] for i in range(3)]:
[for item in                  iterable                ]
[for item in [ self.board[0:3], self.board[3:6], self.board[6:9] ]]

 

.join()

print('| ' + ' | '.join(row) + ' |')

 

' | '.join(row): row의 요소들 사이에 ' | '를 넣어 합침