Commit 67c0547e authored by erreiip's avatar erreiip
Browse files

Add the bot and refacto some methods on PlayBoard

parent 55524ef0
Loading
Loading
Loading
Loading
+12 −1
Changes for jeuAssemblage/src/bot/Move.java: 12 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -4,7 +4,18 @@ import piece.Piece;

public class Move {
    
    protected Piece p;
    protected int pieceId;
    protected int x;
    protected int y;

    public Move(int pieceId, int x, int y) {
        this.pieceId = pieceId;
        this.x = x;
        this.y = y;
    }

    @Override
    public String toString() {
        return "Piece : " + this.pieceId + " x : " + this.x + " y : " + this.y;
    }
}
+49 −0
Changes for jeuAssemblage/src/bot/difficulty/AbstractDifficulty.java: 49 added lines, 0 removed lines.
Original line number Diff line number Diff line
package bot.difficulty;

import bot.Move;
import bot.interfaces.IBot;
import bot.interfaces.IStrategyBot;
import bot.strategy.AIStrategy;
import bot.strategy.AbstractStrategyMemo;
import model.PlayBoard;

public abstract class AbstractDifficulty implements IBot, IStrategyBot {

    public final int AI_STRATEGY = 0;
    public final int MEMO_STRATEGY = 1;

    protected IStrategyBot strategyBot;
    protected PlayBoard model;

    private int AIsize;

    public AbstractDifficulty(PlayBoard model, int strategy, int AIsize) {
        this.model = model;
        this.AIsize = AIsize;

        this.setStrategy(strategy);
    }

    @Override
    public void setStrategy(int strategy) {
        switch (strategy) {
            case AI_STRATEGY -> {
                this.strategyBot = new AIStrategy(this.model, AIsize);
            }
            case MEMO_STRATEGY -> {
                this.strategyBot = new AbstractStrategyMemo(this.model);
            }
            default -> {
                throw new IllegalStateException("Strategy " + strategy + " doesn't exist");
            }
        }
    }


    @Override
    public Move nextMove() {
        return this.strategyBot.nextMove();
    }
    
    
}
+12 −0
Changes for jeuAssemblage/src/bot/difficulty/EasyDifficulty.java: 12 added lines, 0 removed lines.
Original line number Diff line number Diff line
package bot.difficulty;

import bot.strategy.AIStrategy;
import model.PlayBoard;

public class EasyDifficulty extends AbstractDifficulty {

    public EasyDifficulty(PlayBoard model, int strategy) {
        super(model, strategy, AIStrategy.EASY);
    }

}
+11 −0
Changes for jeuAssemblage/src/bot/difficulty/HardDifficulty.java: 11 added lines, 0 removed lines.
Original line number Diff line number Diff line
package bot.difficulty;

import bot.strategy.AIStrategy;
import model.PlayBoard;

public class HardDifficulty extends AbstractDifficulty {
    
    public HardDifficulty(PlayBoard model, int strategy) {
        super(model, strategy, AIStrategy.HARD);
    }
}
+11 −0
Changes for jeuAssemblage/src/bot/difficulty/MediumDifficulty.java: 11 added lines, 0 removed lines.
Original line number Diff line number Diff line
package bot.difficulty;

import bot.strategy.AIStrategy;
import model.PlayBoard;

public class MediumDifficulty extends AbstractDifficulty {

    public MediumDifficulty(PlayBoard model, int strategy) {
        super(model, strategy, AIStrategy.MEDIUM);
    }
}
Loading