skotz / volcanoes

Prototype for a new board game
4 stars 1 forks source link

AI strategy idea: A tiles, kitty corner #3

Closed simondorfman closed 5 years ago

simondorfman commented 5 years ago

Variant of the Alpha Tile AI.

Start by playing on A tiles, but build kitty corner to existing pieces, trying to build a path to victory, like this:

image

Once a path of A tiles is complete, like illustration above, switch to adding magma to lowest A pieces to get them to volcanoes faster.

Once all A tiles on a path are volcanoes, switch to adding magma to pieces around the A, to help fill in the path.

skotz commented 5 years ago

I like this idea.

Random thoughts to myself...

skotz commented 5 years ago

@simondorfman How would you define a kitty corner at a junction of 5 triangles? I'm thinking you'd just pick any one of the two opposite triangles.

image

Maybe there's a strategy in preferring a 5 over a 6 or vice versa? Maybe I'll make a variation of the AI that prefers 5s and one that prefers 6s and run a million self-play games to find out.

simondorfman commented 5 years ago

@skotz Re: "How would you define a kitty corner at a junction of 5 triangles? I'm thinking you'd just pick any one of the two opposite triangles." I've been thinking about this for a while. When I first suggested this AI idea, I was thinking it would only play on the A-tiles so there would only be junctions with 6 triangles. But I guess the reason you're asking about junctions with 5 triangles is because you want to compute kitty corner tiles for every tile. It seems to me that focusing on the A-tiles and ignoring the other tiles might be stronger, but I have no real logic or data to back that up. So assuming it's worth calculating all the kitty-corner paths, I'm thinking the same thing as you. Just pick one. Or rather, pick both. Both are valid paths.

Re: "Play on any empty tiles around chain tiles (or maybe just keep feeding the volcanoes and rely on eruptions)" I favor the former. A smart opponent would block the spots before an eruption happens. But maybe that's an idea for another AI...

skotz commented 5 years ago

This has been implemented. The engine will play on a random A tile, and then attempt to play on kitty corner connected A tiles until it gets to an antipode of that first tile. It then attempts to fill in tiles around that path. There's a lot more to it, but that's basically what it does.