Challenge: Coat of Many Colours
Note Do not copy the solver code directly fron the website. It contains binary data (unprintable characters), thus copying and pasting will probably corrupt data. Use generator (see belo) or download solver to the disk and then run.
Generating solver:
$ ruby generator.rb > solver.rb
$ wc -c solver.rb
72 solver.rb
Using the lambda function defined in the solver:
$ ruby -Kn -e 'f=eval(File.read("solver.rb")); p f[%w[green blue red brown]]'
["red", "green", "brown", "blue"]
Running tests:
$ ruby -Kn tests.rb solver.rb
Code size: 72 bytes
Test: []
=> []: OK
Test: ["green", "blue", "red", "brown"]
=> ["red", "green", "brown", "blue"]: OK
Test: ["gold", "grey", "green"]
=> ["green", "gold", "grey"]: OK
Test: ["ruby", "yellow", "red", "grey"]
=> ["red", "yellow", "ruby", "grey"]: OK
Test: ["gold", "green", "fawn", "white", "azure", "rose", "black", "purple", "orange", "silver", "ruby", "blue", "lilac", "crimson", "pink", "cream", "lemon", "russet", "grey", "olive", "violet", "mauve", "chocolate", "yellow", "peach", "brown", "ochre", "scarlet", "red"]
=> ["red", "yellow", "green", "brown", "scarlet", "black", "ochre", "peach", "ruby", "olive", "violet", "fawn", "lilac", "gold", "chocolate", "mauve", "cream", "crimson", "silver", "rose", "azure", "lemon", "russet", "grey", "purple", "white", "pink", "orange", "blue"]: OK