Skills Demonstration #3 – 30%:
This assignment is graded out of 100 marks and weighted to be worth 30% of the module. The main learning outcomes are:
Construct larger programs from smaller programs
Properly document program code
Debug and test programs
Deploy programs to the end user via the front-end
and these support a module objective which is to "demonstrate an ability to access purpose-built class libraries /API packages and basic Collection classes (as and if appropriate) and incorporate them into user defined classes". The specific library/package that this assesment makes use of is usually pygame or arcade- python packages used to create 2D games.
This assessment allows the user to design a custom class and implement a range of dunder (magic) methods using various data types to create a new model. The learner will design, code and test an object oriented program. It is envisaged the assessor will design a skills demonstration to test the learner’s competence and ability in learning outcome 1. The learner will be presented with a suitable problem statement with clear guidelines/instructions as to what is to be done and what is being assessed.
Specifically, the skills demonstration should test the learner’s ability to:
devise and document an algorithm based on the problem statement
make correct coding inferences from the problem statement to identify appropriate fields/variables, objects, control/repetition statements, data sequences, etc, as required
utilise an integrated development environment (IDE) to code and test an object oriented program that provides a solution to the problem statement that:
contains a class object that is based on another class (inheritence)
makes use of separate class libraries or packages (pygame in this instance, with other optional modules)
features appropriate data types to simulate and/or model the problem (a game)
using modularised and logical program blocks (classes in files- re-usable and modular)
contains a number of appropriately named methods/functions
correctly implements control structures (loops)
uses repetition statements appropriately (conditional execution)
contains meaningful documentation
The learner will produce:
a working program (soft and hard copy)
appropriate program documentation to include an algorithm, relevant screen captures, digital/visual evidence of the development cycle (including evidence of debugging/testing, etc) and indicative critical reasoning
The assessment is marked out of 100 and weighted to 30%. The marking is generally broken down as follows:
Clearly Documented Source Code (10%)
algorithm (class diagram) provided
code documentation (docstrings)
Program Functionality (10%)
working program: runs without error
appropriate front-end: GUI aesthetics: title, screen ratio, layout, presentation
repr methods implemented for development testing and verification
Accurate Programming (Syntax and Semantics) (66.5%)
source code generated within IDE
correctly accessed packages/library classes (as appropriate)
appropriately named base class(es)
appropriately named identifiers (fields/variables)
appropriately named methods/functions
appropriate use of methods, e.g., correct method calls, return values
working selection statements, e.g., if-else, switch
working control structures, e.g., while, do-while, for loops
correctly implemented data structure(s)
no syntax or semantic errors
Software Testing/Debugging (13.5%)
evidence of software testing, e.g., documentation of problems/bugs
take a TDD approach
screen captures, visual/digital evidence provided
create a video demonstration
This assignment requires coding variants of classic arcade games from a decade later- the 1980s or so. Usually these are based on an actual game but with some twists included.
This is based on a mix of two classics- Arkenoid and Space Invaders.
Arkanoid is a 1986 block breaker arcade game developed and published by Taito. In North America, it was published by Romstar. Controlling a paddle-like craft known as the Vaus, the player is tasked with clearing a formation of colorful blocks by deflecting a ball towards it without letting the ball leave the bottom edge of the playfield. Some blocks contain power-ups that have various effects, such as increasing the length of the Vaus, creating several additional balls, or equipping the Vaus with cannons. Other blocks may be indestructible or require multiple hits to break.
Space Invaders is a 1978 shoot 'em up video game developed and published by Taito for arcades. It was released in Japan in April 1978, with the game being released by Midway Manufacturing overseas. Space Invaders was the first fixed shooter and the first video game with endless gameplay (meaning there was no final level or endscreen) and set the template for the genre. The goal is to defeat wave after wave of descending aliens with a horizontally moving laser cannon to earn as many points as possible.
This game combines both, so a ball can be used in addition to shooting to break blocks, which after some time become activated and begin shooting back, wit their shot frequency increasing as the game progresses.
Asteroids is a multidirectional shooter video game developed and published by Atari for arcades. It was designed by Lyle Rains and Ed Logg. The player controls a single spaceship in an asteroid field which is periodically traversed by flying saucers. The object of the game is to shoot and destroy the asteroids and saucers, while not colliding with either, or being hit by the saucers' counter-fire. The game becomes more difficult as the number of asteroids increases.
This is based on Asteroids but with different movements, and with a time limited set of rounds. The bar at the top is essentially a time. There are two players and in this case one was killed already.
Another version of Asterocks with Alien Motherships