dke-group-23 / DKE-Project

0 stars 2 forks source link

Main Objectives #14

Closed Isinlor closed 5 years ago

Isinlor commented 5 years ago

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.

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:

Isinlor commented 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:

  1. None of us have experience with whatever GUI library we will need to use
  2. You don't have too much experience with Object Oriented Programming (OOP)
  3. The main difficulty here is actually building the user interface. User interfaces are quite interconnected. E.g. you need to have a vertex to click on vertex to select a color. So, person doing graph displaying would be blocking person doing color selection.

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.

Isinlor commented 5 years ago

Project timekeeping: https://docs.google.com/spreadsheets/d/1np752UbjdXQngAB3N8CpQkXrkS8FtnJw7NpbkqnJLCI/edit#gid=0