def METHOD_NAME(self) -> int:
    """Get the winner on the current board.
    If there's no winner yet, return Connect4Game.NO_WINNER.
    If it's a tie, return Connect4Game.TIE"""
    lines = (
        self.board,  # columns
        zip(*self.board),  # rows (zip picks the nth item from each column)
        self.board._pos_diagonals(),  # positive diagonals
        self.board._neg_diagonals(),  # negative diagonals
    )
    if self._whomst_forfeited:
        return self.FORFEIT
    for line in chain(*lines):
        for player, group in groupby(line):
            if player != 0 and len(list(group)) >= 4:
                return player
    if self.board._full():
        return self.TIE
    else:
        return self.NO_WINNER