Warning: this is for more advanced builders and is hard to do 
Background info
This guide is different from other Tic-Tac-Toe guides as this one focuses on one mechanism (the AI) but I have also added the menu selector part as it helps (me and the reader, potentially) to understand this better.
Also, apparently ClicClac has created something like this but somehow I only found 6, 9 including my posts, about this specific topic; this, this, this, and this
Guides like this and this either don’t have images or use zones and wire repeaters which isn’t very efficient if you ask me
First what is AI?
Basically it’s a system that performs calculations (not specifically in math) to get the result, which is usually done by a human. Note that this is the definition that I go based off of for this guide
So it’s another human that can learn?
Why are you even here steve?
Answer my question and I’ll get out
you are so annoying
Now!
augh
In your unintelligent terms it’s a computer that can do stuff like a human… But only specific stuff though, the stuff you design it to do. Usually, AI can learn but this can’t learn because there isn’t anything else to learn.
yet[1]
Oh… ok, but I don’t know how that fits into gimkit creative?
YOU HAVEN’T EVEN LET ME WRITE THREE SENTENCES OF MY INTRO!!!
Sorry, continue
Anyways
As I was saying, I’m going to be creating a Tic-Tac-Toe AI opponent
Cool!
There will be systems like IR, MSM, and MS
There will also be three sections to my guide
- Journal (where I record my ideas)
- Menu selector (MS, was made to connect the game, not really important to making the AI though)
- MSM (Motherboard System Mechanism, calculates every move, IR, Importance Rate, figures out the next best move)
Woah, that’s massive!
you know what else is massive?
oh no
THAT LOW TAPER FADE! AHHHAAAHAHA
you’re not funny
grr
Journal
So I made this to record everything I’ve thought about this topic and how to make it!
Also to go through this and remember what I made, and how to make it better.
Table of contents
Chapter 1: Pre system assumptions
Chapter 2: Properties and a new menu selecting system
Chapter 3: Making a menu selecting system
Chapter 4: Motherboard System Mechanism (MSM)
Chapter 5: Completing the system…
Chapter 6: Memory=bad = Save memory=good
Pre system assumptions
Started a new map
I’ve been thinking and I have concluded that an AI like this, so simple, yet so block code deadly (I’m assuming), will need to know If “O” (the player) has claimed a square. I’ll lay out 3 properties for every box (27 in total), one property for “O”(helpful a lot actually), one property for “X” (to set the main square property to true so the player can’t claim it), another main property that decides if anyone else can claim it.
Will also need to organize grid, and get some of the speculated tools
Note to self: will need a new options system, a new way to select the square or box you want to claim.
Chapter 2: Properties and a new menu selecting system
This part is troubling me very much. For example, 27 PROPERTIES! I guess it’s doable, 3 properties per square
1 O property (true/false, default value is false, to represent not claimed, if this claimed this redirects AI to play in a position to block the solution to the game) Calling this for now a mini property
1 X property(true/false, default value is false, to represent not claimed, this also represents the AI always) Calling this for now a mini property
1 claimed/not claimed property (true/false, default value is false, to represent not claimed, but if O property or X property of that square claimed/not claimed property turns to true, claimed) Calling this for now a big daddy property
Did that for all the squares
mini property
usual settings
Big property
Literally just the same just not with the “O” or the “X”
Chapter 3: Making a menu selecting system
In my last game **** *****, I designed a new way to select options! But I asked people to help on the forums, but that was no use.
I ended up making a menu selector like the ones in 2d games here is an example

It was relatively easy with 3 options…
But with a 3 by 3 grid, while using the same technique kinda made things… perplexing[2]
See now for some reason only some of the barriers worked, and not specific ones. just random ones, I made a help topic about it.[3] I later then created a system in which different overlays were activated when you were in different columns. But that was unnecessary because I used extra memory.
BREAKTHROUGH, after 5 days of production being slowed down, my brain finally found the solution, the oldest trick in the book. Trigger loops. The most unappreciated thing. I will implement this by just making them activate on game start and channel combating will then make the block code run full time.
Now my only problem is to learn how to eat penguins and turtles because both are yummy[4] connect each of the squares to 18 different channels which adds[5] up to 324 channels.
I opened a help topic about it
What if I could build off of my post from another topic
And maybe I could add a channel that includes “is claimed” and “is not claimed” for every square.
It worked, I’ll make the guide tomorrow
and
I
Got
REGULAR TODAY!!! (April 20, 2025, 9:00 PST, now it’s 9:15 PST)
(I almost clicked “Create topic” from excitement
, I also promise to be a very goooood boooy, 9:20 now)
Chapter 4: Motherboard System Mechanism (MSM)**
Subchapter 1: Importance Rates
Okay so I took a break from this for a couple of days (a week to be exact)
So here’s what I did
Deleted the trigger loops and made them listen for when property value changes
Recruited someone (@MyCatIsChonky ) to help me make the rest of this (we’re actually trying to figure out a time where I could send them the link to my map)
I also have passed the point of figuring out the menu selector system and am now building MSM of the system
For every square there will be an IR , the square with highest IR will get picked, if there are top 2 IRs that are equal there will be a randomizer to pick between them
You see that? ^ No over the line… It is hard
It’s breaking me at the very least
There’s a way, so inefficient it disappoints me that I can’t come up with a better solution I started a help topics about it but I don’t see someone willing to pour so much time into this
Hey Josh how about you make us a “Greatest value of ‘1’ and ‘2’” block? huh?
The thing is I don’t know
Solved it with a “highest_property” property that I won’t spoil
Also I have the whole system planned but the memory is too much
Chapter 6: Memory=bad = Save memory=good
So um memory… Yeah it’s pretty bad. Variables Properties Triggers this world of never ending problems
So uh where do I start
type text here
after you have read about IRs and the triggers required, you will know everything you need to know to help me solve this problem… I’ll give you pictures because at this point I’m tired… Simplify them, Correct them, specifically the variables with
Set Property "IR1" Value *IR1*
(
I tried so hard not to post a topic about this)
+1 if a player claims a square, +10 if the AI does
Result value is an example of the ways you can win (horizontal, vertical, and diagonal)
After some thinking and calculation, I have come to the conclusion that just by broadcasting messages to update property values in other triggers
Help Topics opened for this section
Channel not being sent from inside block code
How do I fix this?
Now I can continue Making MSM and I will be done
MSM and IRs
Tic Tac Toe AI system
Square pressed(1) → Make the main square claimed(2) → Check which square is claimed(CWISC/3) → Check every square claimed and send channels updating the appropriate RVs(Result Value) with appropriate amounts according to the situation(I am testing this so only 1 was made… 7 more to go!)(4) → Then check the RVs and check what square should be claimed according to the RV value and update IRs (Importance Rates (for each square unclaimed to be claimed))(5) → Then resetting all IRs that are already claimed (6) → Then running all IRs through a string a trigger to get the Highest Value and sending a channel to claim that square(7) → Reset all IRs (not done yet)(8)
3
It was compressed and and combined with 2
4
The first three rows are the only ones that should be moving


8 more then… Also, I do trigger these with channels


So the dropdown above is just a way we could do this (the only I know of), we still need to figure out the bug (it worked fine when I turned on every part manually), and then figure out the code for 7 other winning rows (I consider that the easy part because it is expected)
- 1/10
- 2/10
- 3/10
- 4/10
- 5/10
- 6/10
- 7/10
- 8/10
- 9/10
- 10/10
Keep in mind that the MSM will be duplicated and heavily edited 7 more times!
- 10/10 (needs work)
- 10/10 (something else/comment)
- 10/10 (good guide)
- 10/10 (best guide)
- 10/10 (some mistakes but mostly good)
This guide is always 10/10 ![]()














































