代写COMP2011J、Java程序设计代做
Beijing-Dublin International College
COMP2011J - Object Oriented Programming
Individual Assignment: Defender
Assignment Details
Due date: 6
th of December 2024
Language: Solution must be completed in Java
Game Description
Defender is a classic arcade game where the player flies a spaceship destroying alien invaders over a planet.
Defender is a side-view, horizontally scrolling shooter set on the surface of an unnamed planet. The player
controls a spaceship flying either to the left or right. The player can control the elevation of the ship as well as
fire weapons and make a hyperspace jump.
The object is to destroy all alien invaders, while protecting astronauts on the landscape from abduction.
Landers pick up humans and attempt to carry them to the top of the screen at which point they turn into
fast-moving mutants. A captured human can be freed by shooting the lander, then catching the human before
it falls to its death, and dropping it off on the ground.
Defeating the aliens allows the player to progress to the next level. Failing to protect the astronauts results
in the level being lost (and started again if you have remaining lives). A ship is lost if it is hit by an enemy or
its projectiles, or if a hyperspace jump goes wrong (as they randomly do). After exhausting all ships, the game
ends.
1
Movement
The players ship can move up and down on the screen. When it does the screen does not move. The players
ship can not go any lower than the bottom of the screen or any higher than the top of the screen.
As the player moves left and right the screen should move to show more of the level. The player ship should
be kept in the middle half of the screen. That is when the player is in this area, the screen should not move.
However, if the player is going to move outside of this area, then the view of the level should be changed so the
player remains in the middle half of the screen.
For the players ship moving left and right the important element of movement is momentum. The player’s
ship should continue travelling in the same direction at the same speed unless some acceleration is applied. So
when the players ship begins moving and no more thrust is applied, it will continue in the same direction and
at the same speed forever unless the ship crashes into an alien. The direction that the ship travels is based on
the direction that the ship was facing when the thrust was applied. If no thrust is being applied, then the ship
can face in any direction while it keeps moving in the direction of the original thrust.
Enemies
There are two types of enemies in the game, Landers and Mutants.
Landers will fire at the player’s ship, but their primary goal is to grab on of the humans from the surface
and carry them to the top of the screen. One the lander reaches the top of the screen carrying a human they
will become a mutant. If a lander is destroyed while they are carrying a human, the human is dropped and
must be caught by the player. If the player does not catch the human, they will die when they hit the ground.
If the player catches a human, they can place them back on the ground by dropping down to that level.
Mutants are much faster than landers. Instead of attempting to pick up humans, mutants only purpose is
to kill the player. They will chase after and fire at the player.
Points/Scoring
Points are awarded for destroying the asteroids based on the following calculations:
• Lander destroyed → 150 points each
• Mutant destroyed → 300 points each
• Human captured and mutated → -150 points each
• Human saved → 500 points each
Levels
The number of humans and enemy landers is based on the level. As levels increase there should be more landers
and less humans on the level.
A level is not completed until all of the enemy ships have been destroyed. This may require the player to
search across the landscape to find the remaining enemies.
Example
To get an example of the how the defender game plays, go to the https://www.free80sarcade.com/defender.
php and play the game there. This version of the game has a larger number of enemy types and is quite difficult.
The version I am requiring you to create only requires two types of enemies and can be made easier (by making
the enemies move more slowly).
Assessment
This section gives a breakdown of the approximate marking criteria for the assignment. The final marking
scheme may vary slightly but will be relatively similar. Your submission should contain the following files
• A zip file containing the entire project code and any other files required for the code to be executed
(exported from IntelliJ IDEA or Eclipse)
2
• A report explaining what you have achieved for each of the criteria in the marking scheme (estimate fail,
pass or excellent) based on the template provided
• A short video (less than 3 min) showing a screen recording of the game with your explanation voiced over
it
Each file should be named only with your UCD student number and the correct file extension (e.g. 1234567.zip,
1234567.pdf, and 1234567.mp4).
Zip File
This must contain all of the code required to execute the project. If I am unable to execute your code, it will
reduce your grade. If there are any requirements to setup and execute your code you should include these in
the zip file.
I will be testing the code using IntelliJ IDEA (unless you specifically mention that I should use Eclipse). I
would recommend that you create the project using the Intellij IDEA IDE and export the entire project to a
zip file for submission.
Assignment Report
This document should be in PDF format and contain your name and student number as well as a table explaining
what you estimate of how your project will be graded against the marking criteria in the next section. For each
of the criteria mark an X under Fail, Pass, or Excellent and optionally include some text to explain why you
believe you have merited that level. You may also include details in this report of any additional functionality
that you have added that you believe should be worth extra credit.
Marking Scheme
The marking scheme shown in table 1 is subject to change. This means that it may be changed at any time
without notice if I feel some parts were too easy or too hard and additional criteria may be added. The final
grade from this section will be based on a weighted sum of the individual parts. The weights for each part will
be based on the difficulty and importance. For example, design and cohesion is very important and will likely
be weighted much higher than any other component.
The text explaining each can be used as a guide to the amount of work expected for the different parts of
the assignment.
You should also note that it is required that your project is programmed using one of the two libraries avail able on moodle (https://csmoodle.ucd.ie/moodle/mod/folder/view.php?id=74336 or https://csmoodle.
ucd.ie/moodle/mod/folder/view.php?id=74337). If you do not use one of these libraries, then you will get
0 for your assignment grade.
Additional Criteria
In addition to the above, your submission will also be considered under some more criteria. These however are
only used to reduce your grade if you have performed poorly and will otherwise have no effect.
• Naming of variables, methods, class, interfaces, enumerated types or anything else in your code
• Following naming conventions for the above
• Code formatting and commenting1
• Correct formatting of submitted files (e.g you will lose points for submitting a doc file instead of a pdf,
mkv instead of mp4, or rar instead of zip)
• Incorrect naming of any submitted files
• Not including name and student number in report (or including an incorrect student number)
1
I do not expect a large amount, but at the least there should be an explanation of the use of each class
3
Item Fail Pass Excellent
Design and Cohesion
Package Struc ture
No packages are used Separate packages are used, but the
classes are not well organised (split be tween game model and UI)
Separate packages are used and each
class is placed in a sensible package
(split between game model and UI and
potentially with subpackages)
Logical Struc ture
The structure of the
classes is unnecessar ily complicated
There is a logic to the structure of the
code (use of inheritance, composition
and interfaces) but it is not always well
applied
There is an excellent logic to the struc ture of the code (use of inheritance,
composition and interfaces) and it is al ways well applied
Responsibilities
of Classes
Many classes are
created with too
much responsibilities
within them
Some classes are created with too much
responsibilities within them
All of the classes defined have a reason able level of responsibilities
Cohesion Responsibilities of
many classes are not
related
Responsibilities of some classes are not
related
All of the classes defined have responsi bilities that are related to each other
Methods Methods are poorly
named, do not use
camelCase and are
frequently longer
than 30 lines of code
Some methods have descriptive names,
and are mostly not larger than 30 lines
of code
All methods have descriptive names, are
written in camelCase and are mostly
not larger than 30 lines of code
Other Criteria
Input User input is not com pleted
User input is completed but not all ac tions are implemented
User input is completed and all actions
are implemented
Display No shapes are drawn
on the game screen
Some of the shapes are drawn on the
screen, or they are implemented using
images loaded from files
All required drawable objects are imple mented in code by specifying the coor dinates that individual pieces should be
drawn at
Menu No menu or other op tions are shown, game
moves straight into
gameplay
Main menu is shown before gameplay
starts
Game contains a main menu, hall of
fame display (high scores) and an info
screen showing the controls for the game
Collisions Collisions between
the players ship or
bullets and other ob jects is not completed
Some of the collisions are detect, but
some others are not
All required collisions are detected by
the game
Difficulty/Levels There is no change to
difficulty or multiple
levels are not imple mented
There are some changes in difficulty, but
they are not consistent (too big or small)
There are small but consistent changes
in the difficulty of the game as the levels
increase
Movement of
Player
Movement is not as
specified in the de scription above
Movement is implemented correctly, but
there some problems
Movement is implemented correctly
Movement of
Aliens
Aliens are not imple mented or move in
simple straight lines
Aliens are implemented and move to wards the humans on the ground
Aliens are implemented and move in
correct directions (lander to humans,
lander with human to top, mutant to wards player)
Alien Shooting Aliens are not im plemented or do not
shoot
Aliens are implemented and shoot in
random directions
Aliens are implemented and shoot in the
direction of the player
Appraisal No Appraisal was in cluded
The appraisal was very inaccurate, and
claimed the project was better than the
code showed
The appraisal was very accurate, and
highlighted areas where the project met
or exceeded the project specifications as
well as areas where it did not meet them
(if applicable)
Table 1: Indicative Marking Scheme for Assignment
4

热门主题

课程名

mktg2509 csci 2600 38170 lng302 csse3010 phas3226 77938 arch1162 engn4536/engn6536 acx5903 comp151101 phl245 cse12 comp9312 stat3016/6016 phas0038 comp2140 6qqmb312 xjco3011 rest0005 ematm0051 5qqmn219 lubs5062m eee8155 cege0100 eap033 artd1109 mat246 etc3430 ecmm462 mis102 inft6800 ddes9903 comp6521 comp9517 comp3331/9331 comp4337 comp6008 comp9414 bu.231.790.81 man00150m csb352h math1041 eengm4100 isys1002 08 6057cem mktg3504 mthm036 mtrx1701 mth3241 eeee3086 cmp-7038b cmp-7000a ints4010 econ2151 infs5710 fins5516 fin3309 fins5510 gsoe9340 math2007 math2036 soee5010 mark3088 infs3605 elec9714 comp2271 ma214 comp2211 infs3604 600426 sit254 acct3091 bbt405 msin0116 com107/com113 mark5826 sit120 comp9021 eco2101 eeen40700 cs253 ece3114 ecmm447 chns3000 math377 itd102 comp9444 comp(2041|9044) econ0060 econ7230 mgt001371 ecs-323 cs6250 mgdi60012 mdia2012 comm221001 comm5000 ma1008 engl642 econ241 com333 math367 mis201 nbs-7041x meek16104 econ2003 comm1190 mbas902 comp-1027 dpst1091 comp7315 eppd1033 m06 ee3025 msci231 bb113/bbs1063 fc709 comp3425 comp9417 econ42915 cb9101 math1102e chme0017 fc307 mkt60104 5522usst litr1-uc6201.200 ee1102 cosc2803 math39512 omp9727 int2067/int5051 bsb151 mgt253 fc021 babs2202 mis2002s phya21 18-213 cege0012 mdia1002 math38032 mech5125 07 cisc102 mgx3110 cs240 11175 fin3020s eco3420 ictten622 comp9727 cpt111 de114102d mgm320h5s bafi1019 math21112 efim20036 mn-3503 fins5568 110.807 bcpm000028 info6030 bma0092 bcpm0054 math20212 ce335 cs365 cenv6141 ftec5580 math2010 ec3450 comm1170 ecmt1010 csci-ua.0480-003 econ12-200 ib3960 ectb60h3f cs247—assignment tk3163 ics3u ib3j80 comp20008 comp9334 eppd1063 acct2343 cct109 isys1055/3412 math350-real math2014 eec180 stat141b econ2101 msinm014/msing014/msing014b fit2004 comp643 bu1002 cm2030
联系我们
EMail: 99515681@qq.com
QQ: 99515681
留学生作业帮-留学生的知心伴侣!
工作时间:08:00-21:00
python代写
微信客服:codinghelp
站长地图