-
Notifications
You must be signed in to change notification settings - Fork 1
Home
IdLearn is:
- an idle game,
- a platform for learning basic algorithmics.
The game's objective is to make learning the basics of algorithmics fun by enriching the process with the core part of idle games - the reward system, which prompts users to play more and more. In the process, users get hooked on algorithmics, which is a great thing!
The game is aimed for children and beginners in programming and algorithmics.
The process of performing algorithmic tasks consists of:
- choosing a task from the set of available tasks,
- constructing an algorithm from available components in IdLang,
- submitting your algorithm for said task,
- receiving feedback on the correctness of the submission,
- gaining points.
You can also opt to manually type the expected output for a given task, which is discouraged.
IdLang:
- is an imperative visual programming language,
- is available through a drag-and-drop graphical interface,
- just like building with LEGO - you can link and nest commands together in almost any way!
- consists of the following components:
- integer variables,
- assignment,
- conditional expression,
- loops,
- arithmetic operations,
- logical operations,
- input and output functions.
Following the idle/clicker model, there are two main ways to earn points:
- The first (basic one) is performing a simple, repetitive task, typically clicking. In our case it's manually typing the expected output for a given input and task.
- The more sophisticated way - automatic point generation. In the case of clicker games this usually involves an entity that can be acquired with the in-game currency. In Idlearn, what serves this role are the user's algorithmic solutions which run on continuously generated tests.
Generating points from the tasks and acquiring more tasks is the primary objective of the game.
The in-game store will most likely offer not only more tasks, but also:
- points-per-test bonuses,
- speed increments for automatic point generation,
- higher memory limits,
- task hints.
It would be ideal for the user to be able to track their progress in more ways than just looking at their point budget or completed tasks. What would aid in tracking progress and may be implemented:
- an achievement system,
- a leaderboard,
- a user stats section: with data such as their tries, number of completed tasks, etc.
- Java 17,
- JavaFX,
- Maven,
- JUnit,
- possibly others.
Inspirations:
- the design of SIO2 "task packages" and automatic testing,
- Human Resource Machine,
- the Scratch language by MIT.
The game's most primitive yet functional form consists of:
- IdLang
- One algorithmic task
- some easy tests,
- a text input box (for manually typing expected task output).
- An interactive graphical layout
- greeting message,
- main menu,
- choice of (1) task.
- Point system
- earning points for the 1 task,
- display of the total amount of points.