Esempio n. 1
0
        static void Main(string[] args)
        {
            const string directory = @"C:\Users\dean.mcgarrigle\Dropbox\public\FootballData";
            const string fixtures  = @"C:\Users\dean.mcgarrigle\Dropbox\public\FootballData\fixturelist.csv";

            Console.WriteLine("Which league do you want to simulate?");
            var division   = Console.ReadLine();
            var context    = new AlgoTestContext();
            var leagueRepo = new LeagueRepository(context);
            var csvHandler = new CsvHandler <LeagueData, LeagueDataMap>();

            homeShots = leagueRepo.LeagueShotStatsHome().Where(x => x.League == division.ToUpper()).ToList();
            awayShots = leagueRepo.LeagueShotStatsAway().Where(x => x.League == division.ToUpper()).ToList();

            var input = Options();

            if (input == "download")
            {
                Console.WriteLine("Please select a season to download (1516 etc): ");
                var season  = Console.ReadLine();
                var leagues = new[] { "E0", "E1", "E2", "E3", "EC" };
                var fileUrl = string.Format("http://www.football-data.co.uk/mmz4281/{0}", season);
                foreach (var league in leagues)
                {
                    var results = csvHandler.DownloadFile(string.Format("{0}/{1}.csv", fileUrl, league)).Result;
                    foreach (var result in results)
                    {
                        leagueRepo.AddFixture(result);
                        Console.WriteLine("Adding Fixture: " + result.HomeTeam + " v " + result.AwayTeam);
                    }
                }

                context.SaveChanges();
                Console.WriteLine("Added fixtures");
                Options();
            }

            if (input == "2")
            {
                string[] teams = File.ReadAllLines(fixtures);
                var      query = from line in teams
                                 let data = line.Split(',')
                                            select new HeadToHead()
                {
                    Home = data[0],
                    Away = data[1],
                };
                foreach (var a in query.Take(130).Reverse().Take(100).Reverse())
                {
                    if (!RunSimulation(a.Home, a.Away))
                    {
                        break;
                    }
                }
                accuracy = Convert.ToDouble(correct) / Convert.ToDouble(total) * 100;
                Console.WriteLine("Simulation was " + accuracy + "% accurate");
                Options();
            }

            if (input == "1")
            {
                Run();
            }

            if (input == "4")
            {
                RunSimulation("Watford", "Man United");
                Options();
            }
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            const string directory = @"C:\Users\dean.mcgarrigle\Dropbox\public\FootballData";
            const string fixtures = @"C:\Users\dean.mcgarrigle\Dropbox\public\FootballData\fixturelist.csv";

            Console.WriteLine("Which league do you want to simulate?");
            var division = Console.ReadLine();
            var context = new AlgoTestContext();
            var leagueRepo = new LeagueRepository(context);
            var csvHandler = new CsvHandler<LeagueData, LeagueDataMap>();

            homeShots = leagueRepo.LeagueShotStatsHome().Where(x => x.League == division.ToUpper()).ToList();
            awayShots = leagueRepo.LeagueShotStatsAway().Where(x => x.League == division.ToUpper()).ToList();

            var input = Options();
            if (input == "download")
            {
                Console.WriteLine("Please select a season to download (1516 etc): ");
                var season = Console.ReadLine();
                var leagues = new[] { "E0", "E1", "E2", "E3", "EC" };
                var fileUrl = string.Format("http://www.football-data.co.uk/mmz4281/{0}", season);
                foreach (var league in leagues)
                {
                    var results = csvHandler.DownloadFile(string.Format("{0}/{1}.csv", fileUrl, league)).Result;
                    foreach (var result in results)
                    {
                        leagueRepo.AddFixture(result);
                        Console.WriteLine("Adding Fixture: " + result.HomeTeam + " v " + result.AwayTeam);
                    }
                }

                context.SaveChanges();
                Console.WriteLine("Added fixtures");
                Options();

            }

            if (input == "2")
            {
                string[] teams = File.ReadAllLines(fixtures);
                var query = from line in teams
                            let data = line.Split(',')
                            select new HeadToHead()
                            {
                                Home = data[0],
                                Away = data[1],
                            };
                foreach (var a in query.Take(130).Reverse().Take(100).Reverse())
                {
                    if (!RunSimulation(a.Home, a.Away)) break;
                }
                accuracy = Convert.ToDouble(correct)/Convert.ToDouble(total)*100;
                Console.WriteLine("Simulation was "+ accuracy + "% accurate");
                Options();

            }

            if (input == "1")
            {
                Run();
            }

            if (input == "4")
            {
                RunSimulation("Watford", "Man United");
                Options();
            }
        }