First time poster here, seeking help and guidance from people like you, who are light-years ahead of me in your programming journeys.
So! As the title suggests, I'm trying to tackle Hashlife.
Am I jumping in blind? No, well, not entirely!
First thing, I've studied this article concerning GoL:
https://medium.com/@d.dadiani343/how-to-implement-conways-game-of-life-in-java-e1f9196d9844
And the Java code found in the article-linked Git repository:
Doing so, I've acquired a basic understanding of how GoL works.
As is natural, I've attempted to expand the grid - more cells, more fun! Right?
Sure! But, I've also discovered that this basic implementation slows down considerably, what with every cell being associated to a running thread.
Good then, 'how to speed GoL up', I Googled. The finds: Hashlife, in all its glory.
How does Hashlife work? I've stumbled into a few more articles - these, in particular:
https://en.wikipedia.org/wiki/Hashlife
https://www.dev-mind.blog/hashlife/
https://jacobfilipp.com/DrDobbs/articles/DDJ/2006/0604/0604b/0604b.html#rl1
https://www.thelowlyprogrammer.com/2011/05/game-of-life-part-2-hashlife.html
Now, the 'why' I'm here, writing this post: I have sort of grasped, on a conceptual level, how William Gosper's algorithm works, with the use of a quad-tree, the subdivision of the grid in smaller and smaller square-shaped sub-grids (nodes), the computation and canonization of node centers - etc.
What's the matter, then? Ah! You see... I boot up Eclipse (yes, I'm practicing Java), create a new project and... Nothing! Absolute, pure, unadulterated mind blank.
I struggle to understand how to traduce the algorithm into actual classes and functions. Am I to use threads, still? How do I subdivide a node into smaller nodes? How, in this new scenario, is the state of a cell computed, based on Life's three basic rules? How do I compute the state of the cells only in the center-region of a node? How do I canonize the base-patterns? How do I hash them? So on, and so forth(these are but a few of the questions buzzing in my head).
Then, a question (the nth at this point, really): does any of you know about any manner of step-by-step guide on how to codify Hashlife? Something to give-out pointers, help when a snag is met.
At any rate! If you read this far, thanks for your patience.