The following is a baseline of what I’m thinking, this is what I typed up last night in processing. It doesn’t have the best anything, but its quick and dirty. I need to start fleshing out how each function works, add test scenarios for each section, and then tie the tests together with a known good answer. Then it will be getting a baseline solution time frame (figure run until the seed maxes out a the biggest integer).
// initialize
// create seed start at 0
// function to iterate the rng seed
// function to initialize:
// array of space
// array of pieces
// array of shapes
// i might combine those last two
// probably not
// function to choose piece and orientation
// (despite cubes being cubes these will still have 3 orientations)
// function to fill in array if it can and fail if it can't
// start loop
// iterate
// init
// the inner loop (while fail = false, done != true)
// rng choose piece...
// place piece
// if piece goes out of bounds
// set fail to true
// decrement number of pieces available
// if number of pieces = 0
//set done = true
// loop
// if done = true
// output solution
// wait friggin ever
// loop