The project is an assignment that has to be completed in groups of 3 persons maximum (the persons have
to be in the same lab group). This project will test your ability to use Python in a more concrete and complex
setting than what you were used to during the lab sessions. Also, it will improve your ability to work as a
team when having a project to complete. The goal of the project is to program the game PENTAGO in
Python, with a simple user interface and game display, and where a human can play against either a human or
a computer player.
Very Important!!! Please follow the instructions below. Projects that will not strictly follow these
instructions will risk getting big grade penalty.
The Python script to execute the program must be in your project repertory and named exactly pentago.py
(no uppercase letter). For submission of your project on NTU Learn, please create a zip archive from your
project repertory, name the archive according to your matric number (i.e. .zip),
and upload it on NTU Learn. If two or three people are in your group, simply separate the matric numbers
with an underscore character.
The submission system automatically closes exactly at the deadline. Hence, after that, if you didn’t
submit, you will get 0 point for your project. You can update your submission as many times as you
want on NTU Learn, only the last submission will be taken into account. Thus, I advise you to submit
an earlier version much before the deadline, to be sure you won’t end up with no submission at all.
Only one person of your group submits the project on NTU Learn. Do not submit the same project for
all your group members.
Make sure your project works properly (i.e. the program doesn’t output errors). If errors are output
during the test of a functionality of your project, this functionality will be considered as not working at
Do not copy any code (or part of) from other groups or from implementations available online. Special
software will be run to check for such cheating cases. If you are caught copying code, you will risk serious
consequences (see course guidelines). Also, do not let other groups copy your code, as both groups with
similar code will get 0 mark for the project. Note that every year several groups get 0 mark (or worse:
academic misconduct) because of plagiarism.
Your Python script must implement the functions check victory, apply move, check move, computer move,
display board and menu (see below). Make sure you don’t miswrite the functions names, or make an
error in the input/output that are expected for these functions. The grading will be mostly be based on
You can find on NTU Learn a file test.py to pre-test your functions (simply copy the file in your
repertory and run it). It should output OK for all tests. You can also find on NTU Learn a skeleton of
the pentago.py file.
You should not have any Python code that does not belong to a function (i.e. all your Python code must
be inside a function), except the Numpy module import, and except the call to the menu function, which
will start your program. When submitting (or when testing with test.py file), please remove the call to
the menu function (or put it as comment), so that it is not executed when your file is imported.