Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void Play(int d) {
- if(isFirstTurn) {
- if(d > 650)
- Console.WriteLine($"{hero.CurrCp.X} {hero.CurrCp.Y} BOOST");
- else
- Console.WriteLine($"{hero.CurrCp.X} {hero.CurrCp.Y} {speed}");
- isFirstTurn = false;
- return;
- }
- Move bm = null;
- float scoreStrat1 = 0;
- float bs = -100000.0f;
- Pod cPod = hero.GetCopyPod();
- bool checked1 = false;
- for(int i = 0; i < 6; i++) {
- cPod.Play(cPod.CurrCp, speed);
- float dist = cPod.Distance(cPod.CurrCp);
- if(dist <= cPod.CurrCp.Radius) {
- int coef = 0;
- switch(i) {
- case 0:
- coef = 6;
- break;
- case 1:
- coef = 5;
- break;
- case 2:
- coef = 4;
- break;
- case 3:
- coef = 3;
- break;
- case 4:
- coef = 2;
- break;
- case 5:
- coef = 1;
- break;
- default:
- break;
- }
- scoreStrat1 = 10000 * coef;
- checked1 = true;
- break;
- }
- }
- if(!checked1)
- scoreStrat1 = Evaluate(cPod, 6);
- int count = 0;
- while(SW.ElapsedMilliseconds<49) {
- count++;
- Solution sol = new Solution();
- sol.Randomize();
- Pod pga = hero.GetCopyPod();
- float temp = -100000;
- bool checked2 = false;
- for(int i = 0; i < 6; i++) {
- pga.Apply(sol.Moves[i]);
- float dist = pga.Distance(pga.CurrCp);
- if(dist <= pga.CurrCp.Radius) {
- int coef = 0;
- switch(i) {
- case 0:
- coef = 6;
- break;
- case 1:
- coef = 5;
- break;
- case 2:
- coef = 4;
- break;
- case 3:
- coef = 3;
- break;
- case 4:
- coef = 2;
- break;
- case 5:
- coef = 1;
- break;
- default:
- break;
- }
- temp = 10000 * coef;
- checked2 = true;
- break;
- }
- }
- if(!checked2)
- temp = Evaluate(pga, 6);
- if(temp > bs) {
- bs = temp;
- bm = sol.Moves[0];
- }
- }
- Console.Error.WriteLine($"{count}: {scoreStrat1} / {bs} : {d}");
- if(scoreStrat1 > bs)
- Console.WriteLine($"{hero.CurrCp.X} {hero.CurrCp.Y} {speed} strat1");
- else
- hero.Output(bm);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement