This implementation is a copycat of Scott Boland's Java implementation, but re-written into Python. It's not a direct translation - but based on his code. I did not carry over the GUI, as this version can more usefully be run from command line, or imported for use by other Python scripts, and GUIs restrict the platform too much.
I also tried to make the code "more pythonic".
There are no particular installation instructions, just clone and run, e.g.
$ git clone https://github.com/jalanb/co.py.cat.git $ cd co.py.cat/copycat $ python main.py abc abd ijk
The script takes three arguments. The first two are a pair of triplets with some change, for example "abc" and "abd". The third is a triplet which the script should try to change analogously
For example the following invocation will probably display "ijl"
$ python main.py abc abd ijk
A big "Thank You" for
You geeks make it all so worthwhile.
- "The Copycat Project: An Experiment in Nondeterminism and Creative Analogies" by Hofstadter, Douglas
- "Analogy-Making as Perception" by Mitchell, Melanie
- The Fargonauts' "FARGonautica", a curation of analogous projects by Alex Linhares
- Arthur O'Dwyer (Quuxplusone on GitHub) has further cleaned and extended this code (including a GUI) in a fork available here.