コネクト4のルールとプログラムを書いてください。
「noinput」
ルール：

Connect 4は2人のプレイヤーがプレイするゲームであり、プレイヤーは7×6のグリッド上で盤を使用します。
プレイヤーは1つずつDiscをドロップしていきます。
プレイヤーはDiscをドロップした領域内で、Discを上にドロップするのに水平、垂直、あるいは斜めのラインまたは4つ以上のDiscをドロップすることができます。
列にいくつのDiscをドロップできるかは制限されていません。一人のプレイヤーが4つのDiscを同時にドロップした場合、プレイヤーの勝利となります。

プログラム：

GameBoardクラス：
＃7×6のグリッド
class GameBoard(object):
    def __init__(self):
        self.grid = [[0 for x in range(7)] for y in range(6)]

＃ プレーヤーがディスクをドロップするときの行動 
    def drop_disc(self, row, col, player):
        if row > 5 or row < 0 or col > 6 or self.grid[row][col] != 0:
            return False
        self.grid[row][col] = player 
        return True

＃ プレーヤーが勝利したかどうかを確認する 
    def check_win(self):
        for y in range(6):
            for x in range(4):
                #水平
                if self.grid[y][x] != 0 and self.grid[y][x] == self.grid[y][x + 1] and self.grid[y][x] == self.grid[y][x + 2] and self.grid[y][x] == self.grid[y][x + 3]:
                    return self.grid[y][x]
                #垂直
                if y > 2 and self.grid[y][x] != 0 and self.grid[y][x] == self.grid[y - 1][x] and self.grid[y][x] == self.grid[y - 2][x] and self.grid[y][x] == self.grid[y - 3][x]:
                    return self.grid[y][x]
                #斜め
                if y > 2 and x > 2 and self.grid[y][x] != 0 and self.grid[y][x] == self.grid[y - 1][x + 1] and self.grid[y][x] == self.grid[y - 2][x + 2] and self.grid[y][x] == self.grid[y - 3][x + 3]:
                    return self.grid[y][x]
        return -1