Beispiel #1
0
 // *****************************************************************************
 // IMatchable implementation
 // *****************************************************************************
 public override bool Match(MatchNode matchNode, MatchEngine engine)
 {
     if (!base.Match(matchNode, engine))
     {
         return(false);
     }
     foreach (KeyValuePair <IMatchable.MatchProperties, MatchNode.RuleValue> rule in matchNode
              .GetRules())
     {
         MatchNode.RuleValue        value = rule.Value;
         IMatchable.MatchProperties key   = rule.Key;
         if (key == IMatchable.MatchProperties.Exprent_Consttype)
         {
             if (!value.value.Equals(this.constType))
             {
                 return(false);
             }
         }
         else if (key == IMatchable.MatchProperties.Exprent_Constvalue)
         {
             if (value.IsVariable() && !engine.CheckAndSetVariableValue(value.value.ToString()
                                                                        , this.value))
             {
                 return(false);
             }
         }
     }
     return(true);
 }
Beispiel #2
0
        public override bool Match(MatchNode matchNode, MatchEngine engine)
        {
            if (matchNode.GetType() != MatchNode.Matchnode_Statement)
            {
                return(false);
            }
            foreach (KeyValuePair <IMatchable.MatchProperties, MatchNode.RuleValue> rule in matchNode
                     .GetRules())
            {
                switch (rule.Key.ordinal())
                {
                case 0:
                {
                    if (this.type != (int)rule.Value.value)
                    {
                        return(false);
                    }
                    break;
                }

                case 2:
                {
                    if (this.stats.Count != (int)rule.Value.value)
                    {
                        return(false);
                    }
                    break;
                }

                case 3:
                {
                    int exprsize = (int)rule.Value.value;
                    if (exprsize == -1)
                    {
                        if (this.exprents != null)
                        {
                            return(false);
                        }
                    }
                    else if (this.exprents == null || this.exprents.Count != exprsize)
                    {
                        return(false);
                    }
                    break;
                }

                case 1:
                {
                    if (!engine.CheckAndSetVariableValue((string)rule.Value.value, this))
                    {
                        return(false);
                    }
                    break;
                }
                }
            }
            return(true);
        }
Beispiel #3
0
        public ImageMatchProvider GetImageMatchProvider(IFillProvider <IImageData> fillProvider, IImageDataSorter imageDataSorter)
        {
            IFillProviderFactory <IImageData, IImageData> fillProviderFactory = new FilteredFillProviderFactory <IImageData, IImageData>(fillProvider, _filterStrategyFactory);
            IMatchProvider <IImageData, ImageMatch>       matchProvider       = new MatchProvider <IImageData, IImageData, ImageMatch>(
                _matchStrategy, fillProviderFactory);
            IMatchEngine <IImageData, ImageMatch> matchEngine = new MatchEngine <IImageData, ImageMatch>(matchProvider, _matchFilter);

            return(new ImageMatchProvider(matchEngine));
        }
        // *****************************************************************************
        // IMatchable implementation
        // *****************************************************************************
        public override bool Match(MatchNode matchNode, MatchEngine engine)
        {
            if (!base.Match(matchNode, engine))
            {
                return(false);
            }
            int type = (int)matchNode.GetRuleValue(IMatchable.MatchProperties.Exprent_Functype
                                                   );

            return(type == null || this.funcType == type);
        }
Beispiel #5
0
 public static string MatchEngineToString(MatchEngine me)
 {
     if (me == MatchEngine.Filters)
     {
         return("filter");
     }
     else
     {
         return("regex");
     }
 }
Beispiel #6
0
 void Start()
 {
     SetPriceText();
     SetAmountText();
     SetLoanFundsText();
     Hour           = 0;
     Day            = 1;
     buyOrder       = GameObject.FindObjectOfType(typeof(BuyOrder)) as BuyOrder; //Funciona!!!!! Sirve para poder llamar funciones de otros scripts
     sellOrder      = GameObject.FindObjectOfType(typeof(SellOrder)) as SellOrder;
     loanController = GameObject.FindObjectOfType(typeof(LoanController)) as LoanController;
     shareHolder    = GameObject.FindObjectOfType(typeof(ShareHolder)) as ShareHolder;
     lastTradesList = GameObject.FindObjectOfType(typeof(LastTradesList)) as LastTradesList;
     matchEngine    = GameObject.FindObjectOfType(typeof(MatchEngine)) as MatchEngine;
     InvokeRepeating("DistributeBalance", 1, 1);
     InvokeRepeating("GetData", 5, 5);
     InvokeRepeating("SetMarketData", 1, 1);
     InvokeRepeating("GetTime", 1, 1);
     InvokeRepeating("TimeContador", 0.1f, 0.1f);
 }
Beispiel #7
0
 // *****************************************************************************
 // IMatchable implementation
 // *****************************************************************************
 public override bool Match(MatchNode matchNode, MatchEngine engine)
 {
     if (!base.Match(matchNode, engine))
     {
         return(false);
     }
     MatchNode.RuleValue rule = matchNode.GetRules().GetOrNull(IMatchable.MatchProperties
                                                               .Exprent_Var_Index);
     if (rule != null)
     {
         if (rule.IsVariable())
         {
             return(engine.CheckAndSetVariableValue((string)rule.value, this.index));
         }
         else
         {
             return(this.index == int.Parse((string)rule.value));
         }
     }
     return(true);
 }
Beispiel #8
0
    public void Start()
    {
        shareHolder = GameObject.FindObjectOfType(typeof(ShareHolder)) as ShareHolder;
        variables   = GameObject.FindObjectOfType(typeof(Variables)) as Variables;
        matchEngine = GameObject.FindObjectOfType(typeof(MatchEngine)) as MatchEngine;
        Init();
        //var order0 = new SellOrder(shareHolder.companyName, 400000, 320, 0.0008f, variables.timeContador);
        var order = new SellOrder("Limit", 1, 9999999, 9999999, variables.timeContador);

        sellOrders.Add(order);
        //sellOrders.Add(order0);

        for (int i = 0; i < 20; i++)
        {
            var orderi = new SellOrder(shareHolder.companyName, 100000 * i, 100000 * i * 0.0008f * i, 0.0008f * i, variables.timeContador);
            sellOrders.Add(orderi);
        }

        sellOrders.Sort((p1, p2) => p1.Price.CompareTo(p2.Price));
        DisplaySellList();
    }
Beispiel #9
0
 public override bool Match(MatchNode matchNode, MatchEngine engine)
 {
     if (matchNode.GetType() != MatchNode.Matchnode_Exprent)
     {
         return(false);
     }
     foreach (KeyValuePair <IMatchable.MatchProperties, MatchNode.RuleValue> rule in matchNode
              .GetRules())
     {
         IMatchable.MatchProperties key = rule.Key;
         if (key == IMatchable.MatchProperties.Exprent_Type && this.type != (int)rule.Value
             .value)
         {
             return(false);
         }
         if (key == IMatchable.MatchProperties.Exprent_Ret && !engine.CheckAndSetVariableValue
                 ((string)rule.Value.value, this))
         {
             return(false);
         }
     }
     return(true);
 }
    public void Start()
    {
        shareHolder = GameObject.FindObjectOfType(typeof(ShareHolder)) as ShareHolder;
        variables   = GameObject.FindObjectOfType(typeof(Variables)) as Variables;
        matchEngine = GameObject.FindObjectOfType(typeof(MatchEngine)) as MatchEngine;
        Init();
        var order3 = new BuyOrder("Alberto", 20, 0.008f, 0.0004f, variables.timeContador);
        var order4 = new BuyOrder("Alberto", 200, 0.04f, 0.0002f, variables.timeContador);
        var order5 = new BuyOrder("Pepe", 5000, 0.5f, 0.0001f, variables.timeContador);
        var order6 = new BuyOrder("Alberto", 20, 0.006f, 0.0003f, variables.timeContador);
        var order7 = new BuyOrder("Alberto", 5, 0.0035f, 0.0007f, variables.timeContador);
        var order8 = new BuyOrder("Pepe", 37, 0.01295f, 0.00035f, variables.timeContador);
        var order9 = new BuyOrder("Limit", 10000000, 1000, 0.0001f, variables.timeContador);

        buyOrders.Add(order3);
        buyOrders.Add(order4);
        buyOrders.Add(order5);
        buyOrders.Add(order6);
        buyOrders.Add(order7);
        buyOrders.Add(order8);
        buyOrders.Add(order9);
        buyOrders.Sort((p1, p2) => - p1.Price.CompareTo(p2.Price));
        DisplayBuyList();
    }
 // *****************************************************************************
 // IMatchable implementation
 // *****************************************************************************
 public override bool Match(MatchNode matchNode, MatchEngine engine)
 {
     if (!base.Match(matchNode, engine))
     {
         return(false);
     }
     foreach (KeyValuePair <IMatchable.MatchProperties, MatchNode.RuleValue> rule in matchNode
              .GetRules())
     {
         MatchNode.RuleValue        value = rule.Value;
         IMatchable.MatchProperties key   = rule.Key;
         if (key == IMatchable.MatchProperties.Exprent_Invocation_Parameter)
         {
             if (value.IsVariable() && (value.parameter >= lstParameters.Count || !engine.CheckAndSetVariableValue
                                            (value.value.ToString(), lstParameters[value.parameter])))
             {
                 return(false);
             }
         }
         else if (key == IMatchable.MatchProperties.Exprent_Invocation_Class)
         {
             if (!value.value.Equals(this.classname))
             {
                 return(false);
             }
         }
         else if (key == IMatchable.MatchProperties.Exprent_Invocation_Signature)
         {
             if (!value.value.Equals(this.name + this.stringDescriptor))
             {
                 return(false);
             }
         }
     }
     return(true);
 }
Beispiel #12
0
        protected MatchTestBase()
        {
            var randomnessProvider = new ThreadSafeRandomnessProvider();
            var actions            = new IAction[] { new Foul(randomnessProvider), new Shot(randomnessProvider) };
            var actionService      = new ActionService(actions, randomnessProvider);

            StubMatchEngine = new MatchEngine(actionService);

            StubHomePlayer = new Card
            {
                Id      = Guid.NewGuid(),
                Name    = "GK",
                Rating  = 80,
                Fitness = 100
            };

            StubHomeSub = new Card
            {
                Id      = Guid.NewGuid(),
                Name    = "ST",
                Rating  = 40,
                Fitness = 100
            };

            StubAwayPlayer = new Card
            {
                Id      = Guid.NewGuid(),
                Name    = "ST",
                Rating  = 40,
                Fitness = 100
            };

            StubAwaySub = new Card
            {
                Id      = Guid.NewGuid(),
                Name    = "ST",
                Rating  = 40,
                Fitness = 100
            };

            var stubHomeTeamLineup = new Dictionary <string, IEnumerable <Card> >
            {
                {
                    "GK", new List <Card>
                    {
                        StubHomePlayer
                    }
                },
                {
                    "DEF", new List <Card>
                    {
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "LB",
                            Rating  = 80,
                            Fitness = 100
                        },
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "CB",
                            Rating  = 80,
                            Fitness = 100
                        },
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "CB",
                            Rating  = 80,
                            Fitness = 100
                        },
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "RB",
                            Rating  = 80,
                            Fitness = 100
                        }
                    }
                },
                {
                    "MID", new List <Card>
                    {
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "LM",
                            Rating  = 80,
                            Fitness = 100
                        },
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "CM",
                            Rating  = 80,
                            Fitness = 100
                        },
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "CM",
                            Rating  = 80,
                            Fitness = 100
                        },
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "RM",
                            Rating  = 80,
                            Fitness = 100
                        }
                    }
                },
                {
                    "ATT", new List <Card>
                    {
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "ST",
                            Rating  = 80,
                            Fitness = 100
                        },
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "ST",
                            Rating  = 80,
                            Fitness = 100
                        }
                    }
                }
            };

            var stubAwayTeamLineup = new Dictionary <string, IEnumerable <Card> >
            {
                {
                    "GK", new List <Card>
                    {
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "GK",
                            Rating  = 40,
                            Fitness = 100
                        }
                    }
                },
                {
                    "DEF", new List <Card>
                    {
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "LB",
                            Rating  = 40,
                            Fitness = 100
                        },
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "CB",
                            Rating  = 40,
                            Fitness = 100
                        },
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "CB",
                            Rating  = 40,
                            Fitness = 100
                        },
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "RB",
                            Rating  = 40,
                            Fitness = 100
                        }
                    }
                },
                {
                    "MID", new List <Card>
                    {
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "LM",
                            Rating  = 40,
                            Fitness = 100
                        },
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "CM",
                            Rating  = 40,
                            Fitness = 100
                        },
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "CM",
                            Rating  = 40,
                            Fitness = 100
                        },
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "RM",
                            Rating  = 40,
                            Fitness = 100
                        }
                    }
                },
                {
                    "ATT", new List <Card>
                    {
                        StubAwayPlayer,
                        new Card
                        {
                            Id      = Guid.NewGuid(),
                            Name    = "ST",
                            Rating  = 40,
                            Fitness = 100
                        }
                    }
                }
            };

            StubHomeSquad = new Squad
            {
                Id     = Guid.NewGuid(),
                Lineup = stubHomeTeamLineup,
                Subs   = new[]
                {
                    StubHomeSub
                },
                Name = "Good FC"
            };

            StubAwaySquad = new Squad
            {
                Id     = Guid.NewGuid(),
                Lineup = stubAwayTeamLineup,
                Subs   = new[]
                {
                    StubAwaySub
                },
                Name = "Shitty FC"
            };

            StubHomeUserId = Guid.NewGuid();
            var stubAwayUserId = Guid.NewGuid();

            StubHomeTeamDetails = new TeamDetails
            {
                UserId = StubHomeUserId,
                Squad  = StubHomeSquad
            };

            StubMatch = new ApplicationCore.Models.Match
            {
                Id       = Guid.NewGuid(),
                KickOff  = DateTime.Now,
                HomeTeam = StubHomeTeamDetails,
                AwayTeam = new TeamDetails
                {
                    UserId = stubAwayUserId,
                    Squad  = StubAwaySquad
                }
            };
        }
Beispiel #13
0
        static void Main(string[] args)
        {
            var connollyBD = new BaseData("Connolly", 8, 6, 10, 0, 11);
            var connolly   = new Player(connollyBD, Area.HomeGoalRight, Role.Defender);
            var carsleyBD  = new BaseData("Carsley", 10, 8, 14, 0, 17);
            var carsley    = new Player(carsleyBD, Area.MidCenter, Role.Midfielder);
            var branchBD   = new BaseData("Branch", 8, 8, 5, 0, 11);
            var branch     = new Player(branchBD, Area.AwayGoalLeft, Role.Attacker);
            var gravesenBD = new BaseData("Gravesen", 14, 10, 10, 0, 15);
            var gravesen   = new Player(gravesenBD, Area.MidCenter, Role.Midfielder);
            var yoboBD     = new BaseData("Yobo", 11, 4, 16, 0, 11);
            var yobo       = new Player(yoboBD, Area.HomeGoalCenter, Role.Defender);
            var cummingsBD = new BaseData("Cummings", 12, 12, 12, 0, 10);
            var cummings   = new Player(cummingsBD, Area.MidLeft, Role.Midfielder);
            var maldiniBD  = new BaseData("Maldini", 14, 6, 18, 0, 16);
            var maldini    = new Player(maldiniBD, Area.HomeGoalLeft, Role.Defender);
            var jevonsBD   = new BaseData("Jevons", 8, 13, 6, 0, 8);
            var jevons     = new Player(jevonsBD, Area.AwayGoalRight, Role.Attacker);
            var xavierBD   = new BaseData("Xavier", 7, 6, 13, 0, 9);
            var xavier     = new Player(xavierBD, Area.MidRight, Role.Midfielder);
            var dunneBD    = new BaseData("Dunne", 10, 6, 15, 0, 16);
            var dunne      = new Player(dunneBD, Area.HomeGoalCenter, Role.Defender);
            var southallBD = new BaseData("Southall", 13, 3, 10, 18, 15);
            var southall   = new Player(southallBD, Area.HomeGoalCenter, Role.Goalkeeper);

            var finnanBD    = new BaseData("Finnan", 13, 6, 14, 0, 13);
            var finnan      = new Player(finnanBD, Area.AwayGoalRight, Role.Defender);
            var whelanBD    = new BaseData("Whelan", 10, 8, 8, 0, 10);
            var whelan      = new Player(whelanBD, Area.MidRight, Role.Midfielder);
            var babelBD     = new BaseData("Babel", 12, 14, 6, 0, 10);
            var babel       = new Player(babelBD, Area.AwayGoalLeft, Role.Attacker);
            var sounessBD   = new BaseData("Souness", 14, 14, 16, 0, 15);
            var souness     = new Player(sounessBD, Area.MidCenter, Role.Midfielder);
            var babbBD      = new BaseData("Babb", 9, 4, 13, 0, 12);
            var babb        = new Player(babbBD, Area.AwayGoalCenter, Role.Defender);
            var jonesBD     = new BaseData("Jones", 12, 10, 15, 0, 13);
            var jones       = new Player(jonesBD, Area.AwayGoalLeft, Role.Defender);
            var molbyBD     = new BaseData("Molby", 17, 15, 9, 0, 8);
            var molby       = new Player(molbyBD, Area.MidLeft, Role.Midfielder);
            var saundersBD  = new BaseData("Saunders", 8, 16, 6, 0, 14);
            var saunders    = new Player(saundersBD, Area.HomeGoalRight, Role.Attacker);
            var thompsonBD  = new BaseData("Thompson", 14, 6, 13, 0, 9);
            var thompson    = new Player(thompsonBD, Area.MidRight, Role.Midfielder);
            var carragherBD = new BaseData("Carragher", 10, 6, 18, 0, 18);
            var carragher   = new Player(carragherBD, Area.AwayGoalLeft, Role.Defender);
            var grobelaarBD = new BaseData("Grobelaar", 11, 3, 9, 14, 12);
            var grobelaar   = new Player(grobelaarBD, Area.AwayGoalCenter, Role.Goalkeeper);
            IEnumerable <Player> evertonPlayers = new List <Player> {
                southall, carsley, gravesen, branch, xavier, cummings,
                connolly, jevons, dunne, maldini, yobo
            };
            IEnumerable <Player> liverpoolPlayers = new List <Player> {
                grobelaar, carragher, thompson, saunders
                , molby, jones, babb, souness, babel, whelan, finnan
            };
            var everton   = new Team("Everton", evertonPlayers);
            var liverpool = new Team("Liverpool", liverpoolPlayers);

            MatchEngine.SimulateMatch(everton, liverpool);
            Console.ReadLine();
        }
Beispiel #14
0
        public void Start()
        {
            Console.WriteLine("Please Enter the First Team's Name:");
            string team1Name = Console.ReadLine();

            Console.WriteLine("Please Enter the Second Team's Name:");
            string team2Name = Console.ReadLine();

            // ********** FOR TESTING USE **********
            // Console.WriteLine("Please Enter test case:");
            // string team1Name = "";
            // string team2Name = "";
            // switch(Console.ReadLine())
            // {
            //     case "0":
            //         team1Name = "North Carolina";
            //         team2Name = "Gonzaga";
            //         break;
            //     case "1":
            //         team1Name = "SMU";
            //         team2Name = "USC";
            //         break;
            //     case "2":
            //         team1Name = "Wisconsin";
            //         team2Name = "Virginia Tech";
            //         break;
            //     case "3":
            //         team1Name = "Creighton";
            //         team2Name = "Rhode Island";
            //         break;
            //     case "4":
            //         team1Name = "Northwestern";
            //         team2Name = "Vanderbilt";
            //         break;
            //     case "5":
            //         team1Name = "Michigan";
            //         team2Name = "Oklahoma St";
            //         break;
            //     case "6":
            //         team1Name = "Minnesota";
            //         team2Name = "MTSU";
            //         break;
            // }

            FinalResult finalResult      = null;
            var         dataLoaderEngine = new DataLoaderEngine();
            var         matchEngine      = new MatchEngine();
            var         finalizerEngine  = new FinalizerEngine(team1Name, team2Name);

            if (dataLoaderEngine.Load(team1Name, team2Name))
            {
                MatchResults engineResult = matchEngine.Process(dataLoaderEngine.Team1, dataLoaderEngine.Team2);
                finalResult = finalizerEngine.ComputeWinner(engineResult);
            }

            if (finalResult == null || finalResult.Winner < 0 || finalResult.Winner > 1)
            {
                Logger.Error("Failed to decided a winner");
            }
            else
            {
                Console.WriteLine("The Winner is: " + (finalResult.Winner == 0 ? finalResult.Team1 : finalResult.Team2));
                //Console.WriteLine("The Winner is: " + (finalResult.Winner == 0 ? finalResult.Team1 : finalResult.Team2) + ". Score: " + finalResult.Team1Score + " - " + finalResult.Team2Score);
            }


            ProcessAnotherMatch();
        }