C++代写 | COSC1076 Assignment Implementing Qwirkle


Advanced Programming Techniques

COSC1076 | Semester 1 2021 Assignment 2 | Implementing Qwirkle

1 Introduction

1.1 Overview

In this assignment you will implement a 2-player text-based version of the Board Game Qwirkle.

(a) Qwirle box and pieces (b) Example game state

For an explanation of the rules and gameplay:

However, this assignment will use a modified version of the rules, detailed in Section 2.5. In this assignment you will:

• Practice the programming skills covered throughout this course, such as: – ADTs

– Linked Lists
– Pointers
– Dynamic Memory Management – File Processing
– Program State Management
– Exception Handling

• Practice the use of testing
• Implement a medium size C++ program:

– Use features of C++14

– Use elements of the C++ STL • Work as a team

– Use group collaboration tools
This assignment is divided into four Milestones:

1.2 Group Work

The group work must be completed in groups of 4.

1. You may form groups with any student in the course.
2. We strongly recommend that you form groups from within your labs, because:

If at any point you have problems working with your group, inform your tutor immediately, so that issues may be resolved. This is especially important with the online delivery of the course. We will do our best to help manage group issues, so that everybody receives a fair grade for their contributions. To help with managing your group work we will be requiring your group to use particular tools. These are detailed in Section 5.

There are important requirements about keeping your tutor informed if you have been unwell or other wise unable to contribute to your group. Remember your actions affect everybody in your group.

1.3 Learning Outcomes

This assessment relates to all of the learning outcomes of the course which are:

Analyse and Solve computing problems; Design and Develop suitable algorithmic solutions using software concepts and skills both (a) introduced in this course, and (b) taught in pre-requisite courses; Implement and Code the algorithmic solutions in the C++ programming language.
Discuss and Analyse software design and development strategies; Make and Justify choices in software design and development; Explore underpinning concepts as related to both theoretical and practical applications of software design and development using advanced programming techniques.

Discuss, Analyse, and Use appropriate strategies to develop error-free software including static code anal- ysis, modern debugging skills and practices, and C++ debugging tools.
Implement small to medium software programs of varying complexity; Demonstrate and Adhere to good programming style, and modern standards and practices; Appropriately Use typical features of the C++ language include basic language constructs, abstract data types, encapsulation and polymorphism, dy- namic memory management, dynamic data structures, file management, and managing large projects containing multiple source files; Adhere to the C++14 ISO language features.

Demonstrate and Adhere to the standards and practice of Professionalism and Ethics, such as described in the ACS Core Body of Knowledge (CBOK) for ICT Professionals.

Base Program Game play & Functionality

The base Qwirkle program implements a 2-player text-based version of Qwirkle, using a reduced rule-set. In the base game, the players take turns placing tiles from their hand onto the board. The rule changes for the base Qwirkle game are described in Section 2.5.

This section details the behaviour of the base Qwirkle program. What is presented in this spec is a description of the main functionality of your Qwirkle program. Some parts are left open for you to decide the best course of action.

This spec does not give the rules of Qwirkle. Canvas contains a link to the rules.