Exemplo n.º 1
0
 private void Form1_Load(object sender, EventArgs e)
 {
     ProblemRTB.Text = startStringRus;
     codesText       = File.ReadAllLines("codes.dat"); problemNumber = 0;
     CodingRTB.Text  = "";
     keywords.Clear(); keywords.Add("include"); keywords.Add("void");
     keywords.Add("int"); keywords.Add("return"); keywords.Add("using"); keywords.Add("namespace");
     keywords.Add("unsigned");
     keywords.Add("float"); keywords.Add("double"); keywords.Add("short"); keywords.Add("char"); keywords.Add("long");
     keywords.Add("bool"); keywords.Add("true"); keywords.Add("false"); keywords.Add("if"); keywords.Add("else");
     keywords.Add("switch"); keywords.Add("case"); keywords.Add("default"); keywords.Add("break");
     keywords.Add("for"); keywords.Add("while"); keywords.Add("do"); keywords.Add("class");
     if (isCodeLighted)
     {
         CodingRTB.SuspendLayout();
         text_Lightout();
         CodingRTB.ResumeLayout();
     }
     CodingRTB.SelectionStart = CodingRTB.Find("{") + 2; CodingRTB.SelectionLength = 0;
     ResultsTB.Text           = "0";
     rankLabel.Visible        = false;
     problemText        = File.ReadAllLines("problems.dat");
     practiceText       = File.ReadAllLines("practice.dat");
     tasksText          = File.ReadAllLines("tasks.dat");
     currentProblemName = "escape"; currentPracticeProblemName = "escape";
     OKButton.Enabled   = false;
 }
Exemplo n.º 2
0
 /// <summary>
 /// Selection of the current THEORETICAL theme from the treeView
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
 {
     setCurrentProblem(TheoryTreeView.SelectedNode.Name);
     if (isCodeLighted)
     {
         CodingRTB.SuspendLayout(); text_Lightout(); CodingRTB.ResumeLayout();
     }
 }
Exemplo n.º 3
0
 private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
 {
     if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Space || e.KeyCode == Keys.Up || e.KeyCode == Keys.Left ||
         e.KeyCode == Keys.Down || e.KeyCode == Keys.Right)
     {
         if (getCodeLightout())
         {
             CodingRTB.SuspendLayout();
             text_Lightout();
             CodingRTB.ResumeLayout();
         }
     }
 }
Exemplo n.º 4
0
 /// <summary>
 /// Come to the next theme in DataTreeView
 /// </summary>
 /// <param name="nameOfTheCurrentTheme"></param>
 private void nextTheme(string nameOfTheCurrentTheme)
 {
     if (currentPracticeProblemName == "escape")
     {
         Interpreter.nextTheme(currentProblemName);
         setCurrentProblem(currentProblemName);
     }
     else
     {
         Interpreter.nextTheme(currentPracticeProblemName);
         setCurrentPracticeProblem(currentPracticeProblemName);
     }
     if (isCodeLighted)
     {
         CodingRTB.SuspendLayout(); text_Lightout(); CodingRTB.ResumeLayout();
     }
 }
Exemplo n.º 5
0
        /// <summary>
        /// Method to organize syntax lightout
        /// </summary>
        public void text_Lightout()
        {
            CodingRTB.Focus();
            this.SuspendLayout();
            int firstPosition = 0, lastPos = CodingRTB.SelectionStart;

            CodingRTB.SelectAll(); CodingRTB.SelectionColor = Color.Black;
            //if (StartForm.Language == "CPlusPlus")
            for (int i = 0; i < keywords.Count; i++)
            {
                var matches = Regex.Matches(CodingRTB.Text, @"\b" + keywords.ElementAt(i));
                foreach (var match in matches.Cast <Match>())
                {
                    CodingRTB.Select(match.Index, match.Length); CodingRTB.SelectionColor = Color.Blue;
                }
            }
            if (StartForm.Language == "Java")
            {
                for (int i = 0; i < keywords.Count; i++)
                {
                    var matches = Regex.Matches(CodingRTB.Text, @"\b" + keywords.ElementAt(i));
                    foreach (var match in matches.Cast <Match>())
                    {
                        CodingRTB.Select(match.Index, match.Length); CodingRTB.SelectionColor = Color.DarkViolet;
                    }
                }
            }
            CodingRTB.Select(lastPos, 0); CodingRTB.SelectionColor = Color.Black;
            for (int i = 0; i < CodingRTB.Text.Length; i++)
            {
                if (CodingRTB.Text[i] == '0')
                {
                    lastPos = CodingRTB.SelectionStart; firstPosition = i; CodingRTB.SelectionLength = 1; CodingRTB.SelectionColor = Color.Black;
                    CodingRTB.SelectionStart = lastPos; CodingRTB.SelectionLength = 0; CodingRTB.SelectionColor = Color.Black;
                }
            }

            this.ResumeLayout(true);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Showing the form with programming language chosen
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CPusPlusForm_Shown(object sender, EventArgs e)
        {
            switch (StartForm.Language)
            {
            default:
                //  C++ language
                break;

            //  Java language
            case "Java":
                ProblemRTB.Text = JavaStartStringRus;
                codesText       = File.ReadAllLines("javacodes.dat"); problemNumber = 0;
                CodingRTB.Text  = "";
                //  Theory block forming
                TheoryTreeView.Nodes.Clear();
                TreeNode Beginning  = new TreeNode("Основы языка Java"); Beginning.Name = "Beginning";
                TreeNode Datatypes  = new TreeNode("Типы данных"); Datatypes.Name = "Datatypes";
                TreeNode Algorythms = new TreeNode("Алгоритмические конструкции"); Algorythms.Name = "Algorythms";
                //  inside Beginning
                TreeNode AboutJava    = new TreeNode("Что такое Java?"); AboutJava.Name = "AboutJava";
                TreeNode JavaAlphabet = new TreeNode("Алфавит языка Java"); JavaAlphabet.Name = "JavaAlphabet";
                TreeNode JavaSyntax   = new TreeNode("Синтаксис языка Java"); JavaSyntax.Name = "JavaSyntax";
                TreeNode JavaGrammar  = new TreeNode("Семантика языка Java"); JavaGrammar.Name = "JavaGrammar";
                Beginning.Nodes.Add(AboutJava); Beginning.Nodes.Add(JavaAlphabet); Beginning.Nodes.Add(JavaSyntax);
                Beginning.Nodes.Add(JavaGrammar);
                //  inside Datatypes
                TreeNode JavaValueTypes = new TreeNode("Типы значений"); JavaValueTypes.Name = "JavaValueTypes";
                Datatypes.Nodes.Add(JavaValueTypes);
                TreeNode JLogicalType  = new TreeNode("Логический тип"); JLogicalType.Name = "JLogicalType";
                TreeNode JIntegerTypes = new TreeNode("Типы целых чисел"); JIntegerTypes.Name = "JIntegerTypes";
                TreeNode JRealTypes    = new TreeNode("Типы вещественных чисел"); JRealTypes.Name = "JRealTypes";
                TreeNode JCharType     = new TreeNode("Тип символов"); JCharType.Name = "JCharType";
                JavaValueTypes.Nodes.Add(JLogicalType); JavaValueTypes.Nodes.Add(JIntegerTypes);
                JavaValueTypes.Nodes.Add(JRealTypes); JavaValueTypes.Nodes.Add(JCharType);
                //  inside Algorythms
                TreeNode JLinearAlgs      = new TreeNode("Линейные алгоритмы"); JLinearAlgs.Name = "JLinearAlgs";
                TreeNode JConditionalAlgs = new TreeNode("Разветвляющиеся алгоритмы"); JConditionalAlgs.Name = "JConditionalAlgs";
                Algorythms.Nodes.Add(JLinearAlgs); Algorythms.Nodes.Add(JConditionalAlgs);
                TreeNode [] treeNodes = { Beginning, Datatypes, Algorythms };
                TheoryTreeView.Nodes.AddRange(treeNodes);

                //  Practice block forming
                PracticeTreeView.Nodes.Clear();
                TreeNode NumericTask = new TreeNode("Вычисление значения числового выражения");
                NumericTask.Name = "NumericTask";
                TreeNode LogicalTask = new TreeNode("Определение истинности логического выражения");
                LogicalTask.Name = "LogicalTask";
                PracticeTreeView.Nodes.Add(NumericTask); PracticeTreeView.Nodes.Add(LogicalTask);

                keywords.Clear();
                keywords.Add("public"); keywords.Add("static"); keywords.Add("final"); keywords.Add("class");
                keywords.Add("void"); keywords.Add("new"); keywords.Add("short"); keywords.Add("int"); keywords.Add("long");
                keywords.Add("float"); keywords.Add("double"); keywords.Add("boolean"); keywords.Add("char");
                if (isCodeLighted)
                {
                    CodingRTB.SuspendLayout();
                    text_Lightout();
                    CodingRTB.ResumeLayout();
                }
                CodingRTB.SelectionStart = CodingRTB.Find("{") + 2; CodingRTB.SelectionLength = 0;
                ResultsTB.Text           = "0";
                problemText       = File.ReadAllLines("javaproblems.dat");
                rankLabel.Visible = false;
                OKButton.Enabled  = false;
                break;
            }
        }