public void checkLostActions(Playfield p, bool isLethalCheck) { Playfield tmpPf = new Playfield(); foreach (Action a in p.playactions) { tmpPf.doAction(a); } MiniSimulator mainTurnSimulator = new MiniSimulator(6, 3000, 0); mainTurnSimulator.setSecondTurnSimu(settings.simulateEnemysTurn, settings.secondTurnAmount); mainTurnSimulator.setPlayAround(settings.playarround, settings.playaroundprob, settings.playaroundprob2); //tmpPf.checkLostAct = true; float bestval = mainTurnSimulator.doallmoves(tmpPf, isLethalCheck); if (bestval > p.value) { p.playactions.Clear(); p.playactions.AddRange(mainTurnSimulator.bestboard.playactions); p.value = bestval; } }
private Ai() { this.nextMoveGuess = new Playfield { mana = -100 }; this.mainTurnSimulator = new MiniSimulator(maxdeep, maxwide, 0); // 0 for unlimited this.mainTurnSimulator.setPrintingstuff(true); /*this.nextTurnSimulator = new MiniSimulatorNextTurn(); * this.enemyTurnSim = new EnemyTurnSimulator(); * this.enemySecondTurnSim = new EnemyTurnSimulator();*/ for (int i = 0; i < Settings.Instance.numberOfThreads; i++) { this.nextTurnSimulator.Add(new MiniSimulatorNextTurn()); //this.enemyTurnSim.Add(new EnemyTurnSimulator()); //this.enemySecondTurnSim.Add(new EnemyTurnSimulator()); this.nextTurnSimulator[i].thread = i; //this.enemyTurnSim[i].thread = i; //this.enemySecondTurnSim[i].thread = i; } }