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 would be a suitable choice). 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 -- modifying the algorithm if necessary. 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.