wave function collapse algorithm pseudocode