ANL251: Developing a Turn-Based Battle Game Using Python, Object-Oriented Programming and Gui: Python Programming Assignment, SUSS, Singapore

University Singapore University of Social Science (SUSS)
Subject ANL251: Python Programming

Project: Developing a Turn-Based Battle Game using Python, Object-Oriented Programming and Gui

Assignment Requirement

Your team has been assigned to develop a console or GUI turn-based battle game. The game allows players to set up his/her team which is made up of a number of units (default is 3). Each unit has a name, health point (HP), attack point (ATK), defence point (DEF), experience (EXP) and a rank. On top of that, a unit can be either a Warrior or Tanker which having different strengths in different ranges for ATK and DEF points. The initial value for each attribute point is described in the details required in Part A – Table 1.

Hire a Professional Essay & Assignment Writer for completing your Academic Assessments

Native Singapore Writers Team

  • 100% Plagiarism-Free Essay
  • Highest Satisfaction Rate
  • Free Revision
  • On-Time Delivery

The game will then set up another team that belongs to AI which is made up of the same number of units as the player’s team. The type of unit will be assigned randomly by chance. The name of each unit will be specified by the player while the name of each unit for the AI team will be defined with a prefix with “AI” followed by 2 random digits i.e. AI87.

A player can select a unit from his/her team and attack the other unit (the target) in the opponent / AI team. Units which is severely damaged (i.e. HP equals less than 0) will be defeated and removed from the team. The team (player / AI) which destroy all the opponent units first will be declared as the winner of the game.

  • Program

At a minimum, the program must contain the following core features:

Features Description
Game Setup This feature allows players to set up a team of 3 units and select which profession (Warrior / Tanker) each unit will be. This feature allows players to assign names for each of the units. The initial point for each attribute within a unit is assigned with the following rules:

Attribute Warrior Tanker
Health Point 100 100
Attack Point The range between 5 – 20 The range between 1 – 10
Defence Point The range between 1 – 10 The range between 5 – 15
Experience Point (EXP) 0 0
Rank/Level > or 1 > or 1
Features Description
Player Attack This features allows player to select a unit from his/her team to attack and then select another unit from the opponent team as the target.

The program will then initiate an attack based on the selected unit and the target. The attack resulting the health (HP) of opponent being deducted/no effect and both selected unit and targeted unit will gain experience (EXP).

The following are sample calculation / game rules when an attack take place:

• Damage = attacker.ATK – target.DEF + (random between negative 5 to 10)

•   target.HP deducted based on the calculated damage point.

•  attacker.EXP increase based on the calculated damage point.

• Target.EXP increase based of its DEF point.

• Extra EXP i.e. 20% – 50% gained by the targeted unit when the following incident happens:

o Damage point more than 10 (gain extra 20% EXP) o Damage point equal or less than 0 (gain extra 50% EXP)

A unit will be promoted (level up) when the EXP point reached 100.

Rank will be updated upon promotion.        EXP will be deducted by 100 point.

A unit will be removed from the team when the HP become 0 or less.

AI / Opponent Attack Once the player completed an attack, the AI team will then take its turn to initiate an attack. Same rules applied on the damage and experience point calculation above.

You as the game developer will need to define your own logical/creative algorithm for the AI team to make the unit and target selection.

User

Interactivity

The program allows the player (user) to interact via console/python shell by asking a question(s), getting input from the keyboard, and provide options for actions. Note: Higher marks can be obtained if a GUI application is developed (See enhanced features below)
Game Message The program should display necessary messages i.e. status of all units at the point of request, battle information, etc
Event Log The program should record all game event, timestamp and its details and save in a plain text file on the local machine.
Documentation Appropriate in-code commenting

Enhanced features, concepts and packages applied

Features Description
Game Setup & Game Play On top of the core features for battle mode specified above, the program can be enhanced by the following features

•Each team can collect/earn coins based on the damage point applied to the opponent units.

•Each team can recruit/hire a new unit with the collected coins to strengthen the team.

• Allowing the user to save the state of the game and resume later when the program is loaded.

•Any other interesting gameplay/battle rules can be applied.

OOP Concept Appropriate use of Object-Oriented Programming paradigm covering the abstraction and encapsulation concept, object collaboration as well as separation of concerns.
User

Interactivity

They3  enhance user experience, the program shall provide a decent Graphical User Interface for interaction. (Recommended packages are Tkinter, pygame, turtle, PyQt, Kivy)

Technical Specification and Guidelines:

You are expected to apply the concepts learned in this module when developing this game. You may use List to store the collection of units. Even better if you use the Object-Oriented Programming concept to manage the units and team in the game. You may use other python libraries/packages for the development and must be included in your individual portfolio.

  1. Design, develop and test the component assigned
  2. Integrate the components and test the program as a whole.
  3. Submit the program with all source code files, and resources

Buy Custom Answer of This Assessment & Raise Your Grades

Get Help By Expert

Singapore Students mostly have a pertinent question, “Who can write my assignment for me on ANL251: Python Programming Assignment? yes, we can! at Singapore Assignment Help we have a group of efficient experts who offer high-quality solutions on  Python Programming Assignment.

Answer

Looking for Plagiarism free Answers for your college/ university Assignments.

Ask Your Homework Today!

We have over 1000 academic writers ready and waiting to help you achieve academic success