FIT9131 Semester 2 2019 Assignment 2
 FIT9131 Semester 2 2019 Assignment 2
With Arraylists
Introduction
This document specifies the programming component of Assignment 2. This component is due by
11pm Saturday of Week 12 (26
th October, 2019). Heavy penalties will apply for late submission.
This is an individual assessment task and must be your own work. You must attribute the source of
any part of your code which you have not written yourself. Please note the section on plagiarism in
this document.
The assignment must be done using the BlueJ environment.
The Java source code for this assignment must be implemented according to the Java Coding
Standards for this unit.
Any points needing clarification may be discussed with your tutor in the lab classes.
Completion of this assignment contributes towards the following FIT9131 learning outcomes:
1. design, construct, test and document small computer programs using Java;
2. interpret and demonstrate software engineering principles of maintainability, readability, and
modularisation;
3. explain and apply the concepts of the "object-oriented" style of programming.
Specification
In this assignment you will write a program to play the game of 256 With Arraylists. The objective of
the game is for the player to keep adding three randomly provided multiples of a number, to attempt
to get the total score of 256 or higher. The game is a modified version which allows the player to use
up to two arraylists as buffers which can be used to store the numbers and retrieve the numbers. This
section specifies the required functionality of the program. Only a text interface is required for this
program; however, more marks will be gained for a game that is easy to follow with clear
information and error messages to the player.
256FIT9131 Semester 2 2019 Assignment 2
256 With Arraylists (D Level Assignment – Max Mark 79)
The game begins with the program reading the allowed multiples from a file called “multiples.txt”.
(This file is available on moodle). The file will only contain ONE set of mutliples. These are the three
numbers which will be randomly provided to the user during the game. For e.g. 2, 4, and 8. The game
will operate using one arraylist as a buffer instead of a grid. The maximum number of elements which
can be stored in the arraylist is 5. Below is a depiction on the game layout (for illustration only):
The game sequence is as follows:
1. The game starts by registering a player to play the game.
2. The game then provides a random multiple to the player which is stored in the game total
from the available multiples..
3. The Arraylist buffer (b1) is empty.
4. The player can then perform the following actions:
o Split:
 This allows the player to move the number from the game total (t) and add it to
the arraylist buffer (b1).
 A new random multiple is then generated and put in the game total (t)
 The game then continues from point 4 above.
o Merge:
 This allows the player to merge the number in the game total box with a
matching number in the arraylist at any position. The total is then put in the
game total box and the number which is added is then removed from the
arraylist.
 After the total is added, the game total (t) now shows the new number. No new
random number is generated and the game goes back to point 4 above to
allow the player to continue.
5. The game ends when either of the following occur:
o The game total (t) reaches the total of 256 or higher.
o The arraylist buffer (b1) has reached the maximum limit of 5 numbers and no more
numbers can be stored and none of the existing numbers can be merged to the game
total (t).
At the end of the game, the program will write the final outcome to the file “outcome.txt” which will
show the player name and the highest score achieved.
(b1)FIT9131 Semester 2 2019 Assignment 2
256 With Arraylists (HD Level Assignment – Max Mark 100)
Note: You may complete parts of the HD level to score more marks on the D level assignment.
The game begins with the program reading the allowed multiples from a file called “multiples.txt”.
(This file is available on moodle). The file will only contain MANY sets of mutliples. The user can
choose which multiple they would like to use when playing the game. These are the three numbers
which will be randomly provided to the user during the game. The game will operate using TWO
arraylist as buffers instead of a grid. The maximum number of elements which can be stored in the
first arraylist is 5. The maximum number of elements which can be stored in the second arraylist is 3.
The game also allows the user to set the game total up to which the game will be played. Below is a
depiction on the game layout (for illustration only):
The game sequence is as follows:
1. The game starts by registering a player to play the game.
2. The player is prompted to enter the game total upto which the game will be played. The game
total must be greater than 32 and a multiple of 8.
3. The player is then prompted to select from the possible list of multiple with which to play the
game. (These have been read from the file).
4. The game then provides a random multiple to the player which is stored in the game total.
5. Both the Arraylist buffers (b1 and b2) are empty.
6. The player can then perform the following actions:
o Split Right ()
 This allows the player to add the game total (t) number to the right arraylist
buffer (b2)
 A new random multiple is then generated and put in the game total (t)
 The game then continues from point 4 above.
o Merge Right ()
 This allows the player to merge the number in the game total box with a
matching number in any position in the right arraylist buffer. The total is
then put in the game total box and the number is removed from the arraylist.
 After the total is added, the game total (t) now shows the new number. No new
random number is generated and the game goes back to point 4 above to
allow the player to continue.
o Split Left ()
 This allows the player to add the game total (t) number to the left arraylist 
Buffer (b2)FIT9131 Semester 2 2019 Assignment 2
Page 4 of 8
 A new random multiple is then generated and put in the game total (t)
 The game then continues from point 4 above.
o Merge Left ()
 This allows the player to merge the number in the game total box with a
matching number in any position in the left arraylist buffer. The total is then
put in the game total box and the number is removed from the arraylist.
 After the total is added, the game total (t) now shows the new number. No new
random number is generated and the game goes back to point 4 above to
allow the player to continue.
7. The game ends when either of the following occur:
o The game total (t) reaches the total of 256 or higher.
o The arraylist buffers (b1 and b2) have reached the maximum limit of 5 numbers and
no more numbers can be stored and none of the existing numbers can be merged to
the game total (t).
At the end of the game, the program will write the final outcome to the file “outcome.txt” which will
show the player name and the highest score achieved.
The following are some of the requirements for the game:
 Player name must be between 3 and 10 characters, cannot be blank and cannot contain only
spaces.
 The arraylist buffers will not allow more elements to be stored beyond the assigned size limit.
Hints and Suggestions
Your assignment may want to use pass by reference to achieve a well-designed program.
Additionally, should your program wish to accept only String inputs from the user, you may want to
look up the Integer.parseInt() method which belongs to the Integer class. This can be used along
with exception handling to ensure your program doesn’t crash.
Requirements
You MUST show your tutor the D level version of the assignment prior to submitting the HD Level.
To do so, you may make a copy of your D level assignment which can be shown to your tutor during
your scheduled tutorial.FIT9131 Semester 2 2019 Assignment 2
Gameplay Example (HD Level Only)
The following shows a single game play using the multiples 2, 4, and 8. And the winning game total
is going to be 16.
Step 1 – Game begins and generates a random
number in the game total (t). The user selects
Split Left. The game will then moves the current
game total (t) and adds it to the arraylist buffer
(b1). A new random number is then generated
and stored in the game total (t)
Step 2 – The user selects Split Left again. The
game then moves the current game total (t) and
adds it to the arraylist buffer (b1). A new random
number is then generated and stored in the game
total (t)
Step 3 – User selects Split Right. The game then
moves the current game total (t) and adds it to the
arraylist buffer (b1). b1 now has 2 elements
stored in there. A new random number is then
generated and stored in the game total (t)
Step 4 – User selects Merge Left. The game then
searches the arraylist buffer (b1) for a value
which matches that in the game total (t). If found,
both numbers are added, and the matching
element in the arraylist is deleted.
Step 5 - User selects Merge Left again. The game
then searches the arraylist buffer (b1) for a value
which matches that in the game total (t). If found,
both numbers are added, and the matching
element in the arraylist is deleted.
Step 6 – Player has reached the desired total of 16
(for this illustration example only). So the game
ends. The system displays that the player wins.FIT9131 Semester 2 2019 Assignment 2
Program design
Your program must consist of at least the following classes: Game, Buffer, Multiple, and RNG. A
more scalable design with additional support classes which can be reused will get more marks. The
following is the proposed class diagram for the program.The remainder of this section gives details of
these classes. There are suggested fields for each class. If you include any extra fields then you must
be able to justify these. You may want to include comments in your program to state any assumptions
made.
Game:
The main class of the program. It will allow the user to start the game. It generally handles all the
inputs and outputs to the user unless another utility class has been included to do this. It has the
following attributes – PlayerName which store the players name which must be between 3 and 10
characters long and cannot be blank or all spaces; and gameTotal which indicates the game total upto
which the game will be played. The HD level of the assignment has one additional attributes,
multipleList - which stores the possible multiples with which the game can be played read from the
file. (If you have difficulty applying this concept, discuss alternative approaches with your tutor).
Buffer:
This class describes a single arraylist buffer for the game. The attribute includes an arraylist which
stores objects of the multiple class, and an integer which stores the maximum number of elements
which can be stored in the arraylist buffer.
Multiples:
This class stores an integer value for a given multiple which is used in the game.
RNG:
An object of the RNG class will generate a random number from a minimum value to a maximum
value. It will have two fields, maximumValue – maximum value of the random number, and
minimumValue – minimum value of the random numberFIT9131 Semester 2 2019 Assignment 2 
Test Strategy
Using the template discussed in Week 7’s lecture, your assignment must also provide a detailed test
strategy for the Buffer class only.
Assessment
Programming Task Assessment (20%)
Assessment for this component will be done via an interview with your tutor.
The marks for your program code will be allocated as follows:
• 10% - Test Strategy for the Buffer class only.
• 35% - Object-oriented design quality. This will be assessed on appropriate implementation of
classes, fields, constructors, methods and validation of the object’s state and adherence to
Java coding standards
• 55% - Program functionality in accordance to the requirements.
You must submit your work by the submission deadline on the due date (a late penalty of 20% per
day, inclusive of weekends, of the possible marks will apply - up to a maximum of 100%). There will
be no extensions - so start working on it early.
Marks will be deducted for untidy/incomplete submissions, and non-conformances to the FIT9131
Java Coding Standards.
Please note that your program code will be submitted to a code similarity checker.
Interview
You will be asked to demonstrate your program at an “interview” following the submission date. At
the interview, you will be asked to explain your code/design, modify your code, and discuss your
design decisions and alternatives. Marks will not be awarded for any section of
code/design/functionality that you cannot explain satisfactorily (the marker may also delete excessive
in-code comments before you are asked to explain that code). In other words, you will be assessed on
your understanding of the code, and not on the actual code itself.
Interview times will be arranged in the tutorial labs in Week 12. The interviews will take place in
week 14. It is your responsibility to attend the lab and arrange an interview time with your tutor. Any
student who does not attend an interview will receive a mark of 0 for the assignment.
Submission Requirements
The assignment must be uploaded to Moodle by 11pm Saturday of Week 12 (26
th October, 2019).
The submission requirements for Assignment 2 are as follows:
A .zip file uploaded to Moodle containing the following components:
 the BlueJ project you created to implement your assignment.
 a completed Assignment Cover Sheet. This will be available for download from the unit’s
Moodle site before the submission deadline. You simply complete the editable sections of the
document, save it, and include it in your .zip file for submission.FIT9131 Semester 2 2019 Assignment 2
The .zip file should be named with your Student ID Number. For example, if your id is 12345678,
then the file should be named 12345678_A2.zip. Do not name your zip file with any other name.
It is your responsibility to check that your ZIP file contains all the correct files, and is not corrupted,
before you submit it. If you tutor cannot open your zip file, or if it does not contain the correct files,
you will not be assessed.
Marks will be deducted for any of these requirements that are not complied with.
Warning: there will be no extensions to the due date. Any late submission will incur the 20% per
day penalty. It is strongly suggested that you submit the assignment well before the deadline, in case
there are some unexpected complications on the day (e.g. interruptions to your home internet
connection).
Extensions
All requests for extensions must be sent to Mark Creado (mark.creado@monash.edu). Requests must
follow the faculty guidelines, include the required forms and be submitted as soon as possible. In
addition, when emailing for an extension, please remember to include all code completed until that
time. This assignment cannot be completed in a few days and requires students to apply what we learn
each week as we move closer to the submission date.
Plagiarism
Cheating and plagiarism are viewed as serious offences. In cases where cheating has been confirmed,
students have been severely penalised, with penalties ranging from losing all marks for an assignment,
to facing disciplinary action at the Faculty level. Monash has several policies in relation to these
offences and it is your responsibility to acquaint yourself with these.
Plagiarism (http://www.policy.monash.edu/policy-bank/academic/education/conduct/plagiarism
policy.html) 

热门主题

课程名

int2067/int5051 bsb151 babs2202 mis2002s phya21 18-213 cege0012 mgt253 fc021 mdia1002 math39512 math38032 mech5125 cisc102 07 mgx3110 cs240 11175 fin3020s eco3420 ictten622 comp9727 cpt111 de114102d mgm320h5s bafi1019 efim20036 mn-3503 comp9414 math21112 fins5568 comp4337 bcpm000028 info6030 inft6800 bcpm0054 comp(2041|9044) 110.807 bma0092 cs365 math20212 ce335 math2010 ec3450 comm1170 cenv6141 ftec5580 ecmt1010 csci-ua.0480-003 econ12-200 ectb60h3f cs247—assignment ib3960 tk3163 ics3u ib3j80 comp20008 comp9334 eppd1063 acct2343 cct109 isys1055/3412 econ7230 msinm014/msing014/msing014b math2014 math350-real eec180 stat141b econ2101 fit2004 comp643 bu1002 cm2030 mn7182sr ectb60h3s ib2d30 ohss7000 fit3175 econ20120/econ30320 acct7104 compsci 369 math226 127.241 info1110 37007 math137a mgt4701 comm1180 fc300 ectb60h3 llp120 bio99 econ7030 csse2310/csse7231 comm1190 125.330 110.309 csc3100 bu1007 comp 636 qbus3600 compx222 stat437 kit317 hw1 ag942 fit3139 115.213 ipa61006 econ214 envm7512 6010acc fit4005 fins5542 slsp5360m 119729 cs148 hld-4267-r comp4002/gam cava1001 or4023 cosc2758/cosc2938 cse140 fu010055 csci410 finc3017 comp9417 fsc60504 24309 bsys702 mgec61 cive9831m pubh5010 5bus1037 info90004 p6769 bsan3209 plana4310 caes1000 econ0060 ap/adms4540 ast101h5f plan6392 625.609.81 csmai21 fnce6012 misy262 ifb106tc csci910 502it comp603/ense600 4035 csca08 8iar101 bsd131 msci242l csci 4261 elec51020 blaw1002 ec3044 acct40115 csi2108–cryptographic 158225 7014mhr econ60822 ecn302 philo225-24a acst2001 fit9132 comp1117b ad654 comp3221 st332 cs170 econ0033 engr228-digital law-10027u fit5057 ve311 sle210 n1608 msim3101 badp2003 mth002 6012acc 072243a 3809ict amath 483 ifn556 cven4051 2024 comp9024 158.739-2024 comp 3023 ecs122a com63004 bms5021 comp1028 genc3004 phil2617
联系我们
EMail: 99515681@qq.com
QQ: 99515681
留学生作业帮-留学生的知心伴侣!
工作时间:08:00-21:00
python代写
微信客服:codinghelp
站长地图