Thank you for the feedback. Bots work pretty simple, when a bot is going to make a move it checks each cell and calculates a weight. Weight is the maximum count of a player's cells next to this cell. The Bot chooses a cell with the biggest weight. So, basically they always do the right move but I added some parameters to make them make mistakes. I can change the balance by changing these parameters and make them easier or harder. I didn't have enough time to test the balace but it easy to fix.