GithubHelp home page GithubHelp logo

donkirkby / donimoes Goto Github PK

View Code? Open in Web Editor NEW
6.0 3.0 4.0 41.14 MB

My Book of New Puzzles and Games with Dominoes

Home Page: https://donkirkby.github.io/donimoes/

License: MIT License

Python 100.00%
puzzle dominoes

donimoes's Introduction

Donimoes: New Games and Puzzles

Buy the Book

When I tell people that I like domino games, they are often surprised to hear that you can do more than just match the numbers. If you look in a book of games, often with Mr. Hoyle's name on the cover, you might find the basic game and maybe All Fives. If you're lucky, you'll find Chickenfoot and Mexican Train.

This is a collection of domino games and puzzles that will broaden your horizons beyond a chain of dominoes with matching numbers. You'll find new games and puzzles that I designed, as well as some of my favourite domino games and puzzles by other designers.

  • Unmatched Donimoes is a puzzle I designed where you have to slide all the dominoes into a rectangular shape, without sliding any matching numbers next to each other. (1 player, double-six dominoes)
  • Capturing Donimoes is a puzzle I designed where you have to collect all the dominoes by sliding matching numbers next to each other. (1 player, double-six dominoes)
  • Mirror Donimoes is a puzzle I designed where pawns walk around on top of the dominoes. (1 player, double-six dominoes, 4 pawns)
  • Tetradominoes is a game I designed where you play matching dominoes in a grid, then try to play the tetromino shapes on top. (1-4 players, double-six dominoes, 7 cardboard tetrominoes, and some beads, buttons, or coins)
  • Bee Donimoes is a puzzle race game I designed where a swarm of dice bring nectar back to the hive. (1-6 players, double-six dominoes, 3-6 dice, and a timer)
  • Domino Finder is a memory game I designed where you have to find the treasure domino without falling in a trap. (2-4 players, double-six dominoes, pawns, and two dice)
  • Mountains and Valleys is a solitaire game by Sid Sackson where you have to lay out a map that you can hike on. I added a cooperative version, and adapted it from paper, pencil, and dice to use dominoes. (1-4 players, double-six dominoes)
  • Domino Runners is based on board games by Roland Siegers, where your runners run across a grid of dominoes, dropping checkers and trying to capture your opponent's checkers. (2 players, double-six dominoes, and checkers)
  • Fujisan is a solitaire game by James Droscha where you help four Shinto priests climb to the peak of Mount Fuji. I found 20 layouts that are much more challenging than usual. (1 player, double-six dominoes, and four pawns)
  • Cobra Paw is a quick-reaction game by Derek Weston. (2-4 players, double-six dominoes, and two dice)
  • All Fives is a traditional dominoes game, where you score points by making the ends add up to a multiple of five. (2-4 players, double-six dominoes)
  • Classic Puzzles where you have to lay out dominoes in a given pattern to meet some goal, popularized by Henry Ernest Dudeney. Also includes Dominosa by O.S. Adler. (1 player, double-six dominoes, paper and pencil)
  • Solutions

The book of rules includes problems to solve for each puzzle. The Unmatched Donimoes problems are patterns of dominoes for you to start from, like this:

Unmatched example

The Dominosa problems are a pattern of numbers to join into dominoes, like this:

Dominosa example

To try the puzzle, get a set of dominoes. Then either read the rules, buy the book, or download the PDF.

If you're interested, you can read about making donimoes or my design journal. If you're brave, you can read about experiments in progress (PDF).

donimoes's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar donkirkby avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

donimoes's Issues

Create demo videos

Some people learn better through video, so explaining the rules that way might be helpful. It probably makes sense to post a separate video for each game or puzzle.

New puzzle: two-finger puzzle

Each layout contains one "0" number and one "6" number. It may also contain some face-down dominoes. Start with your left index finger on the "0" and your right index finger on the "6".

On each turn, do one of the following:

  • Move a finger: move one of your fingers to an adjacent number. The new total for both fingers must be 5, 6, or 7.
  • Move a domino one space along its long axis. It must be a domino with your finger on it, and you must keep all the dominoes connected in a single group.

Goal: have your left finger on the "6" and your right finger on the "0".

Avoid all matches in starting positions

Many people ask if they can collect dominoes that start out with a matching neighbour. It would be simpler if none of the problems had matching neighbours in their start positions. However, it may not be possible for the larger sizes.

New puzzle: Ladder Donimoes

Lay out dominoes in start position. Put four tokens in four corners, then move one token at a time. Must move onto 1, 2, 3, 4, 5, and go back to 1. Solve by getting all four tokens to centre, probably four 5s. Alternative goal: get all tokens into one connected group?

Alternative names: Grouper Donimoes, Cycle Donimoes, Stepper Donimoes, Sisyphean Donimoes?

Design a domino game

The domino puzzles have been a fun project, but what about designing some new domino games?

Inspiration from Kingdomino and the Domino Bead Game.

Other ideas: rules for traditional games like Sniff, and maybe a web implementation or pygame version? With an AI?

Create starting positions with holes

A more restricted version of issue #2, just use a single hole or a small set of holes in an interesting pattern. One thing this would allow is 3x3, 5x5, and 7x7 starting positions.

Here's an example 3x3 position with a valid solution:

5|4 3
    -
2   4
-
1 2|3

Mosaic patterns

Other people have created mosaic images with sets of dominoes, such as Ken Knowlton. All the ones I've seen used at least 6 sets of double-nine dominoes. I wonder if I could create a recognizable pattern with one of the following:

  • a single double-six set
  • a single double-nine set
  • two double-six sets (enough to play The Domino Glass Bead Game)

I wonder if I could find some starting positions for other puzzles that contain a recognizable pattern. (Maybe score the puzzle generator on start position symmetry.)

Use random starting shapes

Start with a small board. Add dominoes until the board is connected. Add an empty border. Repeat.

Score higher when there are more neighbours in the starting shape, so a square shape is the ideal?

New puzzle: no match sliders

Similar to the first rule set I used, but the only restriction on movement is that you can't have any matching pips next to each other. Goal is to form a rectangle, and you still can't split the group.

Reduce duplicates in hall of fame

When a run reports the top problems, they're almost identical. Don't store more than one problem in the hall of fame with the same starting layout.

Add rules for the Domino Bead Game

Make a book of games and puzzles to play with dominoes, by adding the Domino Bead Game. Maybe create some problems to solve? Not sure how to deal with hidden information, maybe look at Bridge problems.

Also try to adapt the game to play with a single set of double-six dominoes.

Add a puzzle race game

Mephisto is a game by Christian Freeling that's a bit like Ricochet Robots.

  • Use a chess set for the pawns: pawn, rook, knight, bishop, and queen.
  • Use a white set of chess pieces to identify which die goes with which piece, and use a black set to run around the board.

Add rules for Cross Currents

Cross Currents is a game by Sid Sackson, with some mechanics similar to Mountains and Valleys, also by him. Change Mountains and Valleys to be a solitaire/cooperative version of Cross Currents.

New Puzzle: Mirror Donimoes

Ladder Donimoes (#31) seemed very promising, but it seems to be slightly too hard to solve. I wonder if I can use the same goal with better clarity in the movement mechanic.

Partner Donimoes starts with a rectangular layout of dominoes, and a pawn on each corner. The goal is to get all the dominoes into a connected group. Every pawn has a partner: the number on the other end of its domino. There are two types of moves:

  1. Pawn move - one space orthogonally to a different domino, where the pawn's new partner number matches its old partner number. Two pawns cannot be on the same domino.
  2. Domino move - any domino with a pawn on it can move one space along its long axis. All dominoes must stay connected in a single group, diagonal doesn't count.

Remaining Tasks

  • proofread solutions
  • lower case domino
  • combine repeated moves
  • diagrams and text for puzzling.se
  • move to main rules

New puzzle: isolationist

Trying to make a reversible capture mechanism: disconnect a domino from the group when it is only connected by a single matching number. The goal is to disconnect all the dominoes. You can reverse the disconnection by just sliding it back into a connected space.

New puzzle: pinned down

Similar to the current puzzle where matching numbers can't touch, but a domino is pinned down and can't move if either of its numbers has a larger neighbour. The rule applies at the start and end of a move.

Add rules for Somerset

Somerset is a card game designed by A.J. Hodges in 1903. It's not clear to me whether the counting cards are extra or just some of the regular fraction cards. If they are some of the regular 28 cards, then you should be able to play with a double-six set of dominoes.

Neck parity strategy for Dominosa

Add another solving strategy when two unsolved areas are separated by a narrow neck. The number of cells in each area must be even, so you can sometimes draw a divider where a domino boundary has to be. Can it be generalized from the single neighbour rule?

Add rules for All Fives

To extend the collection of games, add some traditional games, like All Fives, All Threes, and Block Dominoes.

Generate HTML

Generate PNG diagrams, plus solutions in an HTML or markdown page.

Try mutation testing

I want to try out cosmic ray, a tool for measuring the quality of your unit tests. I also want to try out Pycharm as an IDE.

  • Get it running in Pycharm with Python 3.
  • Run cosmic ray on it to identify classes with poor coverage.
  • Improve coverage on the worst class.

Generate PDF

Starting with a set of problems, generate a PDF document that shows a diagram of each starting position, plus the solutions.

Make adding donimoes puzzle easier

The Adding Donimoes puzzle from #15 sort of works, but it's too difficult. Try showing the orientation of adding the pieces in the queue.

Describe an add move by listing the two matched dominoes. For example 13+1535 would describe this move:

1+3

1 3
- -
5 5

New puzzle: stacking dominoes

Start with a rectangular layout of dominoes, then stack some of the dominoes on top of the others, so that upper layers match the numbers of the lower layers. Dominoes can only move to a higher layer, not within a single layer. This is certainly possible for two layers, but the rules would have to change for more than two. Maybe blanks are wild?

Convert code block diagrams to images

I like editing the rules in markdown, but the diagram images look much better than the raw code blocks. Move the rules files out of the docs folder, and then generate them with diagrams as part of the script that generates the PDF file.

New puzzle: adding dominoes

Suggested rules:

  • A puzzle contains a list of dominoes in the order that they have to be added.
  • A domino must be added so that it neighbours at least two numbers from other dominoes.
  • When a domino is added or when it moves, both of its numbers must be equal or greater than all of their neighbouring numbers from other dominoes.
  • Dominoes can only move one space at a time along their long axis.
  • You can't break up the dominoes into more than one group.
  • The problem is solved when all the dominoes have been added, and the layout is in a rectangular shape.

I like the no-match sliders from #10, but I'm trying to find a puzzle that's faster to start. The idea for this puzzle is that you add one domino at a time, so you find the next domino from the pile, add it, maybe make a couple of sliding moves, then find the next domino, and so on.

Possible down side: some moves are not reversible.

Possible alternative rule: stick with the no matches, but added dominoes have to connect to at least two numbers above or to the left of them.

Break lists in PDF

Report lab doesn't add a page break in the middle of a numbered list. See if an upgrade helps. I think there's a function to override.

New puzzle: sudominoku

Place 9 single numbers, plus some of the dominoes in a Sudoku grid. Use the remaining double-9 dominoes (minus doubles) to fill in the rest of the grid. The problem was originally described in Games Magazine in July 2009, and it was used in a programming contest.

Maybe loosen the rules to any rectangular shape. That would remove the need for the single numbers, and it would allow some puzzles with the more common double-6 set.

Web site theme

Change the theme to bulma-clean-theme, and maybe take a photograph of some dominoes for the header image.

Add diagrams to Dominosa strategy

After the basic Dominosa puzzles are added for #22, add some features to the diagrams to explain how to mark a pair as split, and whatever else is helpful to explain the solving strategy.

Give a detailed solution for a small problem, because some people have trouble understanding the rules.

Simplify evolutionary search

The current searches use the DEAP library, which is very flexible, but it's not easy to learn. Try wrapping DEAP in a facade that looks something like the simple example in this article.

Related: try the pairing method described in the article's travelling salesmen implementation.

Use an evolutionary algorithm

Shuffle a few dominoes and keep the ones with the "best" result.

Ideas for scoring:

  • fewest dominoes left in smallest state
  • longest solution if there is one
  • fewest choices in solution if there is one?

Add dominosa problems

Generate some dominosa problems, preferably ones that can be set up with half the dominoes and solved with the other half. That way you don't need to get the print size to exactly match your dominoes.

I'm also experimenting with a solitaire version, where you turn over one domino at a time and choose where to place it. Maybe you can buy the option to move a domino by discarding a face down domino.

  • Generate puzzles.
  • Check problems in rules, and report fitness score.
  • Generate puzzles at different levels, requiring more advanced solving strategies.

Publish on Lulu

Once there are a few original puzzles and games, consider publishing. It looks like Gamecrafter could package three small punchouts with tetrominoes and tokens, a booklet with the rules, maybe some cards, and put it all in a box. At a wild guess, I might be able to put it together for $20, not including the dominoes.

Another option is to publish a book on Lulu. Maybe collect my favourite puzzles and games with half their problems into a smaller booklet.

  • first draft on Lulu
  • cover photo or art
  • back cover text
  • back cover quotes
  • table of contents with page numbers
  • title page
  • classic puzzles

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.