NaNoGenMo / 2023

National Novel Generation Month, 2023 edition.
27 stars 2 forks source link

Il nome della zebra #3

Open Ben-Wormald opened 1 year ago

Ben-Wormald commented 1 year ago

My second time participating! The aim is to generate a solvable zebra puzzle with however many clues it takes to hit 50k words. I read The Name of the Rose this year and a monastery murder mystery seems like a good setting for the puzzle.

ikarth commented 1 year ago

Reminds me a bit of Calvino's "Prose and Anticombinatorics", or Georges Perec's approach to writing Life: A User's Manual.

I think there's a lot of potential in using a structure (such as a puzzle) for a generated novel.

Ben-Wormald commented 1 year ago

https://github.com/Ben-Wormald/nanogenmo-2023 Started with a proof-of-concept for generating clues, looks like it's working well with a small fixed number of items

verachell commented 1 year ago

A cool project. Can't wait to see how this turns out!

mmoskowitz commented 1 year ago

Very interested in this as another person who has done a puzzle-based NaNoGenMo.

Ben-Wormald commented 1 year ago

I've made the clue generator use a dynamic number of items/attributes - unfortunately the brute force approach breaks down at 5x5. I'm wondering if taking a small random sample of the solution space is viable, otherwise I might need to change this approach of accepting clues which narrow down the solutions

Ben-Wormald commented 11 months ago

No luck with the sampling approach so instead started again with a graph representation - build the full graph for a random solution then pick a random MST for the final set of clues. It's much better for handling large numbers!

There's redundant clues with this method - one optimisation to make is leave out one item from each group in the MST as that can be inferred, otherwise potentially attempting to remove clues and test if it's solvable.

But now it's probably time to start turning the set of clues into some actual prose!

Ben-Wormald commented 11 months ago

Here's my first complete iteration, 51,045 words which should be fully solvable: https://raw.githubusercontent.com/Ben-Wormald/nanogenmo-2023/9132d60a3b65233bbde160cedd631709f293edc9/output.txt

Some bits I still want to do before the end:

mmoskowitz commented 11 months ago

Oh this is very cool. For another attribute, can I suggest the care of a specific saint's relics, or even multiple relic types per saint? Edited: And I see you are way ahead of me. Never mind, and again, wow!