Ask Question, Ask an Expert

+1-415-315-9853

info@mywordsolution.com

Ask Programming Language Expert

Tower Defense Requirements (Subject to change)
The first thing to do is to google for “tower defense” and play the game online for free. You can read up more about this game here: http://en.wikipedia.org/wiki/Tower_defense As always, if the program crashes at any point in the game play, the project grade will be zero. If you do not turn in your project by the deadline, the grade is also zero.

REQUIREMENTS

a) When the program first runs, a welcome window is shown. The welcome window should show texts containing the name of your game and your name. Furthermore, it prints a message telling the user to press the spacebar to begin the game. If the user closes the program, the program halts.

b) You have maximum freedom on designing the game. There are however several elements of the game that must be implemented.

c) When the game begins, in a square area of the game window, you see one path going from left to right. There is a “balloon entrance” on the left end of the line – balloons enter the game from. On the right end of the line, there is a “balloon exit” – balloon exit the game at this point.

1351_Elements of game.jpg


d) The game play area should be a sufficient large square. It should at least be large enough to show >1000 balloons at the same time. This will ensure that you have thought through carefully on how to optimize the performance of your game.

e) There is a counter in the game window that tells you how many balloons have entered the “balloon exit”. (For instance you have have a “status bar” below the game play window for that).

f) The player can place towers in the game play area.

g) Each tower has a range, say a radius 100. (You can have towers of different ranges.) If a balloon is within range, the tower will show with a line from the tower to the balloon.

h) Each tower selects a balloon within range and fires at it. You can choose how the tower selects the balloon to destroy. For instance it can choose a random balloon in range, the closest one in range, the tower can account for the speed of the balloon, etc.

i) When a bullet (or whatever weapon) from the tower collides with the balloon, the balloon and the bullet both disappear.

j) Besides the above path pattern, you can have different ones, including cases where there are multiple entrances and exits.

k) As the game progresses, new paths are forms. The “grow” out of exist paths. For instance here's one that's growing:

727_Elements of game_1.jpg

k) You can either have paths growing randomly or according to some fixed pattern. I leave that to you.

l) When the growing path touches the edge of the game play area, it comes a balloon exit:


2057_Elements of game_2.jpg

m) When the growing path touches a point on the path, it stops growing:

681_Elements of game_3.jpg


n) Balloons can travel on all paths, including new ones or growing ones.
o) You can have as many different type of balloons as you like, as many towers as you like, etc.

The important thing is to allow the game to run with a large number of balloons, a large entrance exit number of towers, a large number of path segments. (For instance you can have a mode where the player does not die.)

The elements that are important are:

i) Your game must allow the creation of any graph. You must use an efficient data structure to represent the paths.

ii) You must use some form of quadtree data structure for collision detection. To show that a quadtree is used, your program must allow the display of the quadtree (say when a button is pressed). In the status bar/window of your game, display relevant statistics of your quadtree such as number of nodes, height of the tree.

iii) Your balloons are smart: they can pick the safest paths (i.e., ones that will avoid towers as much as possible) to arrive at exits. The only really important thing is to use the data structures and algorithms in the above context. Therefore the only really important thing is that I want to see a graph for the paths (or whatever else you want to do such as a scene graph …) or some form of space subdivision tree for collision detection.
You are obviously not allowed to use existing code (from the web or books). You can read up  in general about graphs and trees (of course!) and reading pseudocode is perfectly OK.

iv) Games are soft real-time systems fighting for resources. Read up on priority queues and use it in your game. In your status bar/window, display statistics on the queue including average time usage for different type of objects.

Programming Language, Programming

  • Category:- Programming Language
  • Reference No.:- M9591

Have any Question? 


Related Questions in Programming Language

1 implement dfs by using prolog2 implement bfs by using

1. Implement DFS by using PROLOG. 2. Implement BFS by using PROLOG. 3.  Solve the problem of Question 3 in Assignment 1 by using your PROLOG programs of DFS and BFS, respectively. Question 3 from Assignment 1 to Solve wi ...

Object oriented system analysis and design1non-functional

Object Oriented System Analysis and Design 1. Non-Functional Requirements a) Analysis of NFRs Analyse the Case Study documents and determine the non-functional requirements (NFRs) or system quality attributes necessary t ...

Your problem is as followswrite a program that will ask the

Your problem is as follows: Write a program that will ask the user to enter 4 quiz scores for 3 students.  You will need to fine the lowest quiz grade and drop it out when you calculate the average. You will need to disp ...

Assignmentcase problem1 - online trivia found on pages

Assignment: Case Problem1 - Online Trivia found on pages 794-795 of your textbook. Complete the web pages and upload them to your 000WebHost account. After uploading the files make sure to update your index.html page to ...

Concurrent programming task ydetailsmany banking systems

CONCURRENT PROGRAMMING TASK YDETAILS Many banking systems allow multiple cardholders access a single account (e.g. a business account). The consequence of this is that is possible for more than one person to attempt to w ...

Programming lab assignment set awhat to submitcomplete

Programming Lab Assignment (Set A) What to Submit Complete Problem Solving Steps 1 - 3 (check plan, data analysis, initial algorithm, and refinement algorithm) for the following programs. 1. (Name: lab1a-1.cpp) Write a p ...

Write a program to test for the case of a math equation

Write a program to test for the case of a math equation entered via the keyboard using the SWITCH-CASE operator. Types of equations to test for: x + y  x / y   x * y and x - y. The program is to ask for the following: 1. ...

Programming assignment 1 grocery storethis assignment

Programming Assignment #1: Grocery Store This assignment attempts to serve as a refresher for concepts that I hope you learned in CS 122. In this assignment, you will be building a simple storefront for a small grocery s ...

Add a swift class file to the project that illustrates and

Add a SWIFT class file to the project that illustrates and contains the following: • The class name is 'Calculator' • Has public variables of the type float called numerator, denominator and total. • Has a method called ...

Computerscienceprogram-writeallofthefollowingmainprogramcall

Computer Science Program- Write all of the following: main program: Call a function to open an input file. Call a function to read 3 integers in from the input file. Call a function that will find 3 normalized doubles, g ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

A cola-dispensing machine is set to dispense 9 ounces of

A cola-dispensing machine is set to dispense 9 ounces of cola per cup, with a standard deviation of 1.0 ounce. The manuf

What is marketingbullwhat is marketing think back to your

What is Marketing? • "What is marketing"? Think back to your impressions before you started this class versus how you

Question -your client david smith runs a small it

QUESTION - Your client, David Smith runs a small IT consulting business specialising in computer software and techno

Inspection of a random sample of 22 aircraft showed that 15

Inspection of a random sample of 22 aircraft showed that 15 needed repairs to fix a wiring problem that might compromise

Effective hrmquestionhow can an effective hrm system help

Effective HRM Question How can an effective HRM system help facilitate the achievement of an organization's strate