Example #1
0
    public static DeltaData GetPaoDelta(PointData offset)
    {
        DeltaData delta = null;

        if (offset.x == 0 && offset.y > 0)
        {
            delta = Constant.PaoZouFaDelta[0];
        }
        else if (offset.x == 0 && offset.y < 0)
        {
            delta = Constant.PaoZouFaDelta[0];
        }
        else if (offset.x > 0 && offset.y == 0)
        {
            delta = Constant.PaoZouFaDelta[0];
        }
        else if (offset.x < 0 && offset.y == 0)
        {
            delta = Constant.PaoZouFaDelta[0];
        }
        else
        {
            throw new AppException(ErrorMessage.AE0005);
        }
        return(delta);
    }
Example #2
0
        /// <summary>
        /// Main Class
        /// </summary>
        /// <param name="args">Argumentos de entrada por liena de comandos</param>
        static void Main(string[] args)
        {
            // Control del directorio a analizar
            string rootFolder = args[0];

            if (String.IsNullOrEmpty(args[0]))
            {
                rootFolder = Directory.GetCurrentDirectory();
            }

            //Cargar los datos de los ficheros en las estructuras de cada exchange
            List <DeltaData> deltaOperations = new List <DeltaData>();

            foreach (string folder in Directory.GetDirectories(rootFolder))
            {
                foreach (string file in Directory.GetFiles(folder))
                {
                    switch (Path.GetFileName(folder))
                    {
                    case "binance":
                        Console.WriteLine(Path.GetFileName(folder));
                        break;

                    case "bittrex":
                        try {
                            using (StreamReader sr = new StreamReader(file)) {
                                sr.ReadLine();     //Descarte de la primera line de cabecera

                                string line = string.Empty;
                                while (!sr.EndOfStream)
                                {
                                    line = sr.ReadLine();
                                    deltaOperations.Add(new BittrexData(line));
                                }
                            }
                        } catch (Exception e) {
                            Console.WriteLine("The File could not be read:");
                            Console.WriteLine(e.Message);
                            Console.ReadLine();
                        }
                        Console.WriteLine(Path.GetFileName(file));
                        break;

                    case "coinbase":
                        Console.WriteLine(Path.GetFileName(folder));
                        break;

                    case "kraken":
                        Console.WriteLine(Path.GetFileName(folder));
                        break;

                    case "poloniex":
                        Console.WriteLine(Path.GetFileName(folder));
                        break;
                    }
                }
            }

            DeltaData.PojoToCSV(deltaOperations, rootFolder);
        }
Example #3
0
    public ResultData CheckPao()
    {
        ResultData result = new ResultData();
        //最新走法
        MoveData move = fen.moves[0];

        //没按直线移动
        if ((move.end - move.start) == PointData.Zero)
        {
            throw new AppException(ErrorMessage.AE0005);
        }
        //自己部队碰撞
        else if ((fen.current & (int)fen[move.end]) != 0x0000)
        {
            throw new AppException(ErrorMessage.AE0007);
        }
        else
        {
            PointData offset = move.end - move.start;
            DeltaData delta  = Utility.GetPaoDelta(offset);
            PointData p      = move.start + delta.target;
            int       paotai = 0;
            while (p == move.end)
            {
                if (fen[p] != Qizi.KONGZI)
                {
                    paotai++;
                }
                p = p + delta.target;
            }

            if (paotai == 0 && fen[move.end] == Qizi.KONGZI)
            {
                //空白移动
                result.result  = true;
                result.pgn.fen = fen;
            }
            else if (paotai == 1 && ((fen.current & (int)fen[move.end]) == 0x0000))

            {
                result.result  = true;
                result.caneat  = true;
                result.pgn.fen = fen;
            }
            else
            {
                throw new AppException(ErrorMessage.AE0007);
            }
        }
        return(result);
    }
Example #4
0
 /// <summary>
 /// Validate a delta
 /// </summary>
 private void ValidateDelta(DeltaData delta)
 {
     if (String.IsNullOrEmpty(delta.Name))
     {
         throw new InvalidOperationException("Delta set Delta must provide a name");
     }
     foreach (var constraint in delta.Constraint)
     {
         ValidateConstraint(constraint);
     }
     if (delta is ClassDeltaData)
     {
         if ((delta as ClassDeltaData).Deltas != null)
         {
             foreach (var subDelta in (delta as ClassDeltaData).Deltas)
             {
                 ValidateDelta(subDelta.Value);
             }
         }
     }
 }