Beispiel #1
0
 private void OneIter(object o)
 {
     if (EnemyP.Count == 0)
     {
         var i = N;
         while (--i >= 0)
         {
             var j = M;
             while (--j >= 0)
             {
                 if (_p[i, j].ColE() != 0)
                 {
                     EnemyP.Add(i * 100 + j);
                 }
             }
         }
         if (EnemyP.Count == 0)
         {
             BVis = true;
             Iter.Change(-1, 0);
             return;
         }
     }
     Game(null);
 }
Beispiel #2
0
 public Iter(int length, Iter child = null)
 {
     this.child  = child;
     this.length = length;
     step        = 1f / length;
     best        = defaultBest;
 }
Beispiel #3
0
        public Day4(string path) : base(4)
        {
            passports = new Iter <Passport>();
            FileParser parser = new FileParser(path);

            StringBuilder builder = new StringBuilder();

            foreach (var line in parser.Lines)
            {
                if (line.Length == 0)
                {
                    if (builder.Length > 1)
                    {
                        passports.Add(Passport.FromString(builder.ToString()));
                    }
                    builder = new StringBuilder();
                }
                builder.Append(line.Trim() + " ");
            }

            if (builder.Length > 1)
            {
                passports.Add(Passport.FromString(builder.ToString()));
            }
        }
 protected internal override void TraverseIter(Iter iter)
 {
     _writer.Write("foreach (var {0} in ", iter.Element);
     Traverse(iter.Seq);
     _writer.WriteLine(")");
     Traverse(iter.Body);
 }
Beispiel #5
0
 public IterEnum(Iter iter)
 {
     if (iter == null)
     {
         throw new ArgumentNullException("iter");
     }
     _iter = iter;
 }
Beispiel #6
0
 public override void Next()
 {
     iter1.Next();
     if (iter1.Done())
     {
         iter1 = iter2;
         iter2 = null;
     }
 }
Beispiel #7
0
 public void ResetFs()
 {
     i6 = new Iter(length);
     i5 = new Iter(length, i6);
     i4 = new Iter(length, i5);
     i3 = new Iter(length, i4);
     i2 = new Iter(length, i3);
     i1 = new Iter(length, i2);
 }
Beispiel #8
0
    private static IEnumerator TestEveryS_E()
    {
        long last = 0;

        for (int k = 0; k < 20; k++)
        {
            Iter.EverySeconds(ref last, 3, TestEveryS_C);
            yield return(new WaitForSeconds(1));
        }
    }
        internal override Node Bind(Binder b)
        {
            b.OpenScope();

            b.Bind(ref Expr);
            Expr.RequireGetAccess();

            if (Expr.Datatype.IsArray && Expr.Datatype.ArrayRank == 1)
            {
                var array = b.Cache(ref Expr);
                var iter  = b.AddLocal(Compilation.Get(NativeType.Int32));
                IterDecl  = VarDecl.Bound(iter, LiteralExpr.Bound(Constant.Create(b.Options.ArrayBase)), b.Options.Binding);
                WhileExpr = BinaryExpr.Bound(IdExpr.Bound(iter), Token,
                                             MethodCallExpr.Bound(array, Compilation.Get(WellKnownMembers.System_Array_get_Length), array, ArgList.Empty),
                                             b.Options.ArrayZero ? BinaryOperatorKind.LessThan : BinaryOperatorKind.LessThanOrEqual, b.Options.Binding);
                IncrExpr            = AssignOpExpr.Bound(IdExpr.Bound(iter), LiteralExpr.Bound(Constant.Create(1)), BinaryOperatorKind.Addition, b);
                ForDecl.Initializer = ArrayAccessExpr.Bound(array, new ArgList(new List <Arg>(1)
                {
                    new Arg(IdExpr.Bound(iter))
                }), b);
            }
            else
            {
                if (Expr.Datatype.IsUsualOrObject() && b.Options.Binding.HasFlag(BindOptions.AllowDynamic))
                {
                    b.Convert(ref Expr, Compilation.Get(NativeType.Array));
                }
                Expr e          = b.Cache(ref Expr);
                var  getIterSym = e.Datatype.GetEnumeratorGetter() ?? throw Error(ErrorCode.NoSuitableEnumerator);
                var  getIter    = MethodCallExpr.Bound(e, getIterSym, e, ArgList.Empty);
                var  iter       = b.AddLocal(getIter.Datatype);
                IterDecl  = VarDecl.Bound(iter, getIter, b.Options.Binding);
                WhileExpr = MethodCallExpr.Bound(b, IdExpr.Bound(iter), SystemNames.MoveNext, ArgList.Empty);
                b.Convert(ref WhileExpr, Compilation.Get(NativeType.Boolean));
                ForDecl.Initializer = MethodCallExpr.Bound(b, IdExpr.Bound(iter), SystemNames.CurrentGetter, ArgList.Empty);
                Dispose             = Compilation.Get(WellKnownTypes.System_IDisposable).IsAssignableFrom(getIter.Datatype);
                if (Dispose)
                {
                    RequireExceptionHandling = true;
                }
            }

            b.Bind(ref ForDecl);
            InnerDecl = ForDecl;

            Expr Iter;

            Iter = (ForDecl.Initializer as AssignExpr).Left;
            Iter.RequireGetAccess();

            b.Bind(ref Stmt);

            b.CloseScope();
            return(null);
        }
Beispiel #10
0
        public Day2(string path) : base(2)
        {
            FileParser parser = new FileParser(path);

            input = new Iter <string[]>();

            foreach (var res in parser.SplitLinesByRegex(regex))
            {
                input.Add(res);
            }
        }
Beispiel #11
0
 public bool isEqualTo(Iter <T> other)
 {
     if (other.GetType() == typeof(ArrayIter <T>))
     {
         try {
             ArrayIter <T> _other = (ArrayIter <T>)other;
             return(theList == _other.theList && index == _other.index);
         } catch (InvalidCastException) { return(false); }
     }
     else
     {
         return(false);
     }
 }
Beispiel #12
0
        private bool CheckRule(Rule rule, List <string> input, Iter iter, Tree tree, int depth = 0)
        {
            var origIter = iter.val;
            var prefix   = new StringBuilder();

            for (int i = 0; i < depth; i++)
            {
                prefix.Append("\t");
            }

            foreach (var right in rule.Right)
            {
                if (iter.val == input.Count)
                {
                    return(true);
                }

                var child = new Tree()
                {
                    Data = right
                };

                tree.Children.AddLast(child);

                if (Grammar.NonTerminals.Contains(right))
                {
                    if (!CheckRulesForNonTerminal(right, input, iter, child, depth))
                    {
                        iter.val = origIter;
                        tree.Children.Clear();
                        return(false);
                    }
                }
                else if (right.Equals(input[iter.val]))
                {
                    Console.WriteLine($"{prefix} Обработан символ {iter.val} : {input[iter.val]}");
                    iter.Inc();
                }
                else
                {
                    Console.WriteLine($"{prefix} Обнаружена ошибка {iter.val} : {input[iter.val]}");
                    Console.WriteLine($"{prefix} Правило {rule}");
                    iter.val = origIter;
                    tree.Children.Clear();
                    return(false);
                }
            }
            Console.WriteLine($"{prefix} Подходит {rule}");
            return(true);
        }
Beispiel #13
0
        private Expression NumberExpressionRule()
        {
            Expect(TokenType.Number);
            var start = double.Parse(token.Value);

            if (!TryExpect(TokenType.Range))
            {
                return(Expression.Constant(new Number(start), typeof(Any)));
            }

            Expect(TokenType.Number);
            var end = double.Parse(token.Value);

            return(Expression.Constant(Iter.Range(start, end), typeof(Any)));
        }
Beispiel #14
0
        public bool ProcessText(string text)
        {
            string[] separatingChars = { " ", "\n", "\t" };
            var      input           = text.Split(separatingChars, StringSplitOptions.RemoveEmptyEntries).ToList();
            var      iter            = new Iter();

            _tree = new Tree()
            {
                Data = Grammar.Start
            };
            var check  = CheckRulesForNonTerminal(Grammar.Start, input, iter, _tree);
            var checkI = iter.val == input.Count;

            return(check && checkI);
        }
Beispiel #15
0
    public SOR(Iter, x, NormaRel)
    {
        n = length(A);
        for (i = 1; i < nr; i++) {
            nr = 1 / A[i, i];
            for (j = 1; j < n; j++) {
                if ((i = j) && A[i, j] = A(i, j)∗r);
    }
}
   b[i] = b[i]∗r; 
   x[i] = b[i];
   Iter = 0; 
   NormaRel = 1000; 
    
   while (NormaRel > Toler  && Iter < IterMax){
       Iter = Iter + 1; 
       for (i=1; i<namespace; i++){
Beispiel #16
0
        public void CloseExcelControl(ref Excel.Worksheet ws, ref Excel.Workbook wb, ref Excel.Application app, ref List<Process> processes)
        {
            if (ws != null)
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(ws);
            }
            if (wb != null)
            {
                g_Util.DebugPrint("I'm saving Excel File...");
                if (wb.ReadOnly == false)
                {
                    wb.Save();
                }
                wb.Close();
                System.Runtime.InteropServices.Marshal.ReleaseComObject(wb);
                wb = null;
            }
            if (app != null)
            {
                g_Util.DebugPrint("I'm closing Excel File...");
                app.Quit();
                System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
                app = null;
            }

            if (processes != null && processes.Count > 0)
            {
                g_Util.DebugPrint("I'm killing Excel processes...");
                foreach (Process Iter in processes)
                {
                    if (Iter.ProcessName == "EXCEL")
                    {
                        try
                        {
                            Process.GetProcessById(Iter.Id);
                            Iter.Kill();
                        }
                        catch
                        {
                            continue;
                        }
                    }
                }
            }
        }
Beispiel #17
0
        private bool CheckRulesForNonTerminal(string nonTerm, List <string> input, Iter iter, Tree tree, int depth = 0)
        {
            foreach (var rule1 in Grammar.Rules.Where(rule => rule.Left.Equals(nonTerm)))
            {
                var prefix = new StringBuilder();
                for (int i = 0; i < depth; i++)
                {
                    prefix.Append("\t");
                }

                Console.WriteLine($"{prefix} Проверка {rule1}");
                if (CheckRule(rule1, input, iter, tree, depth + 1))
                {
                    return(true);
                }
            }
            return(false);
        }
Beispiel #18
0
 private void Temp()
 {
     if (EnemyP.Count == 0)
     {
         var i = N;
         while (--i >= 0)
         {
             var j = M;
             while (--j >= 0)
             {
                 if (_p[i, j].ColE() != 0)
                 {
                     EnemyP.Add(i * 100 + j);
                 }
             }
         }
         if (EnemyP.Count == 0)
         {
             BVis = true;
             Iter.Change(-1, 0);
             return;
         }
     }
     if (!_bvis && _shag)
     {
         Iter.Change(1000, 3000);
     }
     else
     {
         Iter.Change(-1, 0);
         if (_shag)
         {
             return;
         }
         var k = 0;
         while (EnemyP.Count != 0)
         {
             Game(null); k++;
         }
         BVis  = true;
         _shag = true;
     }
 }
Beispiel #19
0
        public override IEnumerator _Next(EntityPlayer player)
        {
            /* Over should keep some memory (position), and regenerate toward player
             */
            long        start_time = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
            Emplacement placeBase  = new Emplacement(player, opt);

            placeBase.direction = Vectors.Float.Randomize(this.rand, 1f); // useless for peak
            Printer.Log(46, "MultiEffect._Next() placeBase", player, placeBase.position, placeBase.direction);
            foreach (int p in Cycler.Over())
            {
                if (Cycler.dt >= 0 && DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() - start_time > (long)(Cycler.dt * 1000))
                {
                    yield break;
                }
                Printer.Log(41, "_Next iterating Over");
                Vector3 maybeFollowing = (this.isFollowing) ? player.GetPosition() : placeBase.position;
                int     q = -1;
                foreach (Emplacement place in Iter.On(Placer.Get(maybeFollowing)))
                {
                    q = q + 1;
                    if (q >= Repeater.n)
                    {
                        break;
                    }
                    if (place.valid)
                    {
                        Printer.Log(40, "MultiEffect._Next iterating Clones", place); // last before null (firestorm)
                        // float state = ((float) q) / Repeater.copies;
                        OptionEffect rdm = Randomize();
                        Printer.Log(40, "_Next Randomized", p, q, opt);
                        Printer.Log(40, "_Next Place", p, q, place);
                        this.Effect1(player, place, rdm);
                    }
                    else
                    {
                        Printer.Log(40, "Invalid place:", q, place, place.valid_msg);
                    }
                    yield return(Repeater.Yield);
                }
                yield return(Cycler.Yield);
            }
        }
Beispiel #20
0
        /*
         * 6 7 8
         * 3 4 5
         * 0 1 2
         */
        public bool MoveToNext()
        {
            if (countX == extra * 2)
            {
                Iter.MoveFor(Vector2D.Left, countX);
                Iter.MoveFor(Vector2D.Up, 1);
                countX = 0;
                ++countY;

                if (countY == extra * 2 + 1)
                {
                    return(false);
                }

                return(true);
            }


            Iter.MoveFor(Vector2D.Right, 1);
            ++countX;
            return(true);
        }
Beispiel #21
0
        public override IEnumerator _Next(EntityPlayer player)
        {
            Vector3 ppos = player.GetPosition();

            // if (entities.Count == 0) {
            //     Printer.Print("AtEntities empty at ", bounds, player);
            //     yield break;
            // }
            foreach (int p in Repeater.Over())
            {
                Bounds bounds = BoundToPosition(ppos, Placer.Bounds(ppos));
                Iter.EverySeconds(ref last_entities_update, updateEvery, this.UpdateEntities, bounds);

                // Printer.Print("AtEntities_Next Over");
                // for (int draw=0; draw< Repeater.n; draw++) {
                // Downscale only if all entities can't be treated at once. Don't upscale above.
                int nUpdates = Math.Min(entities.Count, (int)Math.Ceiling(rate * entities.Count));
                for (int draw = 0; draw < nUpdates; draw++)
                {
                    // EntityAlive target = entities[this.NextIndex()] as EntityAlive;
                    // Printer.Print("AtEntities_Next Clones", draw, target); // last before null (firestorm)
                    EntityAlive target = SdtdUtils.Cycling.Next(entities, ref _indexEnt) as EntityAlive;
                    if (target != null)
                    {
                        OptionEffect rdm = Randomize();
                        Printer.Log(40, "AtEntities_Next Randomized", draw, target, opt);
                        yield return(this.Apply(player, target, rdm));
                    }
                    else
                    {
                        Printer.Log(40, "AtEntities_Next null Entity", draw);
                    }
                    yield return(Repeater.Yield);
                }
                yield return(Cycler.Yield); // a single cycle
            }
        }
Beispiel #22
0
        private void CloseAll()
        {
            if (g_ExcelTool != null)
            {
                g_ExcelTool.CloseExcelControl(ref processes);
            }

            if (processes != null)
            {
                foreach (Process Iter in processes)
                {
                    System.Diagnostics.Debug.WriteLine("Kill " + Iter.ProcessName);
                    try
                    {
                        Process.GetProcessById(Iter.Id);
                        Iter.Kill();
                    }
                    catch
                    {
                        continue;
                    }
                }
            }
        }
Beispiel #23
0
 protected internal virtual Node TransformIter(Iter iter)
 {
     return(iter.AcceptTransformer(this, true));
 }
	public override String ToString()
	{
	    return ("DoVarDef(\n" + Name + ",\n" + Init.ToString() + ",\n" + Iter.ToString() + ")\n");
	}
 protected internal override void TraverseIter(Iter iter)
 {
     Traverse(iter.Seq);
     Traverse(iter.Body);
     Types.Add(iter, null);
 }
Beispiel #26
0
 public Iter GetIter()
 {
     return(Iter.NewIter(column, count));
 }
Beispiel #27
0
 protected internal override Node TransformIter(Iter iter)
 {
     return(Dispatch(iter));
 }
Beispiel #28
0
 protected internal override T ReduceIter(Iter iter)
 {
     return(Dispatch(iter));
 }
        private void WriteNumber(StringBuilder number)
        {
            StringBuilder phrase      = new StringBuilder("");
            StringBuilder alternative = new StringBuilder("");

            digits.Insert(0, number);
            for (int i = 0; i < number.Length; i++)
            {
                Iter++;
                ParamThousands++;
                if (ParamMillions.Length < Iter)
                {
                    ParamMillions.Append("0");
                }
                if (!phrase.Equals(new StringBuilder("")) &&
                    !number[i].ToString().Equals("0"))
                {
                    phrase.Append(" e ");
                }
                if (!alternative.Equals(new StringBuilder("")) &&
                    !number[i].ToString().Equals("0"))
                {
                    alternative.Append(" e ");
                }
                if ((number.Length - 1 - i) > 1)
                {
                    if (applyMultiplicativeTerm.Equals(true) && Iter.Equals(1) &&
                        multiplicative.ContainsKey(number.ToString()))
                    {
                        Vezes = false;
                        phrase.Append(multiplicative[number.ToString()]);
                        i = i + 2;
                    }
                    else
                    {
                        if (number[i].ToString().Equals("1") &&
                            (!number[i + 1].ToString().Equals("0") || !number[i + 2].ToString().Equals("0")))
                        {
                            phrase.Append("cento");
                            alternative.Append("cento");
                        }
                        else
                        {
                            if (hundreds.ContainsKey(number[i].ToString() + "00"))
                            {
                                phrase.Append(hundreds[number[i].ToString() + "00"]);
                                alternative.Append(hundreds[number[i].ToString() + "00"]);
                            }
                        }
                    }
                }
                else if ((number.Length - 1 - i) == 1)
                {
                    if (applyMultiplicativeTerm.Equals(true) && Iter.Equals(1) &&
                        multiplicative.ContainsKey(number.ToString()))
                    {
                        Vezes = false;
                        phrase.Append(multiplicative[number.ToString()]);
                        i++;
                    }
                    else
                    {
                        if (number[i].ToString().Equals("1"))
                        {
                            if (number[i + 1].ToString().Equals("0"))
                            {
                                phrase.Append(tens[number[i].ToString() + number[i + 1].ToString()]);
                                alternative.Append(tens[number[i].ToString() + number[i + 1].ToString()]);
                            }
                            else
                            {
                                if (number[i + 1].ToString().Equals("4"))
                                {
                                    alternative.Append(alternativeSpecials[number[i].ToString() + number[i + 1].ToString()]);
                                }
                                else
                                {
                                    alternative.Append(specials[number[i].ToString() + number[i + 1].ToString()]);
                                }
                                phrase.Append(specials[number[i].ToString() + number[i + 1].ToString()]);
                            }
                            i++;
                            Iter++;
                            ParamThousands++;
                            if (ParamMillions.Length < Iter)
                            {
                                ParamMillions.Append("0");
                            }
                        }
                        else
                        {
                            if (tens.ContainsKey(number[i].ToString() + "0"))
                            {
                                phrase.Append(tens[number[i].ToString() + "0"]);
                                alternative.Append(tens[number[i].ToString() + "0"]);
                            }
                        }
                    }
                }
                else
                {
                    if (applyMultiplicativeTerm.Equals(true) && Iter.Equals(1) &&
                        multiplicative.ContainsKey(number.ToString()))
                    {
                        Vezes = false;
                        phrase.Append(multiplicative[number.ToString()]);
                        if (alternativeMultiplicative.ContainsKey(number.ToString()))
                        {
                            alternative.Append(alternativeMultiplicative[number.ToString()]);
                        }
                    }
                    else
                    {
                        if (units.ContainsKey(number[i].ToString()))
                        {
                            phrase.Append(units[number[i].ToString()]);
                            alternative.Append(units[number[i].ToString()]);
                        }
                    }
                }
            }
            phrase      = CheckTextThousands(phrase);
            alternative = CheckTextThousands(alternative);
            CheckTextMillons(phrase);
            ResetParameters();
            InsertSentence(sentence, phrase.ToString());
            InsertSentence(alternativeSentence, alternative.ToString());
        }
Beispiel #30
0
 public void Dispose()
 {
     _iter    = null;
     _current = null;
 }