diku-dk / openbanko

:older_woman: :goberserk: :raising_hand: Free software tools for working with Big Banko :older_man: :baby: :family:
BSD 2-Clause "Simplified" License
1 stars 1 forks source link

Generalized banko cards #8

Open nqpz opened 6 years ago

nqpz commented 6 years ago

We agree on the rules for banko cards/boards/... (whatever we call them in English). Our tools are hardcoded to handle the case of 9 columns and 3 rows.

What about handling the general case? These attributes can vary:

Some attributes must stay the same:

  1. There must still be at least one filled-out cell in each column
  2. Numbers in a column must have an ascending ordering.
  3. The first column must go from 1 to 9. The last column must go from n 10 to n 10 + 10. All middle columns must go from n 10 to n 10 + 9. If we want to support huge boards we might loosen up and allow other bases than 10.

These requirements cause certain limitations. For example, you cannot have a card with 3 columns and 10 rows and require that exactly 3 filled-out cells are needed in each row, since then there will be at least one column (10 - 3 * 3) without any filled-in cells.

It is also interesting to calculate how this changes the number of possible banko cards.

I would like to one day play banko on a 30x90 board.

athas commented 6 years ago

If only we had a DSL for expressing such rules. That way a format could be declaratively specified and a validation program generated automatically.