In summary, the challenge is to provide the glider synthesis for a Game of Life configuration, which is your input.
What does this mean?
Well, firstly, let me explain a few terms.
By Game of Life, I mean Conway's Game of Life. If you don't know what this is, you can read the Wikipedia article at https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life. It explains it pretty well.
If you don't know what a glider synthesis is, it's pretty much a bunch of gliders that will form a specific configuration after a certain number of steps. Read http://www.conwaylife.com/wiki/Glider_synthesis for more details.
Okay, what are the rules?
- Standard Loopholes Apply
- The glider synthesis must only consist of the standard 5-cell gliders, but they can start in any of their 4 states/colors.
- The glider synthesis is allowed to create other things, as long as they do not share a neighbor with and are not a neighbor of any living cell within the desired outcome. Moving structures can be created as byproducts as well.
- The desired outcome will be at most 10x10.
- The desired outcome will be achievable with a glider synthesis.
Input will be given as a 2D array of truthy/falsy values, which indicates the desired outcome (the desired outcome will be reachable). The array will be at most 10 by 10 in size. The desired outcome will not necessarily be a stable configuration. Output will also be given in the same format, indicating a valid glider synthesis (as defined by the rules above) to produce this outcome (the output can be as large as necessary). The output doesn't have a size limit. It doesn't necessarily need to be the fastest or the smallest; as long as it's valid, it's fine.
Summary of Everything
You will be given input as a 10x10 or smaller 2D array of truthy/falsy values of some sort. This could be a 2D array of something, an array of strings, a multi-line string, etc. Your task is to find a configuration using only standard 5-cell diagonal gliders that will eventually result in this outcome, where other byproducts are permitted so long as they do not interact in any way with the desired outcome. Given this configuration, you are to output a 2D array of truthy/falsy values in some format.
This is a code-golf challenge, so the shortest program will win. Tiebreak is by earlier submission.
In terms of test cases, you can just put the program output into a GoL emulator and run it and see if you get the desired output eventually.
I don't have many well developed ideas myself, but what you could try to do is find all possible reverses of a GoL scenario (i.e. find all configurations that could evolve to the current one), though that's going to take a lot of power quickly.