Contribution
Solo Developer
Tools
Unity
C#

Introduction

This is a Morse code system in which the player enters letters in Morse code before time runs out. The initial prototype was developed in 2021 and reworked in 2025. It was a new approach at the time, using how long the user holds down a button to distinguish between dots and dashes.

How It Works

The system identifies which letter, number or symbol is entered based on how long the player presses the switch. A long press is considered 1, and a short press is considered 0. The program then matches the 1–0 combination to the corresponding letter, number or symbol. This is how real-life Morse code works as well.

 void LetterMaker(string OlRule)
        {
            alphabet = '\0';
            switch (OlRule)
            {
                // Basic alphabet
                case "Ol": alphabet = 'A'; break;
                case "lOOO": alphabet = 'B'; break;
                case "lOlO": alphabet = 'C'; break;
                case "lOO": alphabet = 'D'; break;
                case "O": alphabet = 'E'; break;
                case "OOlO": alphabet = 'F'; break;
                case "llO": alphabet = 'G'; break;
                case "OOOO": alphabet = 'H'; break;
                case "OO": alphabet = 'I'; break;
                case "Olll": alphabet = 'J'; break;
                case "lOl": alphabet = 'K'; break;
                case "OlOO": alphabet = 'L'; break;
                case "ll": alphabet = 'M'; break;
                case "lO": alphabet = 'N'; break;
                case "lll": alphabet = 'O'; break;
                case "OllO": alphabet = 'P'; break;
                case "llOl": alphabet = 'Q'; break;
                case "OlO": alphabet = 'R'; break;
                case "OOO": alphabet = 'S'; break;
                case "l": alphabet = 'T'; break;
                case "OOl": alphabet = 'U'; break;
                case "OOOl": alphabet = 'V'; break;
                case "Oll": alphabet = 'W'; break;
                case "lOOl": alphabet = 'X'; break;
                case "lOll": alphabet = 'Y'; break;
                case "llOO": alphabet = 'Z'; break;

                // Numbers
                case "Ollll": alphabet = '1'; break;
                case "OOlll": alphabet = '2'; break;
                case "OOOll": alphabet = '3'; break;
                case "OOOOl": alphabet = '4'; break;
                case "OOOOO": alphabet = '5'; break;
                case "lOOOO": alphabet = '6'; break;
                case "llOOO": alphabet = '7'; break;
                case "lllOO": alphabet = '8'; break;
                case "llllO": alphabet = '9'; break;
                case "lllll": alphabet = '0'; break;

                // Other symbols
                case "llOOll": alphabet = ','; break;
                case "OOllOO": alphabet = '?'; break;
                case "lllOOO": alphabet = ':'; break;
                case "lOOOOl": alphabet = '-'; break;
                case "OlOOlO": alphabet = '"'; break;
                case "lOllO": alphabet = '('; break;
                case "lOllOl": alphabet = ')'; break;
                case "lOOOl": alphabet = '='; break;
                case "OlOlOl": alphabet = '.'; break;
                case "lOlOlO": alphabet = ';'; break;
                case "lOOlO": alphabet = '/'; break;
                case "OllllO": alphabet = '\''; break;
                case "OllOlO": alphabet = '@'; break;
                case "OlOlO": alphabet = '+'; break;

                default: alphabet = '\0'; break; // Set the default value (in case no match is found)
            }
        }

Further Work

Currently planning to visualise the hierarchy of letters in a binary tree.