Bistercian Numbers Library

Hi, after reading about the Cistercian numbers thread (link below), I spent a few hours creating a tiny library to display numbers similar in nature, but based more on the binary system… I call it ‘Bistercian’ numbers.

This library prints any number up to 9999 within a 4x4 space, similar to a Cistercian number, but also including the representation of the number 0, each 2x2 space (corner) is represented in binary (from 0 to 9). You can find the full detail here: GitHub - franalvarez21/Arduboy-BistercianNumbers: Tiny 4x4 Binary-Cistercian numbers for Arduboy

As a library this also contains an example. And to facilitate the lecture I created this picture, similar to the one used to explain the Cistercian numbers:

This library was made as a proof of concept and as a possible added flavor to some games. Please keep in mind that this is the first time I publish a library :roll_eyes: so… I’m not sure if I should add a reference/mention to other works, like the Arduboy2 lib… or something, again, I’m new to this…so please let me know.

Anyone interested in the subject please go to the post made by @poevoid explaining all of this, since it follows more the actual rules of the Cistercian numbers Cistercian Number Counter, and since it contains a nice demo about it :slight_smile:

Also, a mention to this post Tinyfont for Arduboy for the publication of the Tinyfont library (@Botisaurus).

Both of this posts led me to the idea of publishing something, even if is not of a significant use :sweat_smile:

4 Likes

This is awesome!! I love the way the end result looks, the whole thing gives me major QR code vibes. I’ll have to experiment with it a bit!

I find this amusing because with 16 squares you could actually represent 65,536 different ‘values’, so there are over 50,000 arrangements that aren’t valid ‘Bistercian’ numerals.

I actually found the image backwards to what I was expecting.
I thought the red was supposed to represent the corner of the image rather than the rest of the glyph.

I.e. I originally thought 0-9 was supposed to be in the bottom left corner of the glyph and 0000-9000 was supposed to be in the top right.


If you’ve made the code from scratch without modifying existing code or using existing code as a reference then you don’t need to worry about doing anything else.

If you’ve modified some existing code or used it as a reference to the point where it could be argued that you’ve effectively modified the existing code, you should check that code’s licence to see what the conditions of the licence are.


By the way, you don’t actually need the pointer to Arduboy2Base, you can just use Arduboy2Base::drawPixel without a reference because drawPixel is static.

Keeping a pointer would only be useful if drawPixel were virtual (which it isn’t).
And even then, you’d probably be better off using a reference instead of a pointer.
References are a lot safer because you don’t have to worry about null pointers.

1 Like

Thanks @Pharap for the feedback. Just updated the library so it is no longer needed to pass the arduboy instance to it. :slight_smile:

Yes, in 16 squares we can represent a much bigger number… but this is more of an implementation of the Cistercian numbers, than anything else… so has similar limitations. I will use it for cool effects than anything else.

Also, I can update the picture, let me know… but I think it looks good enough (with black, white and red colors).