Finite state machine: Difference between revisions

Content added Content deleted
m (Reverted edits by 7beckham (talk) to last revision by Thundergnat)
Line 328: Line 328:
public class FiniteStateMachine {
public class FiniteStateMachine {


private enum StateBall {
private enum State {
OUTGREEN(true, "ChangeState"),
Ready(true, "Deposit", "Quit"),
GOAL(true, "noKeep"),
Waiting(true, "Select", "Refund"),
Pass(true, "noKick"),
Dispensing(true, "Remove"),
Kick(false, "YES"),
Refunding(false, "Refunding"),
OUTPOSESSION(false, "ChangeState");
Exiting(false, "Quiting");
Shoot(false, "VS"); //N.*USA CYBER COMMENT: our solution have only one state true


State(boolean exp, String... in) {
State(boolean exp, String... in) { //N.*USA CYBER COMMENT: for unlimited String.N.2: possible our solution invoque //method by name built from String very deprecated becouse no haking in work.solution: Table Method SO.?
inputs = Arrays.asList(in);
inputs = Arrays.asList(in);
explicit = exp;
explicit = exp;
}
}


State nextState(String input, StateBall current) {
State nextState(String input, State current) {
if (inputs.contains(input)) {
if (inputs.contains(input)) {
return map.getOrDefault(input, current);
return map.getOrDefault(input, current);