Advanced AI Research and Application Plan
Experimentation data and results
Internal Agents:
Meta agent that can plug different agents together
Simple rules-based reflex agent
Opening move agent
Search-based by depth agent
Simple AI agent code location:
src\main\java\ithaca\teamfour\player…
How a human can act as an agent:
Make sure to have a human player in the main where the ChessGame line is, it should look like this, but you can replace the MetaAgent with whatever secondary agent you want to play against
ChessGame game = new ChessGame(new Board(), new HumanPlayer(), new MetaAgent(player1));
Then run the ChessMain and enter coordinates of a move you want to do on your turn
The sensor and actuator interfaces are located in the codebase:
src\main\java\ithaca\teamfour\player\ChessGame.java
Write a class that implements our ChessPlayer Interface.
To add a piece to the meta agent, write it so that it can try and generate a move in the users own way and if it cannot it returns null so then it would be passed on to another part of the meta agent
Wirte a class that implements ChessPlayer and need to write a chooseMove function that returns a valid move for their side of the board.
Need to import it in the ChessMain.java file. If using the meta agent may also need to update the arraylist that initializes meta agent
Manual testing and running against other agents linked here
SearchBasedAdvancedAgent: the evaluation function of the agent didn't seem to improve the agent's gameplay so it was left out
Credit for chess environment:
https://github.com/bhlangonijr/chesslib