Sunday, July 6, 2025

Building a simple AI for Frag is quite interesting...

Today, the game move decision loop readouts formed a triangle:

123456789_123456789_123456789_123456789_123456789_123456789_123456798_1
.0.1.1.2.2.3.3.4.4|    <abc>           1   <123>    |d.d.c.c.b.b.a.a.@.
>m
123456789_123456789_123456789_123456789_123456789_123456789_123456798_1
. .1.1.2.2.3.3.4.4|0   <abc>           1   <123>    |d.d.c.c.b.b.a.a.@.
1                m
2        0       m
3                ms
4        1       ms
5                mss
6        1       mss
7                msss
8        2       msssm
9                msssms
10       2       msssmsm
11               msssmsms
12       3       msssmsmsm
13               msssmsmsms
14       3       msssmsmsmsm
15               msssmsmsmsms
16       4       msssmsmsmsmsm
17               msssmsmsmsmsms
18       4       msssmsmsmsmsmsm
19               msssmsmsmsmsmsms
20       0       msssmsmsmsmsmsmsm
21               msssmsmsmsmsmsmsms
22               msssmsmsmsmsmsmsmss
23               msssmsmsmsmsmsmsmsss
24       <abc>   msssmsmsmsmsmsmsmsssm
25               msssmsmsmsmsmsmsmsssmm
26               msssmsmsmsmsmsmsmsssmms
27               msssmsmsmsmsmsmsmsssmmss
28               msssmsmsmsmsmsmsmsssmmsss
29               msssmsmsmsmsmsmsmsssmmssss
30               msssmsmsmsmsmsmsmsssmmsssss
31               msssmsmsmsmsmsmsmsssmmssssss
32               msssmsmsmsmsmsmsmsssmmsssssss
33               msssmsmsmsmsmsmsmsssmmssssssss
34               msssmsmsmsmsmsmsmsssmmsssssssss
35               msssmsmsmsmsmsmsmsssmmssssssssss
36               msssmsmsmsmsmsmsmsssmmsssssssssss
37               msssmsmsmsmsmsmsmsssmmssssssssssss
38               msssmsmsmsmsmsmsmsssmmsssssssssssss
39               msssmsmsmsmsmsmsmsssmmssssssssssssss
40       1       msssmsmsmsmsmsmsmsssmmssssssssssssssm
41               msssmsmsmsmsmsmsmsssmmssssssssssssssms
42               msssmsmsmsmsmsmsmsssmmssssssssssssssmss
43               msssmsmsmsmsmsmsmsssmmssssssssssssssmsss
44               msssmsmsmsmsmsmsmsssmmssssssssssssssmssss
45               msssmsmsmsmsmsmsmsssmmssssssssssssssmsssss
46               msssmsmsmsmsmsmsmsssmmssssssssssssssmssssss
47               msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssss
48       <123>   msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssm
49               msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmm
50               msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmms
51               msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmss
52               msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsss
53               msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmssss
54       d       msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsssss
55               msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsssssm
56       d       msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsssssms
57               msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsssssmsm
58       c       msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsssssmsms
59               msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsssssmsmsm
60       c       msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsssssmsmsms
61               msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsssssmsmsmsm
62       b       msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsssssmsmsmsms
63               msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsssssmsmsmsmsm
64       b       msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsssssmsmsmsmsms
65               msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsssssmsmsmsmsmsm
66       a       msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsssssmsmsmsmsmsms
67               msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsssssmsmsmsmsmsmsm
68       a       msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsssssmsmsmsmsmsmsms
69               msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsssssmsmsmsmsmsmsmsm
70       @       msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsssssmsmsmsmsmsmsmsms
71               msssmsmsmsmsmsmsmsssmmssssssssssssssmsssssssmmsssssmsmsmsmsmsmsmsmsm

Yea, Frag's board is a single line, 71 characters long. I'm betting it will be addictive. And it is getting interesting to program as well.

I'm now counting the spaces between pods and fragments. This will be useful later on when I construct the inputMove string.

Not very sure what to do with the data triangle.May have to add more logic to each recursive function. Am hoping to see some diversification in this structure. some m, s, j -why is j missing?

Since I retired, been taking my game-coding hobby slow. Tonight, want to use spaces in the loop conditions. Think I will give each potential move, a space string -for now. Then define actions for far and near player to computer pieces, base to enemy piece/pod distances.

This is proving difficult for amateur me. I need another dictionary, I think, to store overlapping values or maybe a bunch of lists.

...

Today, a major breakthrough:

46               m
47               m
48       <123>   m
LPod
Lsplit
49       <123>   mj
50               mj
51               mj
52               mj
53               mj
54       d       mj

You can see how a subloop added an action choice between moving a pod from 48 to 49. This was a cause for celebration, so I had a Vietnamese coconut cracker. Unfortunately, the AImove index was wrong, as was its pod launch which failed. Still good to see my algorithm working.

Am working in a multiHandler function for moves with multiple action index points. Then need to go over the indices again. But they should be okay since last weekend’s debugging session. Frag’s complexity is almost breaking my brain.

SeTT was 1.8k lines long but the algorithms came more naturally somehow. Frag is circa 400 lines long and every bit was a struggle.

The handler function is in place but haven't decided how to select the pieces to osmote or the pieces / fragments to form a pod with. Was thinking they have to be close together / right nextdoor. But it’s 11:30pm and I will work out and sleep soon.


A new day, coding Frag is stalled awhile due to the press of many minds interested in prophecy. Due to the sign of the ‘big gold jacket’. And I may soon be married to the ex-GF.

Having some trouble finalizing the parameters for joining nearby fragments into pods and whether an osmoted pod can be disbanded by either player / AI. I guess I almost but off more than I can chew. Meanwhile the Liews are impersonating westerners, causing havoc in the mindspaces.

No comments:

Post a Comment