Consider a game board consisting of 5x5 cells, each of which can contain a piece of stone, and a set of colored (red and blue) stones. The first player plays with the red stones, the other with the blue stones. The board is initially empty. Players move in turn. In a move, a player must choose an empty cell and put a stone of his or her color into it. The game is over when a row, a column, or a diagonal contains 3 stones of the same color. (You must consider all possible diagonals, not only the main diagonal and the antidiagonal). The three stones do not have to be adjacent. The player to which these stones belong loses the game.
When the game is started the program must ask for the names of the players.
The program must store the result of the games as follows. For each game, the following information must be stored: the date and time when the game was started, the name of the players, the number of turns made by the players during the game, and the name of the winner. The program should be able to display a high score table in which the top 5 players with the most wins are displayed. The game must store data in a database