Всем привет! Написал программу-модель ДКА с помощью framework stateless, введенная строка после посимвольной проверки должна остаться в начальном состоянии. Не могу понять как связать строку и модель ДКА. Для примера можно взять строку, элементы которой пройдут всю модель и останутся в q0
string isValue = "11010";
Сама модель:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Stateless;
using Stateless.Graph;
namespace Lib1
{
enum State
{
Q0,
Q1,
Q2
}
enum Input
{
One = 1,
Zero = 0
}
class Program
{
static void Main(string[] args)
{
string isValue = "11010";
var stateMachine = new StateMachine<State, Input>(State.Q0);
stateMachine.Configure(State.Q0)
.Permit(Input.Zero, State.Q2)
.PermitReentry(Input.One);
stateMachine.Configure(State.Q1)
.Permit(Input.Zero, State.Q0)
.PermitReentry(Input.One);
stateMachine.Configure(State.Q2)
.Permit(Input.One, State.Q1)
.PermitReentry(Input.Zero);
// stateMachine.Fire(Input.Zero);
string graph = UmlDotGraph.Format(stateMachine.GetInfo());
Console.WriteLine(graph);
}
}
}
Вывод на консоль:
Сама модель: