Closed Isinlor closed 5 years ago
The big question for me is how to organize the work so that we don't block each other.
Three are multiple issues:
In my opinion we should start with prototyping, so that everyone can get hang of GUI and OOP. Everyone could try to pick one part of GUI and try to build something that works independently from everyone else. We could later on stitch it together or rewrite based on gained experience, whatever will be easier.
In my opinion there is couple of GUI parts that are easy and amendable to independent work:
Then there is the issue of creating backbone of the application i.e. we need to have a graph class that keep track of the graph. This class will have no knowledge of GUI, but will be used by other parts of the game.
It needs to provide easy to use interface for:
Getting all above done IMO will give use smooth path to finishing the project.
From the Red Book: In Block 1.2 we want you to build a computer application with a user-friendly interface to play a simple game based on computation of chromatic number. This phase links to skills you will learn in (in particular) Introduction to Computer Science 2 (ICS2).
The core of the game is as follows. There is a common core to ensure comparability between project groups. Beyond the core you are free to customize and extend the game as you see fit.
It is a game for one, human player.
The computer generates a random graph which is shown on the screen. (The user should be able to specify some basic characteristics of the graph beforehand e.g. number of vertices, number of edges etc.) Alternatively, the user should be able to read in a graph from a file.
The player is challenged to colour the graph with as few colours as possible. He/she does this by (for example) clicking on vertices and indicating which colour they should have. The computer should warn the user if their current colouring is not valid i.e. if there exist two adjacent vertices that have the same colour.
There are three different game modes possible. All three should be implemented.
In each game mode there must be a ‘hint’ button which, when pressed, gives the user some computer-assisted help. For example, the computer might propose which vertex should be coloured next, or indicate a subset of colours that should be considered (or avoided) for a given vertex. More sophisticated hint functions will contribute to a higher grade.
Also, there is a document from Introduction to Computer Science: Project Requirements 2018
I have made a list of tasks that need to be done in order to finish this project:
Other related tasks from Project Requirements 2018:
Additionally, we need to prepare: