indiegame.fan
Finite State Automaton Challenges header art

Finite State Automaton Challenges

In this game, we will play with the simplest automaton model, Finite State Automaton, and use it to cope with 80 challenges.

Steam Page
Developer
Publisher
Release
October 30, 2023
2 years and 277 days ago
Steam Reviews
Mostly Positive11 reviews72.7%

Does this feel indie?

Vote based on whether this game feels indie to you. You can change your vote at any time. Results earn an IGF score after 10 accepted votes.
No votes yet
Vote on More Games
Game contextLatest: IGF Team
ContextThe evidence factors used to assess whether this game belongs on IndieGame.Fan.Status
Notes
Latest Contributor: IGF TeamEdit notes
Search Google: Who developed Finite State Automaton Challenges?Developer scaleThe operating scale of the game's developer.
Search Google: Who published Finite State Automaton Challenges?Publisher scaleThe operating scale of the game's publisher.
Search Google: Is Finite State Automaton Challenges self-published or published by Tramolly Game?Publisher statusHow the game's publishing relationship is classified.
Search Google: How is Finite State Automaton Challenges and Tramolly Game funded?FundingThe known source of funding behind the game.
Search Google: Who controls the creative direction and IP for Finite State Automaton Challenges and Tramolly Game?Creative controlWho appears to retain creative control of the game.
Search Google: What is the release status of Finite State Automaton Challenges?Release statusWhether and how the game has been released.

Media

6 items

About the Game

Automaton is a machine that answers a specific question without human intervention once it is turned on, such as: Whether a + b = c?

In this game, we will use the simplest automaton model, the Finite State Automaton, to cope with 80 challenges. They come from character string manipulation, binary numbers, and daily life. Don't worry if you are unfamiliar with Finite State Automaton; this game contains a tutorial to get started quickly. Also, you can read the following introduction.

Finite State Automaton


Finite State Automaton (FSA) is the simplest automaton type. A finite state automaton consists of several states and transition rules. A transition rule describes when a state transits to another. So, it looks like a metro map. The clients of a finite state automaton are the character strings. It decides which strings are accepted and which strings are rejected. For example, an FSA can accept valid emails, phone numbers, etc. Now, let's dive into the first example:

It has two states: the left state "1," and the right state "2". "1" marked with the green color means the automaton starts here. "2" marked with the blue color means that the automaton accepts the input string only if it stops here and read all characters in the order of the string. Consequently, this automaton is to accept "a" and reject any other string.

Question: try to design an FSA accepting "ab" and an FSA accepting "a" or "b" (abbr., "a|b") on your own (They are two challenges in the game).

Finite State Automaton with Various States

Traditional finite state automata have only three types of states: begin, accept, and normal. In this game, you can play automata with different states at different levels. The picture below shows an example.

Non-deterministic

The most essential concept of FSA (and other automaton types) is called Non-deterministic. To introduce this concept, here is the second example of an automaton. It accepts all strings (only consisting of 'a' and 'b') ending with 'b':

Run this automaton over "b" in your head: (1) It starts at "1", runs the self-loop of "1", then reads all of "b" as well as stops at "1", so reject "b"; (2) It starts at "1" and transits to "2", then reads all of "b" as well as stops at "2", so accept "b". A non-deterministic finite state automaton (NFA) accepts a string if at least one trace ends at a state marked with the blue color.

Run this automaton over "ab" in your head: (1) It starts at "1", runs the self-loop of "1" twice, then reads all of "ab" as well as stops at "1", so reject "ab"; (2) It starts at "1", run the self-loop of "1" once, and transits to "2", then reads all of "b" as well as stops at "2", so accept "ab."

Non-deterministic is essential because it allows the FSA to guess, which lets us design an automaton naturally (since we, human beings, like to guess) and quickly.