/// <summary> /// Выполняет переход к новой конфигурации машины Тьюринга. /// </summary> /// <param name="convert">Переход.</param> private void MakeConversion(TuringConvert convert) { _tapes.SetValues(convert.Output); _tapes.MovePens(convert.Directions); _stateIndex = GetStateIndex(convert.OutId); if (OnMachineStateChanged != null) OnMachineStateChanged(this, new TuringMachineStateChangedEventArgs(convert.Directions)); }
/// <summary> /// Проверяет, совпадают ли текущие символы напротив читающих/пишущих головок с входными символами перехода. /// </summary> /// <param name="convert">Проверяемый переход машины Тьюринга.</param> /// <returns>Истина, если символы совпадают, иначе - ложь.</returns> private bool CheckTapeConfig(TuringConvert convert) { char[] current = _tapes.GetValues(); int n = current.Length; for(int i = 0; i < n; i++) { if(convert.Input[i] != current[i]) { return false; } } return true; }