diff --git a/example-puzzles/example/1/puzzle.moth b/example-puzzles/example/1/puzzle.moth new file mode 100644 index 0000000..294c99c --- /dev/null +++ b/example-puzzles/example/1/puzzle.moth @@ -0,0 +1,45 @@ +Author: neale +Summary: static puzzles +Answer: puzzle.moth + +Puzzle categories are laid out on the filesystem: + + example/ + ├─1 + │ └─puzzle.moth + ├─2 + │ ├─puzzle.moth + │ └─salad.jpg + ├─3 + │ └─puzzle.py + ├─10 + │ └─puzzle.py + └─100 + └─puzzle.moth + +In this example, +there are puzzles with point values 1, 2, 3, 10, and 100. + +Puzzles 1, 2, and 100 are "static" puzzles: +their content was written by hand. + +Puzzles 3 and 10 are "dynamic" puzzles: +they are generated from a Python module. + +To create a static puzzle, all you must have is a +`puzzle.moth` file in the puzzle's directory. +This file is in the following format: + + Author: [name of the person who wrote this puzzle] + Summary: [brief description of the puzzle] + Answer: [answer to this puzzle] + Answer: [second acceptable answer to this puzzle] + + This is the puzzle body. + It is Markdown formatted: + you can read more about Markdown on the Internet. + +To move to the next puzzle in a category, +someone on some team must provide an answer to the highest-point puzzle in that category. + +The answer to this puzzle is the name of the file required to make a static puzzle. diff --git a/example-puzzles/example/2/puzzle.moth b/example-puzzles/example/2/puzzle.moth new file mode 100644 index 0000000..61b63ec --- /dev/null +++ b/example-puzzles/example/2/puzzle.moth @@ -0,0 +1,14 @@ +Author: neale +Summary: Static puzzle resource files +Answer: salad + +You can include additional resources in a static puzzle, +by just dropping them in the directory. + +You can refer to them directly in your Markdown, +or use them however else you see fit. +They will appear in the same directory on the web server once the exercise is running. + +![Leafy Green Deliciousness](salad.jpg) + +The answer for this page is what is featured in the photograph. diff --git a/example-puzzles/example/2/salad.jpg b/example-puzzles/example/2/salad.jpg new file mode 100644 index 0000000..cf2239e Binary files /dev/null and b/example-puzzles/example/2/salad.jpg differ diff --git a/example-puzzles/example/3/puzzle.py b/example-puzzles/example/3/puzzle.py new file mode 100644 index 0000000..39636f7 --- /dev/null +++ b/example-puzzles/example/3/puzzle.py @@ -0,0 +1,20 @@ +#!/usr/bin/python3 + +def make(puzzle): + puzzle.author = 'neale' + puzzle.summary = 'dynamic puzzles' + answer = puzzle.randword() + puzzle.answers.append(answer) + + puzzle.body.write("To generate a dynamic puzzle, you need to write a Python module.\n") + puzzle.body.write("\n") + puzzle.body.write("The passed-in puzzle object provides some handy methods.\n") + puzzle.body.write("In particular, please use the `puzzle.rand` object to guarantee that rebuilding a category\n") + puzzle.body.write("won't change puzzles and answers.\n") + puzzle.body.write("(Participants don't like it when puzzles and answers change.)\n") + puzzle.body.write("\n") + + number = puzzle.rand.randint(20, 500) + puzzle.log("One is the loneliest number, but {} is the saddest number.".format(number)) + + puzzle.body.write("The answer for this page is {}.\n".format(answer))