Untitled

 avatar
unknown
python
a year ago
869 B
12
Indexable
def has_won(board, column):
  
    directions = [(0, 1), (1, 0), (1, 1), (-1, 1)]

    def in_bound(row, col):
        return 0 <= row < len(board) and 0 <= col < len(board[0])

    def check_win(direction, r, c, symbol):
        count = 0  
        dr, dc = direction 

        r_dir, c_dir = r, c
        while in_bound(r_dir, c_dir) and board[r_dir][c_dir] == symbol:
            count += 1
            if count == 4:
                return True
            r_dir, c_dir = r_dir + dr, c_dir + dc

        return False

    row_top = 0
    while row_top < len(board) and board[row_top][column] == '.':
        row_top += 1
    row_top -= 1  

    if row_top < 0:
        return False

    for direction in directions:
        if check_win(direction, row_top, column, board[row_top][column]):
            return True

    return False
Editor is loading...