Saving code in Tic-Tac-Toe AI

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
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[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 :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 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%


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

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

  3. That came outa nowhere :skull: ↩︎

  4. Mommy HELP ME! I’m wasting my time and life and sanity… (why is this dude such a crybaby?) ↩︎

  5. multiplies ↩︎

  6. Goooooooood boooooooooy ↩︎

2 Likes

Holy block code. That’s a lot. And uhh, you remember this right:

Well that’s true. So ummm, lemme think, but like you might have to restart you system, but don’t yet! Because I’m pretty good at this kinda stuff, not to brag. If only I could show you my map generator code… that thing took in every possible concept of shortening x 10.

3 Likes

Yeah I looked at slim’s compressing guide…

2 Likes

Hmm, 3 properties for each square? Couldn’t you just make a text property and basically when a player gets it update it to “O” and “X” when the AI get’s it and when it’s empty it means it’s not claimed? Then you might save some properties. True false is pretty slow with it’s limited options. Heck, you could do the same with number, adding 1 when player claims it, and adding two when AI claims it.

3 Likes

Can you please show it to me?

No problem, but thanks for telling me!

Ummm, well, that’s the problem. Images got deleted on the forum and I’m 90% sure I deleted the system. Sorry.

1 Like

And this is yet to be solved… How else can I simplify block code? Can I look at @ClicClac 's tic tac toe bot? (I read this from a help topic but might be wrong)

(this post was eaten by the community)