Ejemplo n.º 1
0
 private static void Apply(Slot[] me, Slot[] opponent, Value left, Value right, int resultSlot)
 {
     RessurectZombies(me, opponent);
     try
     {
         if (me[resultSlot].vitality <= 0) throw new GameError("result slot is dead:" + resultSlot);
         if (left.ArgsNeeded <= 0) throw new GameError("incorrect application: " + left + " " + right);
         var applicationsDone = 0;
         var res = new Application(left, right).Reduce(me, opponent, ref applicationsDone, false);
         me[resultSlot].value = res;
     }
     catch (GameError e)
     {
         Log(e.Message);
         me[resultSlot].value = Funcs.I;
     }
 }
Ejemplo n.º 2
0
 public override Value DoReduce(Slot[] me, Slot[] opponent, Value[] args, ref int applicationsDone, bool zombieMode)
 {
     var f = args[0];
     var g = args[1];
     var x = args[2];
     var left = new Application(f, x).Reduce(me, opponent, ref applicationsDone, zombieMode);
     var right = new Application(g, x).Reduce(me, opponent, ref applicationsDone, zombieMode);
     var res = new Application(left, right).Reduce(me, opponent, ref applicationsDone, zombieMode);
     return res;
 }