* merge
authorindvdum
Mon, 20 Jun 2011 03:35:15 +0400
changeset 1379c298049787a
parent 131 95efb0899f2e
parent 136 55efa3c48d4d
child 138 fd3b663230ed
* merge
     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  }