代写 SWEN30006 Software Modelling and Design

SWEN30006 Software Modelling and Design—Sem 1 2022 © University of Melbourne 2022
Page 1 of 4
SWEN30006 Software Modelling and Design
Project 1: Snakes and Ladders (due: Thu Apr 21st 11:59pm)
- Project Specification -
School of Computing and Information Systems
University of Melbourne
Semester 1, 2022
Background: Snakes and Ladders
The Games division of New Exciting Realtime Discoveries Inc. (NERDI) has recently developed a video game based
on a popular board game. NERDI Games hopes to enhance the game and turn the game into its’ next big hit (also
its’ first big hit). The board game they have focussed on is Snakes and Ladders. They have already developed a
vanilla digital version of the board game; NERDI marketing have called the digital version Snakes and Ladders on a
Plane (or SLOP for short). NERDI need your help to make SLOP more interesting.
Figure 1: SLOP: Snakes and Ladders on a Plane
Definitions
• Turn: The full sequence of actions which starts with a player rolling the dice, then moving their piece and
so on until it is their opponents turn.
• Move: Moving a player’s token from one square to another, as a result of a dice roll, landing on a snake or
ladder, or other rule of the game
• Land: A player lands on a square as a result of a move; rules relating to the square on which the player
then landed must then be followed.
• Path symbol: a snake or ladder which provides a path between two squares on the board.
SWEN30006 Software Modelling and Design—Sem 1 2022 © University of Melbourne 2022
Page 2 of 4
Your Task
The current version of SLOP seems to work reasonably well. However, the design and implementation of SLOP are
not well documented. Your task is to make the following changes.
1. Allow for the game to use a preset number of (six-sided) dice, defaulting to one. The property file already
contains the setting, but it is not currently used. Each dice should be rolled (randomly generated) in turn.
2. Players do not travel down a path symbol if they rolled the lowest possible roll (a 1 if using only one dice,
a 3 for three dice and so on) to land on the symbol square.
3. If a player lands on the same square as their opponent when moving after rolling the dice (only), the
opponent moves one square backwards and must follow the rules of the landing square.
4. The final step of a player’s turn gives the player the opportunity to reverse the current roles of the path
symbols, that is, if snakes were down and ladders were up, they can choose to make snakes up and
ladders down.
a. Snakes start as down paths and ladders start as up paths.
b. An indicator is provided to show which way the path symbols operate (in the current version of
SLOP, always snakes down and ladders up). This indicator must be set correctly.
c. A button is provided to allow this setting to be toggled interactively.
d. For the purpose of automated testing, each auto player will employ a simple strategy to decide
whether to toggle: they will look at their opponent’s position and where they could land as a
result of their next dice roll – if there are at least as many possible landing squares with an
upwards path symbol start as there are landings with a down path symbol start, the player will
make the switch. Note that NERDI games will want to change this strategy in the future – your
design should consider how easy it will be to change this.
5. In order to track game play, the game should keep some basic statistics: for each player, we want to know
how many times that player rolled each possible value of the dice, and how many path symbols they
traversed up and how many path symbols they traversed down. NERDI will want to add additional
statistics in the future.
a. An example of the required format for output of dice roll counts is:
“Player 2 rolled: 2-7, 3-11, 4-0, 5-0, 6-2, 7-3, 8-1, 9-0, 10-1, 11-1, 12-2”
b. An example of the required format of output for path symbol traversals is:
“Player 1 traversed: up-3, down-7”
You need to apply your software engineering and patterns/principles knowledge to refactor and extend the system
to support this new behaviour. It's recommended that you understand the high-level design of current system first
so that you can effectively identify & update relevant parts. A partial, automatically generated class diagram for
SLOP is included at the end of this specification.
In making the required changes, you can also change the existing design (and correspondingly, the
implementation), however you like (and can justify in your report) but you should not change the way the program
is run (main method, command line, and property files) or the existing text output. You do not need to change any
aspects of the system which do not relate to the changed functionality above. You are not expected to make
changes to the graphical elements of SLOP.
Hint: Start with understanding the existing design at a high level, and with creating the domain class diagram.
These will help you get an overview of the various elements involved and their relationships. You will need to
generate and evaluate design options to make good choices and to justify your design for your design report.
SWEN30006 Software Modelling and Design—Sem 1 2022 © University of Melbourne 2022
Page 3 of 4
The Base Package
You have been provided with an Eclipse project export representing the current version of SLOP, including an
example configuration files.
To begin:
1. Import the project zip file as you did for Workshop 1.
2. Try running by right clicking on the project and selecting Run as... Java Application: the entry point is
“snakeladder.game.FrameTutorial.main()”.
3. As well as the SLOP GUI, you should see output in the Eclipse console showing you the current behaviour
of the SLOP game.
This code should needs to be used as the starting point. Please carefully study the sample package and ensure that
you are confident you understand how it is set up and functions before continuing. If you have any questions,
please make use of the discussion board or ask your tutor directly in the workshop as soon as possible; it is
assumed that you will be comfortable with the package provided.
Note: The SLOP property files allow you to specify player dice rolls to make it easier to test specific behaviour.
Take a look at how this is set up and use it to your advantage.
Testing Your Solution
We will be testing your application programmatically, so we need to be able to build and run your program
without using an integrated development environment.
The entry point must remain as “snakeladder.game.FrameTutorial.main()”. You must not change the names of
properties in the provided property file or require the presence of additional properties. If you add properties, they
need to have defaults values as we will not set these in testing your submission.
Note: It is your team’s responsibility to ensure that the team has thoroughly tested their software before
submission.
Configuration and Project Deliverables
(1) Extended SLOP: Source code for SLOP extended according to the instructions above. You should not include
property files or icons; we will provide these for test as per the original SLOP package which is why your extended
SLOP should not depend on modified versions of property files or icons.
(2) Report: In addition to the extended SLOP, NERDI requires you to provide a report to document your design
changes and the justification for your design. Details requirements for the report are available on the LMS
submission page.
Submission
Detailed submission instructions will be posted on the LMS. You must include your team number in all your pdf
submissions, and as a comment in all changed or new source code files provided as part of your submission.
SWEN30006 Software Modelling and Design—Sem 1 2022 © University of Melbourne 2022
Page 4 of 4
Figure 1 Partial Design Class Diagram for SLOP

热门主题

课程名

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
站长地图