Skip to content

Instantly share code, notes, and snippets.

@jhannah
Last active October 13, 2019 04:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jhannah/13af2bc097c2546520ad6e0b08d591cd to your computer and use it in GitHub Desktop.
Save jhannah/13af2bc097c2546520ad6e0b08d591cd to your computer and use it in GitHub Desktop.
6x4 grid of eggs. Remove 3 eggs at a time, maximizing balance of entire container at each step.
midwestdevchat.com (Slack) #nondevshitineedhelpwith 2019-10-11
starting position:
O O O O O O
O O O O O O
O O O O O O
O O O O O O
---------------------------------------
caramiki's progression #1
O O O O O O
O O . O O O
O . O O . O
O O O O O O
O O O O O O
O . . O . O
O . O . . O
O O O O O O
O O O . O O
O . . . . O
O . . . . O
O O O O O O
O O . . O O
O . . . . O
O . . . . O
O O . . O O
O O . . . O
. . . . . O
O . . . . O
O . . . O O
O . . . . O
. . . . . O
O . . . . .
O . . . . O
. . . . . O
. . . . . .
O . . . . .
. . . . . O
---------------------------------------
caramiki's progression #2
. O O O O O
O O O O O O
O O O O O O
O . O O O .
. O . O . O
O O O O O O
O O O O O O
O . O . O .
. O . O . O
O O O . O .
. O O O O O
O . O . O .
. O . O . O
O . O . O .
. O . O . O
O . O . O .
. O . O . .
O . . . O .
. O . O . O
. . O . O .
. O . O . .
. . . . O .
. O . . . .
. . O . O .
. O . . . .
. . . . O .
. . . . . .
. . O . . .
---------------------------------------
jhannah's progression
O O O O O O
O O . O O O
O . O O O O
O O O O . O
O O O . O O
O O . O O O
O . O . O O
. O O O . O
O . O . O O
. O . O . O
O . O . O O
. O O O . O
O . O . O .
. O . O . O
O . O . O .
. O . O . O
O . . . O .
. O . O . O
. . O . O .
. O . . . O
O . . . O .
. O . . . .
. . . . O .
. O . . . O
O . . . . .
. . . . . .
. . . . . .
. O . . . O
---------------------------------------
final position:
. . . . . .
. . . . . .
. . . . . .
. . . . . .
@davidknaack
Copy link

I added a new move selection strategy for choosing a random best next move (order the set of possible next moves by board balance and pick a random move from the top options), and after playing around a little it's clear that with the way I've set up the balance evaluation there are a lot of options that solve the puzzle with the minimum possible imbalance even without any lookahead. These games all look a bit like the example below, with board balance alternating between 0 and 0.7071.

I'm thinking that since there are a lot of well-balanced solutions maybe the next step is to add a selection strategy that inserts a symmetry sort before the random pick so that it will prefer various types of symmetry.

Fun puzzle, thanks for posting it!

 O  O  O  O  O  . 
 O  O  O  O  O  O 
 O  O  .  O  O  O 
 O  .  O  O  O  O 
 balance: 0.707

 O  .  O  O  O  . 
 O  O  O  .  O  O 
 O  O  .  O  O  O 
 O  .  O  .  O  O 
 balance: 0.000

 .  .  O  O  O  . 
 O  O  O  .  O  . 
 O  O  .  O  O  O 
 O  .  .  .  O  O 
 balance: 0.707

 .  .  O  O  .  . 
 O  O  O  .  O  . 
 O  O  .  O  .  O 
 .  .  .  .  O  O 
 balance: 0.000

 .  .  O  .  .  . 
 O  O  O  .  O  . 
 .  O  .  O  .  . 
 .  .  .  .  O  O 
 balance: 0.707

 .  .  O  .  .  . 
 O  .  .  .  O  . 
 .  O  .  O  .  . 
 .  .  .  .  .  O 
 balance: 0.000

 .  .  O  .  .  . 
 O  .  .  .  .  . 
 .  .  .  .  .  . 
 .  .  .  .  .  O 
 balance: 0.707

 .  .  .  .  .  . 
 .  .  .  .  .  . 
 .  .  .  .  .  . 
 .  .  .  .  .  . 
 balance: 0.000

Max balance: 0.707
Min balance: 0.000
Avg balance: 0.354
  Play time: 47.43ms

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment