This is an implementation of a Client Side Simulation Game Engine using HTML, CSS, and Javascript. This project's purpose is to implement an assembler to parse bug instructions, a GUI for the simulator, and the actual simulator itself ability to upload them and pasrse through client side. The Project was originally done in sprints and will be continued when there is free time.
To make a long story short, before that moment everything was absolutely in a very sad state - the bug field was not square, although obviously it should be hexagonal. The bugs moved on their own and did not correspond to the squares in any way. The assembly code was mostly invalid. I don't know how the previous sprinters got more than zero points for this creation, but so be it. The visuals were completely fixed - the resolution of the pictures just didn't allow them to be displayed properly. The field sprites have been fixed, brought into hexagonal form. The logic of the bugs and ensuring that they move according to the field cells has been changed. Assembly code handling and implementation of several commands was added, for example. The position of the field on the screen has been changed slightly, making it more pleasing to the viewer.
- Organized HTML and javaScript files(removed unnecessary spacings and bad nesting).
- Added more comments to code that didn't make sense.
- Properly documented code that was changed or newly added.
- Map tiles are now hexagonal shape and more accurate to the specification.
- Fixed Assembler such that it actually works and reads a bug brain assembly file.
- Changed file processing and how it outputs to the code
- Assembler interpretation for move commands (in previous sprint the assembler did not work at all).
- Overhaul to bug display implementation
- Bugs are displayed on the map relevant to each tile.
- Bugs follow move commands given by assembler file.
- Bugs moves every iteration instead of constantly.
- Food is now displayed accordingly to the number given on the world file(amount of food changes visually).
- CSS changes(Centering Upload menu, added the options buttons and stats display on the simulation page).
- Stats Menu placeholder(Added under the code injection in fileLogic.js).
- Working Iterations counter(doesn't do much but it counts till it's done).
- Options menu button placeholder(brings you back to upload currently).
- Added new test files to /testcases that works better with the current build.
- Map works only if all correct files are provided.
- Bug assembler breaks if given anything thats not "move" instruction.
- Most changes can be visually seen.
- old test files moved to /legacy.
If all files are provided accordingly you should get something like this:
- Option menu(likely on sim.html but maybe not using code injection with .write()).
- Maybe not use .write() to put the html code for the simulation since it is harder to work with.
- Fully working stats menu, log function not integrated yet.
- Other Instructions for bug assembler implemented and working for the bug.
- Better documentation since the original code we got was very messy, we didn't know how things worked together and what each piece of code did.
- Created welcome page
- Created simulator page
- quit button on simulator page takes you back to welcome page
- Partially implemented
World
class - Implemented
Cell
class - Partially implemented
Bug
class - Partially implemented
GUI
class - Implemented ability to upload files and parse them all on the client-side
- Mostly implemented parsing of world map file which displays output of client side
- Created settings page, homepage, change settings page, and quit game page
- Documentation Comments for each function file class that was implemented
- Added test cases for errors and succesful
- Made a pdf file to explain all the progess
- There is also a display of bugs which move around only for display purposes yet to work on bug assembler code
- Implemented Assembler in Assembler.js.
- Implemented class World in World.js.
- Implemented Assembler.test.js.
- Implemented World.test.js.
- Implemented Cell.test.js.
- Implemented Bug.test.js.
The new code is documented with comments.
Fixed the poor formatting of the previous team in 93e414a3