- Home
- Resources
- Work samples
- Samples
- Digital project: Python game - ABOVE
Digital Technologies
Years 9 and 10
Above satisfactory
Digital project: Python game
Summary of task
Students were provided with a game that had been developed by previous students at the school using Python. They were required to correct any errors and to modify the game by creating additional features and functionality, for example new character races, new difficulty levels or game modes. Students deconstructed components of the game where needed to improve their understanding of the programming.
Achievement standard
By the end of Year 10, students explain the control and management of networked digital systems and the security implications of the interaction between hardware, software and users. They explain simple data compression, and why content data are separated from presentation. Students plan and manage digital projects using an iterative approach. They define and decompose complex problems in terms of functional and non-functional requirements.
Students design and evaluate user experiences and algorithms. They design and implement modular programs, including an object-oriented program, using algorithms and data structures involving modular functions that reflect the relationships of real-world data and data entities. They take account of privacy and security requirements when selecting and validating data. Students test and predict results and implement digital solutions. They evaluate information systems and their solutions in terms of risk, sustainability and potential for innovation and enterprise. They share and collaborate online, establishing protocols for the use, transmission and maintenance of data and projects.
Demonstrates understanding of the functional requirements by adding new properties that can be applied to all characters, such as a stun being added to the base class constructor 2 Annotation 2
Modifies an object-oriented program by implementing correctly the stance modifiers required inside the setStance function
-
Annotations
-
1
Annotation 1
Demonstrates understanding of the functional requirements by adding new properties that can be applied to all characters, such as a stun being added to the base class constructor -
2
Annotation 2
Modifies an object-oriented program by implementing correctly the stance modifiers required inside the setStance function
Enhances the user experience by applying modifier spells during the attack phase and updates to ensure the state of player is correctly applied 2 Annotation 2
Modifies an object-oriented program by implementing block chance (10%) correctly and identifying that a block should absorb the attack damage entirely 3 Annotation 3
Modifies an object-oriented program by updating successfully the defendAttack function to reflect abilities of the Vayne race
-
Annotations
-
1
Annotation 1
Enhances the user experience by applying modifier spells during the attack phase and updates to ensure the state of player is correctly applied -
2
Annotation 2
Modifies an object-oriented program by implementing block chance (10%) correctly and identifying that a block should absorb the attack damage entirely -
3
Annotation 3
Modifies an object-oriented program by updating successfully the defendAttack function to reflect abilities of the Vayne race
Demonstrates understanding of the functional requirements by adding attacks specific to Udyr race 2 Annotation 2
Demonstrates deep understanding of the program by using a nested approach rather than using multiple conditions in a single IF statement
-
Annotations
-
1
Annotation 1
Demonstrates understanding of the functional requirements by adding attacks specific to Udyr race -
2
Annotation 2
Demonstrates deep understanding of the program by using a nested approach rather than using multiple conditions in a single IF statement
Implements a new spell specific to the Udyr race and a range of different modifiers/actions 2 Annotation 2
Simplifies user interface but maintains complete functionality of the game by including race-specific menus for user interaction using nested IF statements for casting of spells
-
Annotations
-
1
Annotation 1
Implements a new spell specific to the Udyr race and a range of different modifiers/actions -
2
Annotation 2
Simplifies user interface but maintains complete functionality of the game by including race-specific menus for user interaction using nested IF statements for casting of spells
Implements a new algorithm (Tumble spell) that has a mechanic that differs from spells provided and is tracked correctly throughout the code
-
Annotations
-
1
Annotation 1
Implements a new algorithm (Tumble spell) that has a mechanic that differs from spells provided and is tracked correctly throughout the code
Combines different actions from provided code to create a new action (Condemn spell performs standard attack and triggers a stun modifier)
-
Annotations
-
1
Annotation 1
Combines different actions from provided code to create a new action (Condemn spell performs standard attack and triggers a stun modifier)
Demonstrates deep understanding of programming principles (spell performs attacks on multiple enemies rather than just one target by using a loop and iterating over the list of enemies, then applying the algorithm for attacking) 2 Annotation 2
Uses conditional statements to alter the result (Infuse spell performs different actions depending on whether or not it is cast on the player or enemies)
-
Annotations
-
1
Annotation 1
Demonstrates deep understanding of programming principles (spell performs attacks on multiple enemies rather than just one target by using a loop and iterating over the list of enemies, then applying the algorithm for attacking) -
2
Annotation 2
Uses conditional statements to alter the result (Infuse spell performs different actions depending on whether or not it is cast on the player or enemies)
Enhances user experience by including randomness to add uncertainty to the game (correct use of 4 or 5 out of 1–5 options for 40% is reflected in the comments)
-
Annotations
-
1
Annotation 1
Enhances user experience by including randomness to add uncertainty to the game (correct use of 4 or 5 out of 1–5 options for 40% is reflected in the comments)
Implements a unique algorithm (duel mechanic locks two characters into an ‘automated’ battle, and is tracked within the individual objects)
-
Annotations
-
1
Annotation 1
Implements a unique algorithm (duel mechanic locks two characters into an ‘automated’ battle, and is tracked within the individual objects)
Designs aspects of the user experience by providing a visual representation of the player's status including extra information specific to Udyr when applicable
-
Annotations
-
1
Annotation 1
Designs aspects of the user experience by providing a visual representation of the player's status including extra information specific to Udyr when applicable
Demonstrates good documentation practice by listing the additions/intended improvements made in the game
-
Annotations
-
1
Annotation 1
Demonstrates good documentation practice by listing the additions/intended improvements made in the game
Documents updates made to the output and menu options to better reflect the new theme of the game developed by the student
-
Annotations
-
1
Annotation 1
Documents updates made to the output and menu options to better reflect the new theme of the game developed by the student
Demonstrates creativity through an alternative approach to some game mechanics
-
Annotations
-
1
Annotation 1
Demonstrates creativity through an alternative approach to some game mechanics
Implements player instantiation correctly based on the user input 2 Annotation 2
Enhances the user experience by applying modifiers to the player for the whole turn before actions are taken
-
Annotations
-
1
Annotation 1
Implements player instantiation correctly based on the user input -
2
Annotation 2
Enhances the user experience by applying modifiers to the player for the whole turn before actions are taken
Designs an appropriate user experience by creating a menu that is context-sensitive when the game is active by using object properties to determine the game state
-
Annotations
-
1
Annotation 1
Designs an appropriate user experience by creating a menu that is context-sensitive when the game is active by using object properties to determine the game state
Demonstrates understanding of conditional statements (character-specific actions for non-mana character, Udyr, are presented via the use of a conditional IF statement with options for other players presented as the ELSE case), and uses the correct sequence for condition checking (strictest case first)
-
Annotations
-
1
Annotation 1
Demonstrates understanding of conditional statements (character-specific actions for non-mana character, Udyr, are presented via the use of a conditional IF statement with options for other players presented as the ELSE case), and uses the correct sequence for condition checking (strictest case first)
Uses IF statements to present different options to the player based on race, rather than only using a unique number option for each action
-
Annotations
-
1
Annotation 1
Uses IF statements to present different options to the player based on race, rather than only using a unique number option for each action
Enhances the user experience by implementing complex algorithms (where a player has taken control of an enemy, the enemy's turn is interrupted and the user input is captured to alter the enemy's action)
-
Annotations
-
1
Annotation 1
Enhances the user experience by implementing complex algorithms (where a player has taken control of an enemy, the enemy's turn is interrupted and the user input is captured to alter the enemy's action)
Defines artificial intelligence (AI) for each enemy player with more potent ability preferences over weaker ones
-
Annotations
-
1
Annotation 1
Defines artificial intelligence (AI) for each enemy player with more potent ability preferences over weaker ones
Modifies an object-oriented program to update the game welcome screen to reflect the theme of the game including correctly processing user input and presenting appropriate output
-
Annotations
-
1
Annotation 1
Modifies an object-oriented program to update the game welcome screen to reflect the theme of the game including correctly processing user input and presenting appropriate output
Demonstrates that the program is functioning as designed (enemy actions occur as defined in the artificial intelligence (AI) code)
-
Annotations
-
1
Annotation 1
Demonstrates that the program is functioning as designed (enemy actions occur as defined in the artificial intelligence (AI) code)
Provides a visual representation to indicate the player's status has updated based on previous actions
-
Annotations
-
1
Annotation 1
Provides a visual representation to indicate the player's status has updated based on previous actions
Designs an engaging user experience by creating abilities that target all enemies with the chance of failure (Audacious Sweep hits Vayne but not Malphite or Soraka) and providing feedback to the user about their success 2 Annotation 2
Provides feedback to the user to maintain engagement (Vayne's actions are ignored due to the success of the player's previous attack)
-
Annotations
-
1
Annotation 1
Designs an engaging user experience by creating abilities that target all enemies with the chance of failure (Audacious Sweep hits Vayne but not Malphite or Soraka) and providing feedback to the user about their success -
2
Annotation 2
Provides feedback to the user to maintain engagement (Vayne's actions are ignored due to the success of the player's previous attack)
Modifies an object-oriented program by designing reliable game functionality (the player gets two turns due to the use of Battle Cry, which matches the feedback given to the user)
-
Annotations
-
1
Annotation 1
Modifies an object-oriented program by designing reliable game functionality (the player gets two turns due to the use of Battle Cry, which matches the feedback given to the user)
Designs a suitable conclusion to the game (when player dies, result of the game is displayed and the game is ended successfully using the ‘n’ option for input)
-
Annotations
-
1
Annotation 1
Designs a suitable conclusion to the game (when player dies, result of the game is displayed and the game is ended successfully using the ‘n’ option for input)