mirror of
https://github.com/magefree/mage.git
synced 2026-01-26 21:29:17 -08:00
This reverts commit 82708e4273.
Some of these (AI related result in bloated memory usage, needs more investigation).
This commit is contained in:
parent
2f3831599d
commit
015cdf3136
79 changed files with 597 additions and 811 deletions
|
|
@ -31,7 +31,6 @@ public class MomirGame extends GameImpl {
|
|||
|
||||
public MomirGame(final MomirGame game) {
|
||||
super(game);
|
||||
this.numPlayers = game.numPlayers;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ public class ComputerPlayer6 extends ComputerPlayer /*implements Player*/ {
|
|||
|
||||
protected Set<String> actionCache;
|
||||
private static final List<TreeOptimizer> optimizers = new ArrayList<>();
|
||||
protected int lastLoggedTurn;
|
||||
protected int lastLoggedTurn = 0;
|
||||
protected static final String BLANKS = "...............................................";
|
||||
|
||||
static {
|
||||
|
|
@ -80,7 +80,11 @@ public class ComputerPlayer6 extends ComputerPlayer /*implements Player*/ {
|
|||
|
||||
public ComputerPlayer6(String name, RangeOfInfluence range, int skill) {
|
||||
super(name, range);
|
||||
maxDepth = Math.max(skill, 4);
|
||||
if (skill < 4) {
|
||||
maxDepth = 4;
|
||||
} else {
|
||||
maxDepth = skill;
|
||||
}
|
||||
maxThink = skill * 3;
|
||||
maxNodes = Config2.maxNodes;
|
||||
getSuggestedActions();
|
||||
|
|
@ -90,11 +94,7 @@ public class ComputerPlayer6 extends ComputerPlayer /*implements Player*/ {
|
|||
public ComputerPlayer6(final ComputerPlayer6 player) {
|
||||
super(player);
|
||||
this.maxDepth = player.maxDepth;
|
||||
this.maxNodes = player.maxNodes;
|
||||
this.maxThink = player.maxThink;
|
||||
this.lastLoggedTurn = player.lastLoggedTurn;
|
||||
this.currentScore = player.currentScore;
|
||||
this.root = player.root;
|
||||
if (player.combat != null) {
|
||||
this.combat = player.combat.copy();
|
||||
}
|
||||
|
|
@ -102,8 +102,6 @@ public class ComputerPlayer6 extends ComputerPlayer /*implements Player*/ {
|
|||
this.targets.addAll(player.targets);
|
||||
this.choices.addAll(player.choices);
|
||||
this.actionCache = player.actionCache;
|
||||
this.attackersList.addAll(player.attackersList);
|
||||
this.attackersToCheck.addAll(player.attackersToCheck);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -58,7 +58,6 @@ public class SimulatedPlayer2 extends ComputerPlayer {
|
|||
this.suggested = new ArrayList<>(player.suggested);
|
||||
// this.allActions = player.allActions; // dynamic, no need to copy
|
||||
this.originalPlayer = player.originalPlayer.copy();
|
||||
this.forced = player.forced;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ import java.util.Map.Entry;
|
|||
public class ComputerPlayer extends PlayerImpl implements Player {
|
||||
|
||||
private static final Logger log = Logger.getLogger(ComputerPlayer.class);
|
||||
private long lastThinkTime; // msecs for last AI actions calc
|
||||
private long lastThinkTime = 0; // msecs for last AI actions calc
|
||||
|
||||
protected int PASSIVITY_PENALTY = 5; // Penalty value for doing nothing if some actions are available
|
||||
|
||||
|
|
@ -105,9 +105,6 @@ public class ComputerPlayer extends PlayerImpl implements Player {
|
|||
|
||||
public ComputerPlayer(final ComputerPlayer player) {
|
||||
super(player);
|
||||
this.lastThinkTime = player.lastThinkTime;
|
||||
this.PASSIVITY_PENALTY = player.PASSIVITY_PENALTY;
|
||||
this.COMPUTER_DISABLE_TIMEOUT_IN_GAME_SIMULATIONS = player.COMPUTER_DISABLE_TIMEOUT_IN_GAME_SIMULATIONS;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -31,13 +31,10 @@ public class ComputerPlayerMCTS extends ComputerPlayer implements Player {
|
|||
private static final int THINK_MAX_RATIO = 100;
|
||||
private static final double THINK_TIME_MULTIPLIER = 2.0;
|
||||
private static final boolean USE_MULTIPLE_THREADS = true;
|
||||
private static final Logger logger = Logger.getLogger(ComputerPlayerMCTS.class);
|
||||
|
||||
protected transient MCTSNode root;
|
||||
protected String lastPhase = "";
|
||||
protected long totalThinkTime;
|
||||
protected long totalSimulations;
|
||||
protected int maxThinkTime;
|
||||
private static final Logger logger = Logger.getLogger(ComputerPlayerMCTS.class);
|
||||
private int poolSize;
|
||||
|
||||
public ComputerPlayerMCTS(String name, RangeOfInfluence range, int skill) {
|
||||
|
|
@ -53,11 +50,6 @@ public class ComputerPlayerMCTS extends ComputerPlayer implements Player {
|
|||
|
||||
public ComputerPlayerMCTS(final ComputerPlayerMCTS player) {
|
||||
super(player);
|
||||
this.maxThinkTime = player.maxThinkTime;
|
||||
this.poolSize = player.poolSize;
|
||||
this.lastPhase = player.lastPhase;
|
||||
this.totalSimulations = player.totalSimulations;
|
||||
this.totalThinkTime = player.totalThinkTime;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -65,6 +57,8 @@ public class ComputerPlayerMCTS extends ComputerPlayer implements Player {
|
|||
return new ComputerPlayerMCTS(this);
|
||||
}
|
||||
|
||||
protected String lastPhase = "";
|
||||
|
||||
@Override
|
||||
public boolean priority(Game game) {
|
||||
if (game.getStep().getType() == PhaseStep.UPKEEP) {
|
||||
|
|
@ -158,6 +152,9 @@ public class ComputerPlayerMCTS extends ComputerPlayer implements Player {
|
|||
MCTSNode.logHitMiss();
|
||||
}
|
||||
|
||||
protected long totalThinkTime = 0;
|
||||
protected long totalSimulations = 0;
|
||||
|
||||
protected void applyMCTS(final Game game, final NextAction action) {
|
||||
|
||||
int thinkTime = calculateThinkTime(game, action);
|
||||
|
|
|
|||
|
|
@ -30,8 +30,8 @@ import java.util.*;
|
|||
*/
|
||||
public class SimulatedPlayerMCTS extends MCTSPlayer {
|
||||
|
||||
private final boolean isSimulatedPlayer;
|
||||
private int actionCount;
|
||||
private boolean isSimulatedPlayer;
|
||||
private int actionCount = 0;
|
||||
private static final Logger logger = Logger.getLogger(SimulatedPlayerMCTS.class);
|
||||
|
||||
public SimulatedPlayerMCTS(Player originalPlayer, boolean isSimulatedPlayer) {
|
||||
|
|
@ -43,7 +43,6 @@ public class SimulatedPlayerMCTS extends MCTSPlayer {
|
|||
public SimulatedPlayerMCTS(final SimulatedPlayerMCTS player) {
|
||||
super(player);
|
||||
this.isSimulatedPlayer = player.isSimulatedPlayer;
|
||||
this.actionCount = player.actionCount;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -40,8 +40,8 @@ public class ComputerPlayer2 extends ComputerPlayer implements Player {
|
|||
protected int maxDepth;
|
||||
protected int maxNodes;
|
||||
protected int maxThink;
|
||||
protected int nodeCount;
|
||||
protected long thinkTime;
|
||||
protected int nodeCount = 0;
|
||||
protected long thinkTime = 0;
|
||||
protected transient LinkedList<Ability> actions = new LinkedList<>();
|
||||
protected transient List<UUID> targets = new ArrayList<>();
|
||||
protected transient List<String> choices = new ArrayList<>();
|
||||
|
|
@ -59,10 +59,6 @@ public class ComputerPlayer2 extends ComputerPlayer implements Player {
|
|||
public ComputerPlayer2(final ComputerPlayer2 player) {
|
||||
super(player);
|
||||
this.maxDepth = player.maxDepth;
|
||||
this.maxNodes = player.maxNodes;
|
||||
this.maxThink = player.maxThink;
|
||||
this.nodeCount = player.nodeCount;
|
||||
this.thinkTime = player.thinkTime;
|
||||
this.currentScore = player.currentScore;
|
||||
if (player.combat != null) {
|
||||
this.combat = player.combat.copy();
|
||||
|
|
|
|||
|
|
@ -28,9 +28,9 @@ import java.util.concurrent.ConcurrentLinkedQueue;
|
|||
public class SimulatedPlayer extends ComputerPlayer {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(SimulatedPlayer.class);
|
||||
private final boolean isSimulatedPlayer;
|
||||
private boolean isSimulatedPlayer;
|
||||
private transient ConcurrentLinkedQueue<Ability> allActions;
|
||||
private static final PassAbility pass = new PassAbility();
|
||||
private static PassAbility pass = new PassAbility();
|
||||
protected int maxDepth;
|
||||
|
||||
public SimulatedPlayer(Player originalPlayer, boolean isSimulatedPlayer, int maxDepth) {
|
||||
|
|
@ -44,7 +44,6 @@ public class SimulatedPlayer extends ComputerPlayer {
|
|||
public SimulatedPlayer(final SimulatedPlayer player) {
|
||||
super(player);
|
||||
this.isSimulatedPlayer = player.isSimulatedPlayer;
|
||||
this.maxDepth = player.maxDepth;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue