Hi Marcel,
This is really neat! Thanks for creating this, and sharing your file.
I have a couple of efficiencies that I can show you regarding tag lists, which will make your actions smaller (but more dense/complex). Here's a video showing those -
https://app.screencast.com/OiRYXDf7ZHuXj
Overall, you're correct, I think the hardest part is getting the computer to think of the best next move.
However, I believe that if everyone is playing tic-tac-toe optimally, the game is not actually any fun. The first player always wins or ties, or the second player can always force a draw. So your ComputerPlayer will always force a tie if it's being smart. So your current approach of randomly selecting a tile, I would argue, is more fun, because the HumanPlayer can actually win. You may want to consider some alternate form of slightly dumbed-down-AI for the ComputerPlayer where it tries to block a three-in-a-rown, but if the HumanPlayer is smart, they will still win. I think this is a common "problem" for video games - making the AI challenging, but not too difficult.
Here are the rules on how to never lose at tic-tac-toe -
https://www.youtube.com/watch?v=6ZForbaku9c&ab_channel=PinkPencil (one small mistake in one of the diagrams, but what they're saying is accurate).