public void TestValidateInputJson()
        {
            var game = new GameBuilder().Build("Problems\\problem_0.json")[0];
            var answer = "ia! ia!lei!llbbbbbbbeiia! ia!lei!llbbbbbbeiia! ia!lei!kklbbbbbbkkyugia! ia!r'lyehbdddeiia! ia!lei!dlbyuia! ia!in hiia! ia!lcthulhubyugia! ia!lcthulhukiia! ia!lbbbyuggia! ia!lbbbblblr'ia! ia!lbyuyuggothdapinyuggothdlbbbdlliia! ia!klbbbllbei!ia! ia!lei!dlir'lyehyuggothppaaklir'lyehyuggothr'lyehleiyuggothyuggotia! ia!lakyuggoia! ia!ldlbbbdinyuggothllbcthulia! ia!kklbbbbbbbklllkiei!r'lyehcthulhublinia! ia!lcthulhubyugia! ia!lkkiia! ia!dlbbbbbldinyuggothdlbbdldr'ia! ia!r'lyehbddr'ei!r'lyehcthulhulbyuggia! ia!r'lyehppddr'r'lyehyuggothr'lyeheiei!r'lyehyuggothliin his hoia! ia!lbbbbblbblliei!r'lyehr'lyehdei!pkapinia! ia!laakei!ia! ia!llblliia! ia!dlbbdlbbblir'lyehyuggothei!ppia!ia! ia!llklbbbbei!ia! ia!r'lyehr'lyia! ia!lddlbbdlyugia! ia!in r'lyehyuggothr'lyehbei!ia! ia!ldinyuggothcthulhubbbdliia! ia!lyuggyuggothyuggothkkkiia! ia!klblblbleiei!r'lyehyuggothdlyugei!r'lyehr'lyehdlbdlbliyuggothcthulhubbbllkiia! ia!r'lyehbblr'ia! ia!linyuggothyuggothpkiia! ia!llei!yuggothyuggothkkiia! ia!lbbbbldinia! ia!dlbbbdlbblkiia! ia!dlbbbdei!yuggothdei!ppkiei!r'lyehcthulhuklbbbdliia! ia!r'lyehbbbbbbldar'lei!r'lyehyuggothei!r'lyr'lyehyuggothr'lyehiia! ia!lei!klbbkei!ia! ia!dlbbbbbbbddliia! ia!lei!llbeiia! ia!r'lyehpdddiia! ia!r'lyehpinia! ia!lei!klbbblbbeiei!r'lyehyuggothcthulhia! ia!r'lyehpinia! ia!lr'lyehyuggia! ia!lei!lbbbei!ia! ia!lakklbbbblkyugei!r'lyehcthulhulblbddliia! ia!lei!lkinia! ia!lei!klbbbbbei!ia! ia!ldlblbyur'lyehyuggothcthulhia! ia!r'lyehbbbblblyugia! ia!r'lyehkkicthulhukei!ppppr'lyia! ia!ldlbbbbbdei!ia! ia!linyuggothcthulhubblbliei!r'lyehyuggothbbbdlinia! ia!r'lyehbldeiia! ia!in hia! ia!ldr'ia! ia!r'lyehbblbdeiia! ia!lbbblr'ia! ia!r'lyehbbbblbblir'lyehin his hoia! ia!lei!kklbbbbbbbkkyugia! ia!r'lyehcthulia! ia!lpr'lyia! ia!r'lyehbbbbdddeiia! ia!lbblbdei";

            var result = new GameHistoryValidator().Validate(game, answer);

            Console.WriteLine(result.IsValid);
            Console.WriteLine(result.Reason);
            Console.WriteLine(result.WrongMoveNumber);
            Assert.IsTrue(result.IsValid);
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            //TODO прибить перед паблишем
            var stopwatch = new Stopwatch();
            stopwatch.Start();

            ParseArguments(args);

            TimeLimiter.Start(TimeSpan.FromSeconds(timeLimit));
            MagicWordsStore.AddWords(powerWords);
            players = timeLimit == 0 && memoryLimit == 0
                ? GetOrderedPlayers().ToArray()
                : (coresCount == 0 ? GetOrderedPlayers().ToArray() : GetOrderedPlayers().Take(coresCount).ToArray());

            var outputs = new List<Output>();
            foreach (var filename in filenames)
            {
                if (TimeLimiter.NeedStop())
                    break;

                var games = new GameBuilder().Build(filename);
                foreach (var game in games)
                {
                    if (TimeLimiter.NeedStop())
                        break;

                    var best = -1;
                    var playerName = string.Empty;
                    var commands = string.Empty;

                    var playGameTasks = players.Select(player => Play(game, player)).ToArray();
                    for (int i = 0; i < playGameTasks.Length; i++)
                    {
                        var playResult = playGameTasks[i].Result;
                        if (playResult.Score > best)
                        {
                            best = playResult.Score;
                            playerName = playResult.PlayerName;
                            commands = playResult.Commands;
                        }
                    }

                    //TODO прибить при паблише
                    Console.WriteLine("Score = {0}", best);
                    if (!new GameHistoryValidator().Validate(game, commands).IsValid)
                    {
                        Console.WriteLine("Not Valid");
                    }

                    outputs.Add(new Output
                    {
                        tag = playerName,
                        seed = game.Seed,
                        problemId = game.ProblemId,
                        solution = commands
                    });
                }
            }

            var result = new OutputWriter().GenWriteString(outputs.ToArray());
            Console.WriteLine(result);

            //TODO прибить перед паблишем
            stopwatch.Stop();
            Console.WriteLine("Done in {0} ms", stopwatch.ElapsedMilliseconds);
        }
Beispiel #3
0
 public Form1()
 {
     InitializeComponent();
     gameBuilder = new GameBuilder();
 }