Write a program that will display a chess board in a window if you have graphical facilities or by using graphics symbols for console output.
Add a representation of the standard chess pieces as either graphic images or with the standard symbolic names.
Write routines that will allow input of moves in either modern algebraic notation or in classical form (KR4 to R4 style). Your program should be able to handle both and translate between them (that is tougher because it needs to handle context dependent information.)
Finally the program should be able to play through a game that has been stored in a file and allow the user to stop to explore alternatives before resuming the main thread.
File handling and data formats are among the programming elements that you will need to master to successfully complete this project.