jreesw / fsasim Goto Github PK
View Code? Open in Web Editor NEWPython Finite State Automata simulator
Python Finite State Automata simulator
Each state has a few settings that the user needs to be able to change.
These settings include, but are not limited to:
When the user has inputted a string to run with an automaton worked out, it would be nice if the simulation came with some animation.
Colors indicating at what state the machine currently is, transition animations, etc.
Would come with a pause and stop button, along side some step buttons.
Requires #3 to be completed.
When creating a FSA diagram it would be nice if the states could easily be aligned with eachother.
For this reason a sort of snapping system should be created, which while dragging checks if other states are on a similar height/width.
Then snaps the currently dragged state to the level of the other states. Probably within a margin of 5 pixels.
One of the most important parts of designing an FSA is deciding which transitions use which bridging values.
For this, it would be best if the user could click on an arrow and change its value, maybe via some pop up text box or something.
Requires further design choices.
It can be annoying to place a state, make transitions, but to then realise the state is positioned in an awkward manner.
For that reason it would be nice if the user could drag states around, without changing transitions.
make it not do that
When two states can transition to eachother, the arrows overlap into a single, double-headed arrow.
Ideally it would curve these two arrows, explicitly showing that there are multiple arrows.
Similarly, when a state transitions to itself, it needs to have a nearly circular arrow pointing at itself.
Everything needs to be properly documented, whether to clarify the code for other programmers or for good practice.
This issue should probably be one of the last issues to be closed, as all other issues require documentation
A transition arrow of a state going to the same state should be better represented.
This will be done with a circular arrow pointing back at the state.
The user would probably like to save their design as well as share them with others.
To solve that, a saving and loading system will be implemented that saves the data of a FSA onto a file.
Custom creation and parsing of the save data fall into this too.
When using many states in many different positions, then the transition arrows between them can too messy to see what's happening.
For that reason it would be nice if the user could select an arrow and drag it to change how far it curves.
Will require #2 to be completed for arrow curvature. Will also require most of #4, as they both involve dragging.
When the user has created an automaton, they would probably want to test it on a string.
For that reason, a textbox will be added where the user can input a string.
Next to that textbox will be a button that initiates the automaton's processing of the string.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.