The SeamlessMoonian way to Tic-Tac-Toe (AI + Option selecting system)

:warning: Warning: this is for more advanced builders and is hard to do :warning:

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
Screenrecording2025-04-156.39.20PM-ezgif.com-optimize
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 :skull:, 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*

( :sob: 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)

1



Ignore the last error code but that would copied 3 times for B1, B2, B3, etc.

2



3

It was compressed and and combined with 2

4






The first three rows are the only ones that should be moving
image
image
8 more then… Also, I do trigger these with channels
image
image

5










6


7




and so on

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)

Difficulty rating
  • 1/10
  • 2/10
  • 3/10
  • 4/10
  • 5/10
  • 6/10
  • 7/10
  • 8/10
  • 9/10
  • 10/10
0 voters

Keep in mind that the MSM will be duplicated and heavily edited 7 more times!

Quality of the guide
  • 10/10 (needs work)
  • 10/10 (something else/comment)
  • 10/10 (good guide)
  • 10/10 (best guide)
  • 10/10 (some mistakes but mostly good)
0 voters

This guide is always 10/10 :smiling_face_with_sunglasses:


  1. insane foreshadowing right there ↩︎

  2. You don’t scare us with your big words! ↩︎

  3. I cannot handle my own problems :sob: ↩︎

  4. That came outa nowhere :skull: ↩︎

  5. multiplies ↩︎

15 Likes

I accidentally posted this :sob:

3 Likes

Oh well I needed help on this guide anyways :melting_face:

I would wikify this but i lost regular 2 times over the summer so @twofoursixeight , can you please wikify this?

Thanks two four

4 Likes

Ohh, oops, I really am clueless.
Thank you for letting me know TheMathematicalComet.

(ah, I see it. I really need to learn this stuff.)

3 Likes

tl3s can only wikify their own posts. You need a tl4.

but otherwise you’d click the wrench and then “make wiki”

5 Likes

This is an awesome guide! I would recommend you do a vote for guide difficulty so newer forumers know if it’s “In their skill level”.

3 Likes

Aiight, I added it. Let me know other changes I could make!

1 Like

reusable bump
remember to wait at least a few days before clicking the box

edit 2 on the guide is crazy
12 Likes