1.1 --- a/src/main/java/ru/alphatech/icfpc/game/Run.java Mon Jun 20 03:34:42 2011 +0400
1.2 +++ b/src/main/java/ru/alphatech/icfpc/game/Run.java Mon Jun 20 03:35:15 2011 +0400
1.3 @@ -6,7 +6,6 @@
1.4 package ru.alphatech.icfpc.game;
1.5
1.6 import java.io.BufferedReader;
1.7 -import java.io.File;
1.8 import java.io.IOException;
1.9 import java.io.InputStreamReader;
1.10
1.11 @@ -28,8 +27,7 @@
1.12 import ru.alphatech.icfpc.cards.Zombie;
1.13 import ru.alphatech.icfpc.game.Batch.OperationType;
1.14 import ru.alphatech.icfpc.game.strategy.IStrategy;
1.15 -import ru.alphatech.icfpc.game.strategy.SimplyStrategy;
1.16 -import ru.alphatech.icfpc.game.strategy.YetAnotherStrategy;
1.17 +import ru.alphatech.icfpc.game.strategy.LenarStrategy;
1.18
1.19 public class Run
1.20 {
1.21 @@ -54,7 +52,7 @@
1.22 registers[3] = 3;
1.23 }
1.24
1.25 - private static IStrategy strategy = new YetAnotherStrategy();
1.26 + private static IStrategy strategy = new LenarStrategy();
1.27
1.28 public static Slot getRegisterByIndex(int registerIndex){
1.29 return proponent.getSlot( registers[registerIndex] );
2.1 --- a/src/main/java/ru/alphatech/icfpc/game/strategy/LenarStrategy.java Mon Jun 20 03:34:42 2011 +0400
2.2 +++ b/src/main/java/ru/alphatech/icfpc/game/strategy/LenarStrategy.java Mon Jun 20 03:35:15 2011 +0400
2.3 @@ -3,9 +3,12 @@
2.4 import java.util.ArrayList;
2.5 import java.util.LinkedList;
2.6
2.7 +import ru.alphatech.icfpc.cards.I;
2.8 import ru.alphatech.icfpc.game.Batch;
2.9 import ru.alphatech.icfpc.game.ICFPCException;
2.10 import ru.alphatech.icfpc.game.Player;
2.11 +import ru.alphatech.icfpc.game.Run;
2.12 +import ru.alphatech.icfpc.game.Batch.OperationType;
2.13 import ru.alphatech.icfpc.policy.AttackHelpDelayPolicy;
2.14 import ru.alphatech.icfpc.policy.AttackHelpPolicy;
2.15 import ru.alphatech.icfpc.policy.CallExpressionPolicy;
2.16 @@ -67,18 +70,68 @@
2.17 return rtArr;
2.18 }
2.19
2.20 - LinkedList<Batch> batches = new LinkedList<Batch>(firstVitalityBoost());
2.21 + LinkedList<Batch> batches = new LinkedList<Batch>();
2.22 +
2.23 + ArrayList<Batch> attackBatches(int targetSlot){
2.24 +
2.25 + ArrayList<Batch> rtArr = new ArrayList<Batch>();
2.26 +
2.27 + rtArr.addAll(new AttackHelpPolicy(TYPE.ATTACK, 7, 4, 255-i, 5000).getBatches());
2.28 +
2.29 + rtArr.addAll(new CallExpressionPolicy(6, 8, 0, true).getBatches());
2.30 + rtArr.addAll(new CallExpressionPolicy(6, 8, 0, true).getBatches());
2.31 + rtArr.addAll(new CallExpressionPolicy(6, 8, 0, true).getBatches());
2.32 + rtArr.addAll(new CallExpressionPolicy(6, 8, 0, true).getBatches());
2.33 +
2.34 + rtArr.addAll(new AttackHelpPolicy(TYPE.ATTACK, 7, 4, 255 - i, 5000)
2.35 + .getBatches());
2.36 +
2.37 + rtArr.addAll(new CallExpressionPolicy(6, 8, 0, true).getBatches());
2.38 + rtArr.addAll(new CallExpressionPolicy(6, 8, 0, true).getBatches());
2.39 + rtArr.addAll(new CallExpressionPolicy(6, 8, 0, true).getBatches());
2.40 + rtArr.addAll(new CallExpressionPolicy(6, 8, 0, true).getBatches());
2.41 +
2.42 + rtArr.addAll(new AttackHelpPolicy(TYPE.ATTACK, 7, 4, 255 - i, 5000)
2.43 + .getBatches());
2.44 +
2.45 + rtArr.addAll(new CallExpressionPolicy(6, 8, 0, true).getBatches());
2.46 + rtArr.addAll(new CallExpressionPolicy(6, 8, 0, true).getBatches());
2.47 + rtArr.addAll(new CallExpressionPolicy(6, 8, 0, true).getBatches());
2.48 + rtArr.addAll(new CallExpressionPolicy(6, 8, 0, true).getBatches());
2.49 +
2.50 + rtArr.addAll(new AttackHelpPolicy(TYPE.ATTACK, 7, 4, 255 - i, 5000)
2.51 + .getBatches());
2.52 +
2.53 + rtArr.addAll(new CallExpressionPolicy(6, 8, 0, true).getBatches());
2.54 + rtArr.addAll(new CallExpressionPolicy(6, 8, 0, true).getBatches());
2.55 + rtArr.addAll(new CallExpressionPolicy(6, 8, 0, true).getBatches());
2.56 + rtArr.addAll(new CallExpressionPolicy(6, 8, 0, true).getBatches());
2.57 +
2.58 +
2.59 +
2.60 + return rtArr;
2.61 + }
2.62
2.63 public LenarStrategy() {
2.64 + batches.addAll(firstVitalityBoost());
2.65 + batches.addAll(attackBatches(0));
2.66 + }
2.67
2.68 - }
2.69 + int i=0;
2.70
2.71 @Override
2.72 public Batch move(Player proponent, Player opponent) {
2.73 Batch batch = batches.poll();
2.74 if(batch != null)
2.75 return batch;
2.76 - throw new ICFPCException();
2.77 + else{
2.78 + if( i > 255)
2.79 + return new Batch(OperationType.CARD_TO_SLOT, new I(), proponent.getSlot(0));
2.80 +
2.81 + batches.addAll( attackBatches(i) );
2.82 + ++i;
2.83 + return batches.poll();
2.84 + }
2.85 }
2.86
2.87 }