COMT AY2223 April Sem ProjectSpecifications V2.3

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

SCHOOL OF INFORMATICS & IT

AY2023/2024 April

AY 2023/24 April
Computational thinking
Project Specification

Introduction

This assignment aims to create a turn-based combat game in two parts, using Python as the
programming language and classes as the main structure for the program. In Part 1a, we
will develop the game logic for the combat system without any graphical user interface
(GUI). Part 1b will involve implementing a GUI using the Tkinter library to enhance the
user experience and make the game more interactive.

Notes:
a) This is an individual project.

b) You are free to be as creative as you can but ensure that you can complete the game
application within the specified timeframe. However, as a MINIMUM requirement,
your application MUST apply the knowledge you have learned in the studio sessions
(see marking criteria in the sections below on how you will be graded).

c) No additional marks will be given to functions/features that are hardcoded.

You are not allowed to use complete templates or AI generated work available on the
internet. Substantial marks will be deducted if you are discovered doing so.

Example of hard coding


• Using value directly instead of creating a variable
e.g.
parameters = [“username1”,”password”]; //hard-coding as we are using literal strings
parameters = [ username, password]; // not hard-coding as we are using variables

Project Part 1a: Combat System Game Logic (25%)

1. Game Design
The turn-based combat game will feature at least two characters, a player-controlled
character (PC) and enemies character. The characters will take turns attacking each
other, and the game will continue until either the player's or all the enemies’ health
points (HP) reach zero.

2. Player Character
There should be at least 2 different type of player character to be selected. You can
1
SCHOOL OF INFORMATICS & IT
AY2023/2024 April

let the player chose which character to use.


Each player character will have at least the following attributes:
- Health Points (HP)
- Attack Points (AP)
- Defense Points (DP)
- Speed Points (SP)
- Magic Points (MP)
- Image
- Job Class
o Each Job Class will have at least 2 unique magic skills (Each skill should
do different effect; you cannot have 2 skills that just does damage even
they does different damages).
o Magic skill use magic points (Student can decide what magic each job
class have)

3. Enemies character
There should be at least 2 different type of enemies
Each Enemies will have at least the following attributes, note that enemies will not
have magic points as they cannot use magic:
- Health Points (HP)
- Attack Points (AP)
- Defense Points (DP)
- Speed Points (SP)
- Image
- Enemy Type

4. Turn Order
The turn order will be determined by the character's Speed Points (SP). The character
with the highest SP will act first. In the case of a tie, the player-controlled character
will go first.

5. Combat Mechanics
During a character's turn, they can choose to perform one of the following actions:
- Attack: The character attacks the opponent, inflicting damage based on their AP
and the opponent's DP
- Defend: The character raises their DP, reducing the damage taken from the next
attack. It will last 1 turn, until the next time the character can action.
- Skill, for example
o Heal: The character restores a portion of their HP.

6. Win/Lose Conditions
The game will end when either the player's or the enemy's HP reaches zero. The
player wins if the enemy's HP reaches zero, and the player loses if their HP reaches

2
SCHOOL OF INFORMATICS & IT
AY2023/2024 April

zero.

7. Coding Convention
Student should take note of the following coding conventions to follow:
- Naming convention for the function names, variable name, class name, class
members, class functions and constants as taught in the lessons
- Indentation of the code should use 4 space per indentation level. Do not mix
spaces and tabs.
- Use blank lines sparingly to separate functions, classes, and blocks of code within
functions.
- Comments should be written for codes that are complex or hard to understand.
o Comments should be clear and easy to understand.
o Use inline comments sparingly.
o Comments for each block of code should be indented to the same level as
that code.

Performance Levels
Context A B C D E
Character Class Design At least four At least At least At least one Character
implemen and creating characters three two character implementati
tation correct implementatio characters characters implementati ons are not
(5%) instances of n done with implement implement on done with done or non-
class required ation done ation done required submission
attributes, with with attributes,
necessary required required necessary
functions and attributes, attributes, functions and
running necessary necessary running
correctly in the functions functions correctly in
game. and and the game
running running
correctly in correctly
the game. in the
game.

Combat Creating Turn order for Turn order Turn order Turn order Combat
System main game player and for player for player for player system not
Flow flow enemy runs and enemy and enemy and enemy implemented
(10%) without error. runs runs runs without or not
Winning and without without error. running the
losing error. error. Winning and basic flow.
conditions has Winning Winning losing
work correctly and losing and losing conditions
in all cases. The conditions conditions has errors.
game can has work work The game has
restart in all correctly in correctly some errors
cases. all cases. in all with
At least 2 The game instants. restarting.
enemies are can restart The game At least 1
appearing in in all cases. has some enemy and 1
the game. 2nd At least 1 errors with player
player enemy and restarting. character is
character could 1 player At least At appearing in

3
SCHOOL OF INFORMATICS & IT
AY2023/2024 April

appear character is least 1 the combat.


together or be appearing enemy and
selected at the in the 1 player
start to combat. character
appeared in the is
game. appearing
in the
combat.
Skill Skill features At least four At least At least At least one Skill
Impleme correctness skills three skills two skills skill implementati
ntation and implementatio implement implement implementati ons are not
(5%) completeness ns done and ations done ations on done and done or non-
functioning and done and functioning submission
correctly in the functioning functionin correctly in
game. correctly in g correctly the game.
the game. in the
game and
running
correctly
in the
game.

Coding Coding All the coding At least At least At least one The coding
Conventi Convention convention three of the two of the of the coding convention
on (5%) Code guidelines coding coding conventions are not
Readiness are thoroughly convention convention guidelines followed.
followed. guidelines guidelines are
are are thoroughly
thoroughly thoroughl followed.
followed. y
followed.

Submission
You should zip up the entire project folder and submit into LMS under the Assessment folder
on Week 13, 16th Jul 2023, at 2359 pm. You should name your zipped file according to the
following format:

StudentID-YourName-Project-Submission.zip

e.g.: 1234567D-Teo_Chu_Chu-Project-Submission.zip

Please ensure that you have a backup copy of your submission.

Note: Do not compress in RAR format.

Project Part 1b: GUI Implementation with Tkinter (25%)


The GUI should consist of at least 3 screens.

Main screen
The first page every player will see. Depending on your part 1 implementation, player can

4
SCHOOL OF INFORMATICS & IT
AY2023/2024 April

- Chooses the character to use (if available)


- Start game
- Game setting screen
- End Game

Game Setting Screen


The screen that contains the settings of the game. The settings should at least include the
following GUI components:
- Audio on/off (radio button)
- Language selection (Dropdown list)
- Difficulties level (slider)
These options need not have actual function, it just required the UI to work.

Combat Game Screen (Game play screen)


The screen where the main game play will happen. The screen Gui components are divided
into the following sections:

1. Character Display
Display the characters using images, along with their respective HP, AP, DP, and SP
values. This will allow the player to see the current state of their character and the
enemy.

2. Action Buttons
Implement action buttons for Attack, Defend, and Heal using Tkinter's Button class.
When the player clicks one of these buttons, the corresponding action will be
performed, and the game state will be updated accordingly.

3. Turn Order and Game State


The turn order will be displayed on the screen, indicating which character's turn it
is. Additionally, the game state (e.g., win/lose conditions) will be displayed as well.

4. Message Log
A message log will be included to display combat events, such as damage dealt,
damage taken, and healing actions. This will help the player understand the
consequences of their actions during the game.

5. Navigation Buttons
Implement navigation button for Main menu and restart game. When the player
clicks one of these buttons, the corresponding action will be performed.

5
SCHOOL OF INFORMATICS & IT
AY2023/2024 April

Code Design (10%)


Programs should be broken down logically into classes and function. How the classes and
functions are designed should consider of the following criteria
- Function should be concise - write function with clear purpose in mind, avoid doing
too many tasks in 1 function or a function that does half a task.
- Minimize duplicate codes – Any code that can be reused should be well structure in
the classes and function such that it can be properly reused
- Proper access and secure – Code data and functions access should be considered.
- Variable and values – Avoid declaring variables that are not utilized in your program.
Also, it is essential to avoid using "magic numbers," which are hard-coded values in
the code without any clear explanation of their significance. Instead, assign these
values to variables with descriptive names to make the code more readable and
maintainable.

Performance Levels
Context A B C D E
Creation of Basic At least 3 At least 3 At least 2 At least 1 No screen is
screens Window GUI screens in screens in screens in screen in created
(2%) correctness accordance accordance accordance accordance
with the with the with the with the
project project project project
requirements requiremen requiremen requirements
are created ts are ts are is created and
and runs in created and created and runs in the
the game. runs in the runs in the game.
. The 3 game. game.
screens are
linked
according to
the
requirement.

Non- Non-combat The non- The non- The non- The non- The non-
combat GUI combat combat combat combat combat screens
screen UI component screens screens screens screens have no UI
(e.g., Main correctness include all include include at include component
screen, and Gui most Gui least half of partial of the created.
Game completeness components component Gui Gui
setting) in accordance s in component component in
(2%) with the accordance s in accordance
project with the accordance with the
requirements project with the project
and run requiremen project requirements
properly in ts and can requiremen and run
game. run ts and run properly in
properly in properly in game.
game. game.
Combat Combat GUI The combat The combat The combat The combat The combat
screen UI components screen screen screen screen screen has no
(2%) correctness includes all includes at incorporate incorporates UI component
and sections of least four s at least at least one in it.
completeness Gui sections of two section of
component in Gui sections of GUI

6
SCHOOL OF INFORMATICS & IT
AY2023/2024 April

accordance component GUI component in


with the in component accordance
screen accordance in with the
requirements with the accordance screen
and run screen with the requirements
properly in requiremen screen and run
game. ts and run requiremen properly in
properly in ts and run game.
game. properly in
game.
Game Screen All the All screens At least two At least one All the screens
Screen Layout screens’ layout screens screens layout is
layout (4 %) tidiness and layouts are properly layout layout messy,
flexibility. properly arranged properly properly unaligned, or
arranged and and arranged arranged and poor in
alighted and alighted and alighted and spacing.
run properly and run alighted run properly
in game. The properly in and run in game.
screen Gui game. properly in
components game.
will auto
alight itself
when the
screen
expanded
Integration Integration of Part 1a Part 1a Part 1a Part 1a The game
of game game features features are features are features are features are features are not
features with GUI integrated integrated integrated integrated integrated into
(5%) into all into at least into at least into at least the GUI or
sections of four two one section of have errors
the combat sections of sections of the combat running the
screen GUI the combat the combat screen GUI features.
components. screen GUI screen GUI components.
component component
s. s.

Performance Levels
Context A B C D E
Code Code Part 1a and Part Part 1a and At least Breakdown of No submission
Design structure 1b features Part 1b Part 1a code into or submit code
(10%) concise, complete. features features functions and does not work.
secure, Breakdown of complete. complete. classes. No break
and code into Breakdown Breakdown Minority of down of code
reusable functions and of code into of code into the functions into functions
classes. functions functions and classes and classes.
All the and classes. and classes. followed the No break
functions and Most of the At least half code design down of code
classes functions of the criteria listed. into functions
followed the and classes functions and classes.
code design followed and classes Codes are
criteria listed. the code followed clustered
design the code together with
criteria design no
listed. criteria organization.

7
SCHOOL OF INFORMATICS & IT
AY2023/2024 April

listed.

Submission
You should zip up the entire project folder and submit into LMS under the Assessment folder
on Week 17, 13th Aug 2023, at 2359 pm. You should name your zipped file according to the
following format:

StudentID-YourName-Project-Submission.zip

e.g.: 1234567D-Teo_Chu_Chu-Project-Submission.zip

Please ensure that you have a backup copy of your submission.

Note: Do not compress in RAR format.

Project Presentation and Demonstration (25%)

The final part of the project consists of a presentation with a demonstration of the final
application.

Presentation

You are to do a 10-minute presentation and demonstration of your final application. There
will be code interview where you must be prepared to show, explain your codes, and make
changes to your code.

PowerPoint Presentation Slides


You are required to submit a PowerPoint presentation slides that includes but is not limited
to the following information: -

Project Details
• Name and matriculation number
• Class
• Game Name
• Game Features: Describe the features your game has with screen shots.

Reflection
• What are your thoughts on your solution? What is the part you are proud of and what
are its limitation? Any improvements or suggestions of new features you can think of.

You are required to submit your PowerPoint presentation slides into LMS under the
8
SCHOOL OF INFORMATICS & IT
AY2023/2024 April

Assessment folder on Week 17, 13th Aug 2023, at 2359 pm. You should name your file
according to the following format:

StudentID-YourName-COMT-AY2223 April-Presentation.pptx

e.g.: 1234567D-Teo_Chu_Chu-WEBAD-AY2223 April-Presentation.pptx

The presentation itself is on week 18 during your lesson time arranged by your Tutor. Note
that the PowerPoint slides is used as a presentation aid, and it will not be graded. Marks will
not be given for presentation if student missed the presentation but submitted the
presentation slides.
The grading criteria for Project Demonstration will be based on the following:

Performance Levels
Context A B C D E
Presentation Clarity Demonstration Demonstrat The Poor Presentatio
(10%) Reflection showed all the ion done in demonstrati demonstratio n not done
quality on features of the an orderly on was n of the or unable
solution prototype in an manner. organized prototype, to demo
orderly The but brief, unorganized the
manner, explanation certain and does not application
including all was clear features seem to know .
the possible on most was not the features
workflow of the features. explained of the
prototype. The clearly. prototype.
explanation Structured
was clear and and Partial or Unorganized
showed good organized minimal reflection
understanding reflection reflection done for the
of the prototype done for was done overall
and its the overall for the solution,
limitations. solution, overall reflection was
Well-structured sensible solution; superficial, or
and organized reflection. reflection no reflection
reflection is Showing was was done.
done for the understand superficial. Unable to
overall ing of the Able to suggest pro
solution, pro and suggest and cons or
sensible cons of the basic improvement
reflection. Able solutions. improveme for the
to see that Able to nts for the solution.
student has suggest solution.
reflected upon multiple
the assignment relevant
and can improveme
elaborate on it. nts for the
Clear solution.
understanding
of the pro and
cons of the
solutions. Able
to suggest

9
SCHOOL OF INFORMATICS & IT
AY2023/2024 April

multiple
relevant
improvements
and workable
solution for
some of these
improvements.
Code Syntax Able to code Able to Able to Able to code Unable to
interview coding out all of the code out code small small portion come up
(coding) (5%) correctness codes changes the most of portion of of the codes any code
without any the codes the codes changes. The for the
compile errors. changes changes code has changes to
without and compiled be make.
any without errors.
compile any
errors. compile
errors.
Code Algorithm Give complete Give Give at Give at least Unable to
interview design workable complete least an an overview come up
(Design of quality, solution to all workable overview solution for with any
Solution) Logic the questions. solution to solution for one question. solution
(10%) thinking The design of all the majority of Solution
the solution is questions. the given have
reasonable. The Minor questions. major
solution takes issues with Solution loopholes or
into accounts of design given have design flaws
all scenarios provided some that will
and work with which loopholes make the
them. might cause which solution
the game to might cause failed in
have minor the game to normal game
issues have error flow.
which does during
not cause some game
disruption scenarios.
to any
game
scenarios.

Penalty for Late Submission

late and < 1 day : 10% deduction from absolute mark given for the assignment
late >= 1 and < 2 days : 20% deduction from absolute mark
late >= 2 days : No marks awarded

Note that “day” includes non-working days (Sat, Sun and public holidays).
General MC/LOA is NOT considered as valid reason for extended assignment submission.

10

You might also like