CS代写案例 | 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:

Group Progress Update (Group work): Your group will provide regular updates on your progress in this assignment to your tutor during your weekly lab classes. This will require your group to have completed a list of activities. Group Progress Update will not be marked directly, however, this will influence the final grade.

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:

during the rest of the course. It will be extremely helpful for your whole group to be present, but this can’t happen if you have group members outside the lab.

Groups for Assignment 2 must be registered with your tutor by week 8 lab1. Your tutor “register” your group on Canvas. If you are unable to find a group, discuss this with your tutor as soon as possible.

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.