コード例 #1
0
        protected override int Part1(string[] input)
        {
            var turingMachine = new TuringMachine(input);
            var checksum      = turingMachine.CalculateDiagnosticsChecksum();

            return(checksum);
        }
コード例 #2
0
    private static void Main()
    {
        var d = new Dictionary <TuringMachine.InstructionSelector, TuringMachine.InstructionResult> {
            { new TuringMachine.InstructionSelector(0, false), new TuringMachine.InstructionResult(0, true, true) },
            { new TuringMachine.InstructionSelector(0, true), new TuringMachine.InstructionResult(-1, true, false) }
        }.ToImmutableDictionary();
        var t = new TuringMachine(d, 2 * 2 * 2 * 2);
        var h = t.AdvancedUntilHalted();
        var n = h.MayResult;

        var s = new SolomonoffInductor();

        for (var i = 0; ; i++)
        {
            s.Advance(i * i + 10);
            var z = s.Predict()
                    .OrderBy(e => - e.Value)
                    .Select(e => string.Format("{0}: {1:0.000000}", e.Key, (double)e.Value))
                    .ToArray();
            Console.WriteLine("=== Step: " + i);
            foreach (var s1 in z)
            {
                Console.WriteLine(s1);
            }
            s.Measure(1, nextInput: i + 1);
        }
    }
コード例 #3
0
    public static void InputToTape(InputField input, GameObject cellTapePrefab)
    {
        ClearTape();

        TuringMachine tm = GameObject.FindGameObjectWithTag("GameController").GetComponent <TuringMachine>();

        GameObject.FindGameObjectWithTag("processButton").GetComponent <Button>().interactable      = true;
        GameObject.FindGameObjectWithTag("startMachineButton").GetComponent <Button>().interactable = true;
        GameObject.FindGameObjectWithTag("tapeInput").GetComponent <Dropdown>().interactable        = true;
        GameObject.FindGameObjectWithTag("StepButtonLight").GetComponent <Light>().intensity        = 2.5f;

        GameObject.FindGameObjectWithTag("StartButtonLight").GetComponent <Light>().color = Color.green;

        char[] cellsInChar = input.GetComponent <InputField>().text.ToCharArray();


        foreach (char c in cellsInChar)
        {
            if (!tm.GetAlphabet().LookForSymbol(c))
            {
                GameObject.FindGameObjectWithTag("GameController").GetComponent <Utils>().showWait = true;
                return;
            }
        }

        //cria as celulas da fita
        for (int i = 0; i < cellsInChar.Length; i++)
        {
            GameObject cell = Instantiate(cellTapePrefab);
            cell.GetComponentInChildren <TextMesh>().text = "" + cellsInChar[i];
            cell.transform.position = new Vector3((1.5f * i), 0, 0);
        }

        GameObject.FindGameObjectWithTag("TuringMachine").transform.position = new Vector3(0, 0, 0);
    }
コード例 #4
0
        public void Test8()
        {
            for (int i = 0; i < 128; i++)
            {
                var asBinaryString = Convert.ToString(i, 2);
                var input          =
                    $@"
@Programa Fonte Unifor
fita {asBinaryString}
init q
accept qf

q,0,q,0,>
q,1,q,1,>
q,_,qf,0,<";
                var turingMachine = TuringMachine.FromText(input.Split('\n'));

                while (turingMachine.MachineState != TuringMachine.State.Finished)
                {
                    turingMachine.Run();
                }

                Console.WriteLine($"On {i} -- {asBinaryString}");
                Assert.AreEqual(i * 2, Convert.ToInt32(turingMachine.Data.ReadAll(), 2));
            }
        }
コード例 #5
0
ファイル: TmTests.cs プロジェクト: hanabanashiku/Automata
        public void MachineEncodeTest()
        {
            const char b = Alphabet.Blank;

            var q  = new States(3);
            var tf = new TuringTransitionFunction()
            {
                new TuringTransition(q[0], b, q[1], b, TuringMachine.Direction.R),
                new TuringTransition(q[1], 'b', q[1], 'b', TuringMachine.Direction.R),
                new TuringTransition(q[1], 'a', q[2], 'b', TuringMachine.Direction.L),
                new TuringTransition(q[1], b, q[2], b, TuringMachine.Direction.L),
                new TuringTransition(q[2], 'b', q[2], 'b', TuringMachine.Direction.L),
                new TuringTransition(q[2], b, State.Ha, b, TuringMachine.Direction.S)
            };

            var t = new TuringMachine(q, Alphabet.Ab, new TapeAlphabet(Alphabet.Ab), tf, q[0]);

            var e = $"{b}";

            foreach (var m in tf)
            {
                e += TuringMachine.BinEncode(m, t.States) + b;
            }

            Assert.AreEqual(TuringMachine.BinEncode(t), e);
        }
コード例 #6
0
ファイル: MachineGear.cs プロジェクト: Skalnark/Turing
    void Start()
    {
        tm                 = GetComponent <TuringMachine>();
        inputField         = GameObject.FindGameObjectWithTag("input").GetComponent <InputField>();
        startMachineButton = GameObject.FindGameObjectWithTag("startMachineButton").GetComponent <Button>();
        stepButtonLight    = GameObject.FindGameObjectWithTag("StepButtonLight").GetComponent <Image>();
        startButtonLight   = GameObject.FindGameObjectWithTag("StartButtonLight").GetComponent <Image>();
        processButton      = GameObject.FindGameObjectWithTag("processButton").GetComponent <Button>();
        stateDisplay       = GameObject.FindGameObjectWithTag("stateDisplay").GetComponent <TextMesh>();

        /*
         * if(File.Exists(Application.persistentDataPath + "/Machines/machines.txt"))
         *  LoadAllMachines(File.ReadAllText(Application.persistentDataPath + "/Machines/machines.txt"));
         * else
         * {
         *  File.Create(Application.persistentDataPath + "/Machines/machines.txt");
         * }*/

        if (!Directory.Exists(Application.persistentDataPath + "\\Machines"))
        {
            Directory.CreateDirectory(Application.persistentDataPath + "\\Machines");

            SaveMachine.WriteIt(Application.persistentDataPath + "\\Machines\\machines.txt", Constants.DEFAULTDESCRIPTIONS());
        }

        LoadAllMachines(File.ReadAllText(Application.persistentDataPath + "\\Machines\\machines.txt"));
        LoadOptions();
        LoadMachine();
    }
コード例 #7
0
    public override string Part1(string input, object?args)
    {
        var t = new TuringMachine(input);

        t.RunCheckSum();
        return(t.CheckSum.ToString());
    }
コード例 #8
0
        public double[] ActivateNeuralNetwork(double[] environmentOutput)
        {
            Debug.DLog($"Neural Network Input:  {Utilities.ToString(environmentOutput, "f4")}{Utilities.ToString(_turingMachineOutput, "f4")}", true);

            // Reset the neural network state
            Phenome.ResetState();

            // NN Input is the output from the environment, and the output from the turing machine in the previous activation
            Phenome.InputSignalArray.CopyFrom(environmentOutput, 0);
            Phenome.InputSignalArray.CopyFrom(_turingMachineOutput, environmentOutput.Length);

            // Activate the neural network
            Phenome.Activate();

            double[] nnOutput = new double[Phenome.OutputSignalArray.Length];
            Phenome.OutputSignalArray.CopyTo(nnOutput, 0);

            Debug.DLog($"Neural Network Output: {Utilities.ToString(nnOutput, "f4")}", true);

            // Environment inputs are first of the NN outputs
            double[] environmentInput = Utilities.ArrayCopyOfRange(nnOutput, 0, nnOutput.Length - _turingInputLength);

            // Turing inputs are the last of the NN outputs
            double[] turingMachineInput = Utilities.ArrayCopyOfRange(nnOutput, nnOutput.Length - _turingInputLength, _turingInputLength);

            // Activate turing machine with the NN outputs, and store the result for the next iteration, since the environment must be activated in the mean time
            _turingMachineOutput = ProcessTuringMachineOutput(TuringMachine.ProcessInput(turingMachineInput));

            // Return the environment input (remaining NN outputs)
            return(environmentInput);
        }
コード例 #9
0
        public Grammar Convert(TuringMachine turingMachine)
        {
            List <Production> productions = GetProductions(turingMachine);
            List <Terminal>   terminals   = new List <Terminal>()
            {
                //new Terminal("0"),
                new Terminal("1"),
                new Terminal("eps")
            };
            HashSet <Variable> variables = new HashSet <Variable>();

            foreach (var production in productions)
            {
                foreach (var elem in production.LeftPart)
                {
                    if (elem is Variable nonterminal)
                    {
                        variables.Add(nonterminal);
                    }
                }
                foreach (var elem in production.RightPart)
                {
                    if (elem is Variable nonterminal)
                    {
                        variables.Add(nonterminal);
                    }
                }
            }
            return(new Grammar(new Variable("A1"), productions, terminals, variables.ToList()));
        }
コード例 #10
0
    // $G$ CSS-013 (-3) Input parameters names should start with i_PascaleCase.
    private static void writeXResult(string i_guess, TuringMachine <char> o_result, bool[] i_v)
    {
        if (i_guess == null)
        {
            throw new ArgumentNullException("i_guess", "i_guess must not be null.");
        }

        if (o_result == null)
        {
            throw new ArgumentNullException("o_result", "o_result must not be null.");
        }

        if (i_v == null)
        {
            throw new ArgumentNullException("i_v", "i_v must not be null.");
        }

        for (int i = 0; i < k_PasswordLength; i++)
        {
            if (i_v[i])
            {
                continue;
            }

            if (StringUtils.IsMemberOf(i_guess[i], s_password))
            {
                o_result.Write('X', 2);
            }
        }
    }
コード例 #11
0
    void OnGUI()
    {
        TuringMachine tm = GameObject.FindGameObjectWithTag("GameController").GetComponent <MachineGear>().SimulatedMachine();

        if (showWait)
        {
            try
            {
                GUI.Box(new Rect((Screen.width / 2) - 100, (Screen.height / 2) - 30, 200, 60), "Input rejected", warning.box);
            }
            catch { }

            StartCoroutine(InputErrorPopUp());
        }
        if (showInfo)
        {
            try
            {
                GUI.Box(new Rect(130, 150, Screen.width / 3, Screen.height / 3), tm.GetDescription(), warning.box);
            }
            catch { }

            StartCoroutine(InfoPopUp());
        }
    }
コード例 #12
0
ファイル: GameMaster.cs プロジェクト: JBoggsy/2DTM
        /// <summary>
        /// Initializes the <see cref="GameMaster"/> singleton. This is called in
        /// the <see cref="GameMasterMonobehavior.Awake"/> method so that all
        /// <see cref="GameMasterMonobehavior"/> sub-classes can access the
        /// <see cref="GameMaster"/> instance.
        ///
        /// Grabs Unity prefab resources for UI and sprites, instantiates the
        /// random seed, the grid, and the Turing machines, and then begins
        /// the simulation update co-routine.
        /// </summary>
        public void Initialize()
        {
            if (UseCustomSeed)
            {
                Random.InitState(RandomSeed);
            }
            else
            {
                RandomSeed = Random.Range(int.MinValue, int.MaxValue);
                print("SEED: " + RandomSeed.ToString());
                Random.InitState(RandomSeed);
            }

            TuringMachineHeadPrefab        = (GameObject)Resources.Load("Turing Machine Head");
            TuringMachineEditorPanelPrefab = (GameObject)Resources.Load("TuringMachineEditorCanvas");

            GridData       = new GridData();
            TuringMachines = new TuringMachine[NumberOfTuringMachines];
            for (int machineID = 0; machineID < NumberOfTuringMachines; machineID++)
            {
                TuringMachine newMachine = new TuringMachine(machineID, NumberStatesPerMachine);
                if (RandomStartingTransitions)
                {
                    newMachine.GenerateRandomTransitions();
                }
                TuringMachines[machineID] = newMachine;
            }

            RunSimulation = false;
            IEnumerator simulationUpdater = TuringMachineUpdateClock();

            StartCoroutine(simulationUpdater);
        }
コード例 #13
0
        public void Test6()
        {
            for (int i = 0; i < 128; i++)
            {
                var asBinaryString = Convert.ToString(i, 2);
                var input          =
                    $@"
@Programa Fonte Unifor
fita {asBinaryString}
init qs
accept qv

qs,0,qs,0,>
qs,1,qs,1,>
qs,_,qcf,_,<
qcf,1,qcs,1,<
qcs,0,qv,0,<";
                var turingMachine = TuringMachine.FromText(input.Split('\n'));

                while (turingMachine.MachineState != TuringMachine.State.Finished)
                {
                    turingMachine.Run();
                }

                Console.WriteLine($"On {i} -- {asBinaryString}");
                Assert.AreEqual(asBinaryString.EndsWith("01"), turingMachine.Result == TuringMachine.FinishResult.Valid);
            }
        }
コード例 #14
0
        public void Test5()
        {
            for (int i = 0; i < 128; i++)
            {
                var asBinaryString = Convert.ToString(i, 2);
                var input          =
                    $@"
@Programa Fonte Unifor
fita {asBinaryString}
init q0
accept q0

q0,0,q0,0,>
q0,1,q1,1,>
q1,0,q2,0,>
q1,1,q3,1,>
q2,0,q4,0,>
q2,1,q0,1,>
q3,0,q1,0,>
q3,1,q2,1,>
q4,0,q3,0,>
q4,1,q4,1,>";
                var turingMachine = TuringMachine.FromText(input.Split('\n'));

                while (turingMachine.MachineState != TuringMachine.State.Finished)
                {
                    turingMachine.Run();
                }

                Console.WriteLine($"On {i} -- {asBinaryString}");
                Assert.AreEqual(i % 5 == 0, turingMachine.Result == TuringMachine.FinishResult.Valid);
            }
        }
コード例 #15
0
        public void Test4()
        {
            var input =
                @"
@Programa Fonte Unifor
fita 1011
init qi
accept qf

qi,1,qi,1,>
qi,0,qi,0,>
qi,_,q1,_,<
q1,1,q1,0,<
q1,0,qf,1,<";

            var turingMachine = TuringMachine.FromText(input.Split('\n'));

            while (turingMachine.MachineState != TuringMachine.State.Finished)
            {
                turingMachine.Run();
            }

            Assert.AreEqual(TuringMachine.FinishResult.Valid, turingMachine.Result);
            Assert.AreEqual("1100", turingMachine.Data.ReadAll());
        }
コード例 #16
0
    public void OutputUpdate()
    {
        try
        {
            tm = GameObject.FindGameObjectWithTag("GameController").GetComponent <TuringMachine>();

            index = int.Parse(GameObject.FindGameObjectWithTag("stateDisplay").GetComponent <TextMesh>().text);

            input = GameObject.FindGameObjectWithTag("readDisplay").GetComponent <TextMesh>().text;

            if (input.Equals(""))
            {
                df = tm.StateByIndex(index).LookForFunction('Ø');
            }
            else
            {
                df = tm.StateByIndex(index).LookForFunction(char.Parse(input));
            }

            if (df.getOutput().Equals('Ø'))
            {
                GetComponent <TextMesh>().text = "";
            }
            else
            {
                GetComponent <TextMesh>().text = df.getOutput() + "";
            }
        }
        catch { }
    }
コード例 #17
0
ファイル: Day201725.cs プロジェクト: payou42/aoc
        public void Init()
        {
            _input = Aoc.Framework.Input.GetStringVector(this);
            _steps = Int64.Parse(_input[1].Split(" ")[5]);

            string initial = _input[0].Split(" ")[3];

            _machine = new TuringMachine(initial[0..^ 1]);
コード例 #18
0
        private void ResetButton_Click(object sender, RoutedEventArgs e)
        {
            TuringMachine = TuringMachine.FromText(input);
            UpdateData();

            PlayButton.IsEnabled    = true;
            ForwardButton.IsEnabled = true;
        }
コード例 #19
0
        private void initialize()
        {
            this.Tape = new ObservableCollection <ValueCurrentPair>(this.readStrings.ToList()[stringsPointer]);
            this.VisualTape.ItemsSource = this.Tape;

            this.turingMachine = new TuringMachine(this.Tape);
            updateStateIndicator();
        }
コード例 #20
0
    //Construye la máquina
    void BuildMachine()
    {
        string tira = "βββ" + inputMachine.text + "βββ";

        CreateMachine(tira);

        switch (dropMachine.value)
        {
        case 0:
            //Machine Palindrome
            rm = mr.getPal();
            tm = new TuringMachine(tira, rm, new int[] { 11 });

            break;

        case 1:
            //Machine Copy
            rm = mr.getCopy();

            tm = new TuringMachine(tira, rm, new int[] { 1 });

            break;

        case 2:
            //Machine Mult
            rm = mr.getMult();

            tm = new TuringMachine(tira, rm, new int[] { 11 });

            break;

        case 3:
            //Machine Sum
            rm = mr.getSum();

            tm = new TuringMachine(tira, rm, new int[] { 3 });

            break;

        case 4:
            //Machine Sub
            rm = mr.getSub();

            tm = new TuringMachine(tira, rm, new int[] { 3 });

            break;
        }

        //Disble buttons when the machine is working
        btnNext.interactable      = false;
        inputMachine.interactable = false;
        dropMachine.interactable  = false;
        btnReset.interactable     = false;

        //And now Turn on the Machine
        //InvokeRepeating("MotorMachine", 0.5f, 0.5f);
        StartCoroutine(MotorMachine());
    }
コード例 #21
0
 private void AutoPlayOnDoWork(object sender, DoWorkEventArgs e)
 {
     while (!AutoPlay.CancellationPending && TuringMachine.MachineState != TuringMachine.State.Finished)
     {
         TuringMachine.Run();
         AutoPlay.ReportProgress(0);
         Thread.Sleep(350);
     }
 }
        private void MachineControl_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            TuringMachineEditWindow editwindow = new TuringMachineEditWindow(ContainingMachine);

            editwindow.ShowDialog();
            ContainingMachine = editwindow.ContainingMachine;
            Dragging          = false;
            e.Handled         = true;
        }
コード例 #23
0
        public void TestExecuteBlueprint()
        {
            var instructions  = Testing.GetTestFileContents("TestInput.txt").Split(Environment.NewLine);
            var turingMachine = new TuringMachine(instructions.ToList());

            turingMachine.ExecuteBlueprint();

            Assert.AreEqual(3, turingMachine.CalculateChecksum());
        }
コード例 #24
0
ファイル: TmTests.cs プロジェクト: hanabanashiku/Automata
        public void XxTest()
        {
            var q  = new States(10);
            var g  = new TapeAlphabet('A', 'B') + Alphabet.Ab;
            var tf = new TuringTransitionFunction()
            {
                new TuringTransition(q[0], Alphabet.Blank, q[1], Alphabet.Blank, TuringMachine.Direction.R),
                new TuringTransition(q[1], 'a', q[2], 'A', TuringMachine.Direction.R),
                new TuringTransition(q[1], 'b', q[2], 'B', TuringMachine.Direction.R),
                new TuringTransition(q[2], 'a', q[2], 'a', TuringMachine.Direction.R),
                new TuringTransition(q[2], 'b', q[2], 'b', TuringMachine.Direction.R),
                new TuringTransition(q[2], Alphabet.Blank, q[3], Alphabet.Blank, TuringMachine.Direction.L),
                new TuringTransition(q[2], 'A', q[3], 'A', TuringMachine.Direction.L),
                new TuringTransition(q[2], 'B', q[3], 'B', TuringMachine.Direction.L),
                new TuringTransition(q[3], 'a', q[4], 'A', TuringMachine.Direction.L),
                new TuringTransition(q[3], 'b', q[4], 'B', TuringMachine.Direction.L),
                new TuringTransition(q[4], 'a', q[4], 'a', TuringMachine.Direction.L),
                new TuringTransition(q[4], 'b', q[4], 'b', TuringMachine.Direction.L),
                new TuringTransition(q[4], 'A', q[1], 'A', TuringMachine.Direction.R),
                new TuringTransition(q[4], 'B', q[1], 'B', TuringMachine.Direction.R),
                new TuringTransition(q[1], 'A', q[5], 'A', TuringMachine.Direction.L),
                new TuringTransition(q[1], 'B', q[5], 'B', TuringMachine.Direction.L),
                new TuringTransition(q[1], Alphabet.Blank, State.Ha, Alphabet.Blank, TuringMachine.Direction.S),
                new TuringTransition(q[5], 'A', q[5], 'a', TuringMachine.Direction.L),
                new TuringTransition(q[5], 'B', q[5], 'b', TuringMachine.Direction.L),
                new TuringTransition(q[5], Alphabet.Blank, q[6], Alphabet.Blank, TuringMachine.Direction.R),
                new TuringTransition(q[6], Alphabet.Blank, State.Ha, Alphabet.Blank, TuringMachine.Direction.S),
                new TuringTransition(q[6], 'b', q[7], 'B', TuringMachine.Direction.R),
                new TuringTransition(q[7], 'a', q[7], 'a', TuringMachine.Direction.R),
                new TuringTransition(q[7], 'b', q[7], 'b', TuringMachine.Direction.R),
                new TuringTransition(q[7], Alphabet.Blank, q[7], Alphabet.Blank, TuringMachine.Direction.R),
                new TuringTransition(q[7], 'B', q[9], Alphabet.Blank, TuringMachine.Direction.L),
                new TuringTransition(q[9], Alphabet.Blank, q[9], Alphabet.Blank, TuringMachine.Direction.L),
                new TuringTransition(q[9], 'a', q[9], 'a', TuringMachine.Direction.L),
                new TuringTransition(q[9], 'b', q[9], 'b', TuringMachine.Direction.L),
                new TuringTransition(q[6], 'a', q[8], 'A', TuringMachine.Direction.R),
                new TuringTransition(q[8], 'a', q[8], 'a', TuringMachine.Direction.R),
                new TuringTransition(q[8], 'b', q[8], 'b', TuringMachine.Direction.R),
                new TuringTransition(q[8], Alphabet.Blank, q[8], Alphabet.Blank, TuringMachine.Direction.R),
                new TuringTransition(q[8], 'A', q[9], Alphabet.Blank, TuringMachine.Direction.L),
                new TuringTransition(q[9], 'A', q[6], 'A', TuringMachine.Direction.R),
                new TuringTransition(q[9], 'B', q[6], 'B', TuringMachine.Direction.R)
            };
            var m = new TuringMachine(q, Alphabet.Ab, g, tf, q[0]);

            Assert.True(m.Run("aa"));
            Assert.True(m.Run("bb"));
            Assert.True(m.Run("aaabbbaaabbb"));
            Assert.True(m.Run("ababbababb"));
            Assert.True(m.Run("babbab"));
            Assert.True(m.Run("abab"));
            Assert.False(m.Run("babb"));
            Assert.False(m.Run("abb"));
            Assert.False(m.Run("a"));
            Assert.False(m.Run("b"));
        }
コード例 #25
0
        public static void RunBusyBeaverProgram()
        {
            var tm = new TuringMachine();

            BusyBeaverProgram busyBeaver = new FourStateBusyBeaver();

            tm.run(busyBeaver, Console.Out);

            Console.WriteLine("Program counter: " + tm.programCounter);
        }
コード例 #26
0
        private void PlayButton_Click(object sender, RoutedEventArgs e)
        {
            if (TuringMachine.MachineEstado == TuringMachine.Estado.Finalizado)
            {
                return;
            }

            TuringMachine.Run();
            UpdateData();
        }
コード例 #27
0
        static void Main(string[] args)
        {
            var definitionFile = args[0];
            var turingMachine  = TuringMachine.LoadFromFile(definitionFile);

            while (true)
            {
                turingMachine.Step();
            }
        }
コード例 #28
0
        public static void SaveTuringMachine(TuringMachine machine, string dir)
        {
            var jset = new JsonSerializerSettings()
            {
                TypeNameHandling = TypeNameHandling.All
            };
            JsonSerializer json       = new JsonSerializer();
            string         machinestr = JsonConvert.SerializeObject(machine, jset);

            File.WriteAllText(dir, machinestr);
        }
コード例 #29
0
        private void OpenFileButton_Click(object sender, RoutedEventArgs e)
        {
            var ofd = new OpenFileDialog();

            if (ofd.ShowDialog() == true)
            {
                input         = File.ReadAllLines(ofd.FileName);
                TuringMachine = TuringMachine.FromText(input);
                UpdateData();
            }
        }
コード例 #30
0
    private static string calculateResult(string i_guess)
    {
        if (i_guess == null)
        {
            throw new ArgumentNullException("i_guess", "i_guess must not be null.");
        }

        TuringMachine <char> result = new TuringMachine <char>((2 * k_PasswordLength) - 1, ' ');

        bool[] v = writeVResult(i_guess, result);
        writeXResult(i_guess, result, v);
        return(new string(result.TapeContent));
    }
コード例 #31
0
 public ClassicTuringMachineViewModel(TuringMachine machine)
     : this()
 {
     Machine = machine;
 }
コード例 #32
0
 private void SelectMachineCommandHandler(TuringMachine sender)
 {
     CurrentMachineViewModel = new ClassicTuringMachineViewModel(sender);
 }