Giter VIP home page Giter VIP logo

fsasim's People

Contributors

jreesw avatar

Watchers

 avatar

fsasim's Issues

Settings for states

Each state has a few settings that the user needs to be able to change.
These settings include, but are not limited to:

  • position
  • label
  • transitions and their bridging values

Simulation animation

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.

Snap dragging states

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.

Changing transition bridging value

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.

Dragging states

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.

Curved arrows

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.

Documentation

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

States pointing at themselves

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.

Saving and loading FSA

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.

Dragging arrows

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.

String input simulation

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.