Intelligent game-playing opponent

Isaac Powell


Supervised by Andrew Jones; Moderated by Sylwia Polberg

This project involves implementing an intelligent opponent for some game of skill such as Chess, but the game chosen would preferably be an unusual one. You may use whichever programming language you prefer (Java or Python would be suitable choices, or you might wish to use something like Prolog, which would lend itself very well to a task such as this). You may like to implement generic software components that can be used in more than one game.

You will be expected to pay particular attention to studying existing algorithms for game playing and making an informed choice regarding which is most suitable for your chosen game. Ideally you would include experimentation where different algorithms and/or the same algorithm with different parameters were "played" against each other in some methodical manner in order to "learn" optimal parameter settings.

If doing a BSc-with-specialism degree, we will need to choose an approach which can help you to apply the specific skills you have learned by pursuing that specialism.

Initial Plan (06/02/2023) [Zip Archive]

Final Report (12/05/2023) [Zip Archive]

Publication Form