联系方式

您当前位置:首页 >> C/C++编程C/C++编程

日期:2023-06-05 09:01

ISCG6421 – GUI Programming

Page 1 of 13

ISCG6421 - GUI Programming

Semester 1, 2023

Assignment 2: Breakout

Deadline Time: 12:30pm

Checkpoint 1: Thursday 04th May 2023

Checkpoint 2: Thursday 18th May 2023

Deadline Date: Thursday 1

st June 2023

Course Weighting: 20%

Marks: 100

School of Computing Electrical

and Applied Technology

ASSIGNMENT AIMS

The assignment is intended to help you gain experience with designing and building C# Windows

applications and testing them with requirements-based testing.

Problem statement

Breakout is and arcade game developed in 1970. In Breakout a layer of bricks lines are at the top of

the form and the goal is to destroy them by bouncing ball off a paddle into the bricks. The user can

move the paddle back and forth at the bottom of the screen with arrow keys or mouse. The ball

bounce off the paddle and off the sides of the form. if the ball miss the paddle at the bottom the

game ends.

Your Task is to create Breakout game using C# and .NET Framework Windows Forms.

The screenshot show in example of Breakout game.

https://en.wikipedia.org/wiki/Breakout_(video_game)

ISCG6421 – GUI Programming

Page 2 of 13

Requirements


You are provided with a C# starter project that you must use for this assignment. The starter project

contains all necessary classes and file for you to complete the assignment. However, you can add

more Forms or classes.



• Your solution must be Object oriented.

• There must be a Welcome window or splash screen which will allow user to play the game.

• The game Form must provide a ball, paddle, and a layer of bricks at the top of the screen.

• Each brick must have a firmness 1 to 4.

o Randomly assign the firmness to each brick,1 is weaker and 4 is firm.

o You can colour code the firmness on each brick or display number to represent the

firmness.

• The ball must also bounce off the bricks at the top of the screen and causing the brick weaker

(reduce the firmness) or explode/disappear (the firmness is zero).

• Add two random bomb bricks (with special colour or animation) if user hit it directly should destroy

all the bricks.

• The ball must bounce from the edges of the Form.

• The ball must also bounce off the paddle at the bottom of the Form and if the ball misses the

paddle the game ends.

• The user must be able to control the paddle using mouse or the arrows keys.

• The game must use single Timer to control animation.

• You can give user an option to pause the game.

• To enhance the user experience, it is essential to display the user's score. Every time a brick is hit,

the user should be awarded 10 points. In addition, if the brick disappears, the user will receive an

additional 5 points. For instance, if the brick has a firmness level of 1 and the ball hits it, the user

will earn a total of 15 points.

• Suggest an appropriate scoring system for when the user hits bomb bricks.

• When the game is lost the user should get an appropriate feedback and option to replay the game.

• When all the bricks destroyed then the game is won, and you need to give appropriate feedback to

user and option to replay the game.

• You must add at least two extra features of your choice.

• The game needs to be aesthetically pleasing.

Classes


Your project must be object oriented. You should add following classes:

• Ball

• Brick

• Paddle

• Manager

Your class will need fields and methods. For example for the ball, brick and Paddle objects needs to

know where it is on the screen, its size and colour. The ball and paddle also need to know how to

ISCG6421 – GUI Programming

Page 3 of 13

move. The ball should also know if it is collided with bricks or paddle. The Manger will manage all the

objects, manage animation and calculate game.




Extra Features Examples


• Add different levels to game

• Add appropriate sounds to game

• Keep track of user score especially record the highest score or top three scores

• Allows the players to start, pause, resume, and restart games.

• Provides a way to Save the current game to a file.

• Provides a way to Load a saved game from a file and continue playing the loaded game.

Getting input from the Keyboard


When a user presses a key on the keyboard, a KeyDown event is generated. For the Form’s

KeyDown event, the event method signature is:

private void Game_KeyDown(object sender, KeyEventArgs e)


Game is the name of the form. Following is the sample code

private void Game_KeyDown(object sender, KeyEventArgs e)

{

switch (e.KeyCode)

{

case Keys.Left:

//write code in response to the left arrow key

break;

case Keys.Right:

//write code in response to the right arrow key

break;

}

}

The Form’s KeyPreview property must be set to True. Otherwise, it won’t be able to respond to the

KeyDown event

ISCG6421 – GUI Programming

Page 4 of 13

ISCG6421 – GUI Programming

Page 5 of 13

Required Tests

This is the minimum number of tests you need in your testing documentation:

1. Interface is displayed correctly when the program runs

2. Bricks are displayed correctly

3. Paddle is move with key Press or mouse move

4. The ball is moving

5. The ball is bouncing off the paddle

6. The ball is making the bricks disappear when hit by the ball.

7. Score is calculated correctly

8. The won message displayed when the user won

9. The lost message displayed when the user lost

10. User is getting an option to replay the game when the game is won or lost

Please note that your tests can involve more than one step and must be reproducible (i.e. explicit test

data and user actions) and independent of each other (i.e. please do not use the output of one test as

the input to another test.)


Test Cases

Please using the following format for your test cases

Requirement to test Test Data Input Expected Outcomes Actual Outcomes


Required Unit Tests

You must write at least 7 Unit tests to test methods for your choice. You can select methods from any

class, consider following classes.

• Ball

• Paddle

• Brick

Delivery

A soft copy must be uploaded onto Moodle as a single .zip file prior to the deadline and it must

comprise:

• The testing documentation.

• ALL files needed to compile and run your application from the Visual Studio Community

2022 or 2019. 20-30 marks will be deducted if this is not done.

ISCG6421 – GUI Programming

Page 6 of 13

Please note that it is important to upload the correct version of your assignment onto Moodle. If you

submit the wrong version onto Moodle, please notify me by email before the deadline date or late

penalties may be incurred.




Checkpoints

There is an expectation that you will have completed certain aspects of your assignment at each

checkpoint submission. If your submission does not meet the expectations of the checkpoint, your

overall mark for the final submission may be penalised.

Expectations

Checkpoint 1:

• User interfaces are designed, and the ball is coded for the game

Checkpoint 2:

• Classes are added for Ball, Paddle, Bricks and Manager class is managing the game.


Demo


You must give demo of your assignment and answer all questions about your code. 50 marks will be

deducted if this is not done. Without demo and Q&A your assignment will not be marked.


ISCG6421 – GUI Programming

Page 7 of 13

Marking

Criteria Marks Actual

• Game Interface set up correctly (similarly to the one shown on page

11).

8

• Main functionalities are added to the game form.

1. The ball must bounce from the edges of the Form.

2. Firmness is added to bricks (1 to 4)

3. Ball hit is reducing the firmness .

4. Bomb bricks are added.

5. The ball must also bounce off the bricks at the top of the screen

and causing the brick to explode (disappear) if the firmness is 1.

6. The ball must also bounce off the paddle at the bottom of the

Form and if the ball misses the paddle the game ends.

7. The user must be able to control the paddle using mouse or the

arrows keys.

8. The game must use single Timer to control animation.

(3 Marks for each)

24

• Score is calculated correctly 5

• Appropriate scoring calculated when user hit bomb bricks 4

• Appropriate messages displayed when the game is lost or won 5

• An option is added to replay the game 3

• Appropriate two extra features are added. 6

• Main or welcome form is added which allows the user to begin a

game.

5

• Application is object oriented (6 marks),

Modular (4 marks) and

Algorithmic elegance (4 Marks)

14

• Game is aesthetically pleasing 5

Testing documentation with appropriate tests 8

7 Unit tests for appropriate methods 7

Naming conventions and correct internal documentation 6

You must give demo of your assignment and answer all questions

about your code. 50 marks will be deducted if this is not done.

Total: 100

• Marks will be deducted for any requirement (or for multi-part requirements, or each part of a

requirement) that is not fully implemented or has no or insufficient testing.

• In the interface behaviour and data processing section, marks will be deducted for any

requirement (or for multi-part requirements, or each part of a requirement) that is not well

covered in the test plan or is reported as working in the test plan but does not work when the

ISCG6421 – GUI Programming

Page 8 of 13

assignment is marked. You are also expected to handle exceptions, using message boxes and

“try and catch” blocks.

• Check “Programming Standards for C Sharp Courses” You can also find some at the end of

this document. The standards for C# programming in this document MUST be followed. In

particular, this includes putting meaningful comments at the beginning of each and every

method in the standard format as given in the document.

Do you want to do the best that you can do in this assignment and improve your grades?

You could:

❖ Talk it over with your lecturer

❖ Visit Te Pune Ako or Maia for learning advice and support

❖ Visit the Centre for Pacific Development and Support

❖ Contact the USU Advocate for independent advice

❖ For contact details and more information, go to www.usu.co.nz

ISCG6421 – GUI Programming

Page 9 of 13

Assignment Delivery

Electronic submission of all necessary files is required for ALL assignments and must be submitted

prior to the due date and time. Assignments submitted after the due date and time without having

received an extension through Affected Performance Consideration (APC) will be penalised according

to the following:

• 10% of marks deducted if submitted within 24hrs of the deadline

• 20% of marks deducted if submitted after 24hrs and up to 48hrs of the deadline

• 30% of marks deducted if submitted after 48hrs and up to 72hrs of the deadline

• No marks will be awarded for an assignment that is submitted later than 72hrs after

the deadline.

For the purposes of academic integrity, students who haven’t demonstrated progress work in the class

time can be asked to demo/test their working code and explain logic to the lecturer individually after

assignment submission.

Affected Performance Consideration

A student, who due to circumstances beyond his or her control, misses a test, final exam or an

assignment deadline or considers his or her performance in a test, final exam or an assignment to

have been adversely affected, should complete the Affected Performance Consideration (APC) form

available from Student Central.

When requesting an APC for an assignment, the APC application form must be submitted (along with

work completed to-date) within the time frame of the extension requested; i.e. if the Doctor’s certificate

is for one (1) day, then the APC application form and work completed must be submitted within one (1)

day.

ISCG6421 – GUI Programming

Page 10 of 13

Assistance to other Students

Students themselves can be an excellent resource to assist the learning of fellow students, but there

are issues that arise in assessments that relate to the type and amount of assistance given by

students to other students. It is important to recognise what types of assistance are beneficial to

another’s learning and also what types of assistance are unacceptable in an assessment.

Beneficial Assistance

• Study Groups.

• Discussion.

• Sharing reading material.

• Testing another student’s programming work using the executable code and giving them the

results of that testing.

Unacceptable Assistance

• Working together on one copy of the assessment and submitting it as own work.

• Giving another student your work.

• Copying someone else’s work. This includes work done by someone not on the course.

• Changing or correcting another student’s work.

• Copying from books, Internet etc. and submitting it as own work. Anything taken directly from

another source must be acknowledged correctly: show the source alongside the quotation.

For the purposes of academic integrity, students who haven’t demonstrated progress work in

the class time (and/or no check point submission) can be asked to demo/test their working

code and explain logic to the lecturer individually after assignment submission.

ISCG6421 – GUI Programming

Page 11 of 13

Programming Standards for C Sharp Courses

Internal Documentation

• Your code is such that other programmers can read it without struggling and your users are not

left guessing as to what to do.

• Each class file (including form classes) will begin with comments explaining the purpose of the

class, the author and the date written.

• Each method will start with comments that explain what the method does.

• Any code which does not have an obvious meaning or which uses a specialized technique is to

be commented. Use blank lines and further comments to identify where parts of a task begin

within a method.

• Code will use meaningful variable, class and method names. Components which have event

handler code for any of their events must have meaningful names, Components which have

properties assigned to in code must also have meaningful names. A naming convention that

identifies the type of component involved is recommended. E.g. btnExit, txtStartDate, lblTotal

Layout

• Code will be laid out in the style of the example below, using indentation steps of 4 spaces.

Blocks using { and } will use the layout shown here:

///<Summary> method : btnLeapYear_Click

///Check if a date falls in a leap year

///</Summary>

private void btnLeapYear_Click(object sender, System.EventArgs e)

{

DateTime aDate = getDate();

if ( DateTime.IsLeapYear(aDate.Year) )

{

label6.Text = aDate.Year.ToString() + " IS a leap year";

}

else

{

label6.Text = aDate.Year.ToString()

+ " is NOT a leap year";

}

}

• Parentheses and spaces will be used to make the meaning clear in arithmetic expressions and

conditions.

sum = (n1 / n2) + n3;

not

sum = n1 / n2 + n3;

nor

sum=n1/n2+n3;

• In general, each method will perform a single simple task.

• In the final version of your project please delete all sections of code that has been ‘commented

out’

ISCG6421 – GUI Programming

Page 12 of 13

User Interface

• Always provide the user with clear instructions explaining what they should do. Areas used for

input must be labelled to explain what input is required. Use hints or tool tips to explain

interface features.

• The user must be prevented from entering values or taking actions that the program is unable to

deal with. All input should be validated; any errors found should be reported back to the user with

an error message which clearly and politely explains how to correct the error. The user should be

unable to proceed without correcting invalid input.

ISCG6421 – GUI Programming

Page 13 of 13

Interface Design Basic Mock-up: Screenshot

NOTE: This mock-up does not include all GUI elements necessary to complete the assignment. It

represents a high-level suggestion of layout for the GUI, and not an exact requirement for your

submission.


版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:821613408 微信:horysk8 电子信箱:[email protected]
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:horysk8