Ok, I’ve tried so hard to not make a topic about this even to the point of asking Gemini AI but this is my last resort…
I’m making this Tic-Tact-Toe AI
Memory=bad…Bad…BAd…BAD…
Oh my god I’m just going to give you guys a draft that may or may not be the draft of the guide that I’ve been working on since december(as well as the mechanism)
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 daddy 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[1]
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.[2] I later then created a system in which different overlays were activated when you were in different columns. But that was pretty dum 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[3] connect each of the squares to 18 different channels[4] which adds[5] up to 324 channels.
I opened a help topic about it
Click this → [6]
What if we could build off of this 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 diagenol)
Problem is at end, and just learned that I had to add an extra 3 blocks for every one of the 9 properties in each trigger which I absolutely cant afford I want this system to be simplified and corrected to under 65%