Java游戏代写|Programming Project – Assignment 1



Please read this brief carefully and make sure you comply with ALL submission requirements.

This individual assignment is worth 50% of your total Knowledge & Reasoning module marks.

The task is to construct and document a Checkers game (English draughts) in Java or Python,
using the object-oriented programming paradigm. The program should present an interactive game
board that allows pieces to be moved around by the human player and the AI as per the following
basic rules of the game:

Any of the marking criteria below that are not explicitly specified by these rules can be
implemented as you see fit. Your program should produce legal gameplay with reasonable
performance, as well as different levels of difficulty, and employ an AI core that is based on your
implementation of an algorithm that uses Minimax with Alpha-Beta pruning.

You may think about and start working on this assignment as soon as you like but bear in mind
that the lectures on Game-playing, Minimax, and Alpha-Beta pruning will be given in weeks 5 and 6
of the term. Until then, use your time to brush up on object-oriented programming generally and
on how to create user interfaces specifically. Normally, it will make sense to start programming
after the lectures which cover the implementation of Minimax and Alpha-Beta pruning in Java. This
will leave you plenty of time to complete the assignment, which is normally due in week 10.

Game Internals

1. Gameplay (20 marks)

a. Interactive checkers gameplay (Human vs. Computer) of some sort
b. Different levels of verifiably effective AI cleverness, adjustable by the user

2. Search algorithm (20 marks)

a. Appropriate and efficient state representation
b. Reasonable successor function to generate AI moves
c. Minimax evaluation
d. Alpha-Beta pruning
e. Appropriate use of heuristics

3. Validation of moves (16 marks)

a. No invalid moves carried out by the AI
b. Automatic check for valid user moves
c. Rejection of invalid user moves, with a specific explanation given
d. Forced capture – if a player can capture an enemy piece they have to do so. If there
is more than one capturing opportunity in the same turn, the user may choose
which one to take.

4. Other features (20 marks)

a. Multi-leg capturing moves for the user
b. Multi-leg capturing moves for the AI
c. King conversion at baseline (The king’s row) as per the normal rules
d. Regicide – if a normal piece manages to capture a king, it is instantly crowned king
and then the current turn ends.
e. Some kind of help feature that can be enabled at the user’s request to get hints
about available moves, given the current game state. Sophisticated implementations
should employ the AI functionality to make suggestions on optimal moves.