Rework of omegaup's Karel.js.
It's main reason is so it works in mobile, currently it doesn't because
- CodeMirror 5 isn't mobile compatible
- WorldRenderer scroll doesn't work on all devices
- It is not responsive, toolbar is gone in mobile
This new version includes:
- Now with bootstrap 5
- Now with CodeMirror 6
- Migrated to Bootstrap 5.3.0
- Migrated to JQuery 3.6.1
- Migrated to CodeMirror 6
- Migrated Split.js
- Removed Karel Ruby as it didn't worked and it seemed to be in route of deprecation.
- Supports touch control on both views.
- UI changes to one better suited for small screens, similar to "Karel blue", aka Karel.exe
- CodeEditor maybe edited without writing.
- Settings that allow to set:
-
Prefered programming language (default is auto as Karel.js)If set, syntax higlighting and compile will always try that language.
- The view (force one view independent of screen size)
- Code Font size
-
- Hotkeys
-
Ctrl+K
Decreases editor's font. -
Ctrl+L
Increases editor's font.
-
- Added the ability to zoom in and out of the world.
- Native scrolling with scrollbars for the world renderer.
- The previous scroll was hard to use imo.
- Added the ability to specify the name of the file to be downloaded, either code or world
- Added clean button to remove old messages from console.
- "Are you sure?" before reseting code
- "Are you sure?" before reseting world
- Added icons to Karel position.
- If the execution ends in RTE, it is made more noticable by changing the world background color.
- You can change Karel Codes
- Dark and Light mode
[x] Reworked world editor.
Now, it works similar to a spreadsheet software.
- World edition is based on cell selection and a toolbar.
You can select a rectangular selection of cells and:
- Place walls on the selection border (You may use the toolbar or WASD hot-keys)
- Add, remove, clear, set the ammount of beepers in the selection (Use 1 ... 9 or Q E R C hot-keys)
- Move/Rotate Karel (Use G or P hot-keys)
- [ ]
- You can step into a function, out of a function or skip a function, similar to other debuggers
- The stack now also reports what number it is in the stack for readability