Design Diagrams and Applying Standard Software Design Principles

Design Diagrams and Applying Standard Software Design Principles
Assignment Task:



This assessment is individual work and all tasks are to be submitted via Blackboard. While you can discuss the assessment with your tutors and peers, your submissions must be your own original work. The objective of this assessment is to gain practical experience with object-oriented software development through object modelling with design diagrams and applying standard software design principles and patterns. This understanding is to be demonstrated by creating and documenting an object-oriented design and implement it using C# for a larger real-world motivated problem.

Description You are to provide a reusable framework for many two-player board games. To demonstrate that your framework can be easily adapted to different games, your design must accommodate all the following games in the same software:

? Reversi aka Othello. 8×8 board, the winner makes pieces of their colour constitute a majority of the pieces on the board at the end of the game. (Wikipedia)

? Gomoku aka Five in a Row. 15×15 board (you can use a smaller board if that helps the UI), the first player forms an unbroken chain of five pieces horizontally, vertically, or diagonally. (Wikipedia) To demonstrate the feasibility and effectiveness of the design, you must implement one of the above games using C# that corresponds to your design. Requirements Your design should extract as much commonality as possible from the different games so that the framework is extensible and reusable for different games. Your design should cater for different modes of play, including:

? Human vs Human

? Computer vs Human With human players, the system must check the validity of moves as they are entered. With computer players, the system can randomly select a valid move. Games should be able to be saved and restored from any state of play. Moves should be undoable and redoable. A game should be replayable from any position.

This requirement applies to saved games as well (so the history of moves rather than just the current board state needs to be saved). A good design of such software should be extensible to accommodate different user interfaces, for example, a graphical user interface (GUI) or a command-line interface (CLI), i.e. the user can choose which UI to play the game. However, your implementation only needs to provide a CLI user interface (see more comments on this below). You should provide at least a primitive online help system (i.e. accessible within the running game, rather than an offline help document) to assist users with the available commands (also give some examples if they are not obvious to use). Comments on requirements The requirements are what you should aim to achieve in your project. Even if you are not able to implement all features, you should at least cover all requirements in your design. Some requirements may be vague and open to interpretation. As long as you clearly state any assumptions you make in your design report, we will accept reasonable interpretations.

The above IT Assignment has been solved by our  IT Assignment  Experts at TVAssignmentHelp. Our Assignment Writing Experts are efficient to provide a fresh solution to this question. We are serving more than 10000+ Students in Australia, UK & US by helping them to score HD in their academics. Our experts are well trained to follow all marking rubrics & referencing style.

Be it a used or new solution, the quality of the work submitted by our assignment experts remains unhampered. You may continue to expect the same or even better quality with the used and new assignment solution files respectively. There’s one thing to be noticed that you could choose one between the two and acquire considered worthy of the highest distinction.