I haven't posted anything here in a while so I decided to come back with a pretty big project.
This took around 3-4 days to figure out how to do it and put everything together.
I'm not exactly sure if this algorithm has a name so I'll just call it the Doggo algorithm.
The way the Doggo algorithm works is by randomly changing each network for each generation until it gets better and better. (Very simplified but you get the idea.)
The population is how many networks you want, and the generations is how many times you want to train it. (The more these are the better, but also the slower.)
If anyone wants to improve my code feel free to, the actual tic tac toe part was pretty rushed.
edit: improved win detection on tic tac toe, bugged out sometimes