βWhy my commits often have no names and I'm not using branchesβ
- I often create with bursts many things at once
- I don't plan things ahead, I just create things that seems good at that moment
- Sometimes I have bad internet connection and it is troublesome to send commits
- I'm coding alone so creating branches and describing commits is not useful for me
Befunge 93 interpreter with visualization on grid, debugger and nyan cats pixel animations.
See live demo.
Languages:
- HTML5
- CSS3
- JS ES2018
Libraries and frameworks:
- LESS
- FontAwesome 6.4.0
- GoogleFonts
Programs:
- Interpretation of given code program
- Visualisation of program in grid, stack and interactive console
- Program controls (load, execute, run, step, stop)
- Breakpoints that pause program execution
- Information about language and exapmle programs
- Table with instructions
- Settings:
- Speed
- Pointer and breakpoint color
- Grid lines visibility
- Nyan cats animations:
- Defualt nyan cat
- Gameboy nyan cat
- Rasta nyan cat
- Christmas nyan cat
- Mexican nyan cat
- Multiple languages:
- Polish
- English
Note
Room for improvements:
- Instruction how to use the program
- Unlimited program grid size
- Editing program on the grid
- Zooming grid in and out
- Skipping over empty cells
- Hilighting program path
- Execution that is not blocking the webiste
- Faster execution
Ways to run this program:
- Use the live demo
- Download this repo and run index.html file
- Download this repo and start live server (VSCode LiveServer Extension, Prepros preview etc.)
To edit this program:
- Download this repo
- Install Prepros
- Add this project in Prepros
- Start coding
- Befunge - esolangs wiki
- Befunge 93 documentation
- mikescher Project Euler with Befunge
- qiao visual befunge93 interpreter
- jsFunge IDE
- bedroomlan - befunge playground
This section is a general description of the project required to understand how it works, the exact details are in the code or simply are the code.
The project directory tree looks like this:
- π TicTacToe (project folder)
- π github and prepros config
- π readme file
- π index.html file
- π _for_readme - π files for readme
- π language
- π en - π files for english language
- π pl - π files for polish language
- π nyan_cats
- π nyan cat icon
- π default - π files for default nyan cat
- π gameboy - π files for gameboy nyan cat
- π rasta - π files for rasta nyan cat
- π christmas - π files for christmas nyan cat
- π mexican - π files for mexican nyan cat
- π js - π scripts used in the project
- π css
- π css files compiled by prepros
- π less - π less files
Warning
Classes must be loaded from bottom to the top to avoid situation when class does not exist in the time of its objects creation
Menu is entry of the program.
Menu creates and manages one instance of each of the classes:
- MenuWindow (Credits)
- Difficulty
- TopScore
- Game
Difficulty and TopScore classes are extension of MenuWindow class which is responsible for showing and hiding menu window with transition
Game class creates and manages:
- One instance of RoadBackground class
- Two instances of treesBackground class (left and right side)
- One instance of classes:
- HealthBar
- EnergyBar
- PointsCounter
- GameOver
- One instance of Player class
- Many instances of classes:
- Enemy
- Deer
- HappyDeer