Skip to content

A small game that allows to set and practice programming tasks.

License

Notifications You must be signed in to change notification settings

AndreasWillibaldWeber/ProgGame

Repository files navigation

spec

Programming Game

A small game that allows to set and practice programming tasks.

ProgGame on Linux

Manuals

Build Tools:

  • neutralino.js
  • React.js
  • Mantine
  • Monaco-Editor/React
  • Tabler-Icons-React

Prerequisites

  • Usage:
    • python (3.x)
    • Linux user still needs to grant execution rights by using the command chmod +x filename before launching the application.
    • Minimal screen resolution: 1280 x 1024px.
  • Development:
    • python (3.x)
    • node.js (v18.16.1)
    • npm (v9.8.1)
    • Run all builds at least once.

How to setup

sudo npm install -g @neutralinojs/neu
neu create ProgApp --template AndreasWillibaldWeber/ProgGame

How to develop

cd react-src
npm i          # one-time execution of npm i is sufficient
npm start
cd ..
neu run --frontend-lib-dev

How to debug

cd react-src
npm i          # one-time execution of npm i is sufficient
npm run build
cd ..
neu run -- --window-enable-inspector

How to build

cd react-src
npm i          # one-time execution of npm i is sufficient
npm run build
cd ..
neu build --release

Roadmap to v1.0.0-alpha

  • Create a GitHub actions workflow for automatic builds.
  • Create UI for programming and for program output.
  • Connect UI with Python interpreter.
    • Program execution button works.
    • Editor and output clear button works.
  • Implement Game Logic.
    • The player is given 5 programming tasks one after the other, which must be solved in a single attempt.
    • Create 5 tasks as examples
    • Button to start a game round works.
    • Button to reset a game works.
    • Input field for player name works.
    • Load tasks into the editor and check for correctness after execution.
    • Tasks, tests and template code can be defined by a single file.
    • The 5 programming tasks are randomly selected.
    • More than 5 programming tasks can be defined by a file.
  • A List of player names that have completely solved a round can be displayed

Roadmap to v1.0.0-stable

  • Extensive testing and bug fixing of version 1.0.0-alpha

Roadmap to v1.0.1-alpha

  • Replace Alert() with proper dialogues in React.
  • Implement tests.

Roadmap to v1.0.1-stable

  • Extensive testing and bug fixing of version 1.0.1-alpha

Roadmap to v1.1.0-alpha

  • Show tasks in a separate dialogue, not as a comment in the editor (possibly use the output panel).
  • Implement more executors for programming languages.
    • Implement executors for different programming languages.
    • Implement UI elements for selecting a programming language.
    • Tasks can be defined in one file for different languages.
  • Define and render tasks using Markdown syntax.
    • Enable Markdown syntax
    • Enable LaTeX mathematical expressions
    • Enable PlanUML or Mermaid for diagrams

Roadmap to v1.1.0-stable

  • Extensive testing and bug fixing of version 1.1.0-alpha

License

MIT

About

A small game that allows to set and practice programming tasks.

Resources

License

Stars

Watchers

Forks

Packages