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.