联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> Java编程Java编程

日期:2019-04-09 11:34

COMP2396

Due: 14 April, 2019, 23:55

Introduction

This assignmenttests your skills on writing simple JavaGUI program, using Java graphics and

events.

YouneedtowriteapuzzleprogramJavaPuzzle.java,whichallows theusertoselectan

image as a puzzle and the user can then play with the selected images.

This assignment will be evaluated on both functionality and program design. You can get

part ofthe full marks if you implement some ofthe features.

You are expected to use Java GUI graphics to display the userinterface ofthis assignment.

YouarealsorequiredtowriteJavaDocforallnon-privateclassesandnon-privateclass

members. Programs without JavaDoc will not be marked.

Part I Select an Image

WhenJavaPuzzleisexecuted,afilechoosershouldbepresentedtoaskforanimagefile.

Part II Display the Image and randomize the image

Theimageisloadedfromtheselectedfileandisdividedintoblocksof80*80pixelsin

size displayed as shown in above figure. The blocks ofthe image are randomized so that

the user will not see the original image.Ifthe image file fails to load,the program should

generateanerrormessageandasktheusertoselectanotherimagefile.Eachimage

blockshouldkeepitsoriginalpositioninformationsothattheoriginalimagecanbe

reconstructed.

Your main UI should contain the following:

1. A JPanel for the image block display

2. A JTextArea for display message

3. Three JButtons:load image, show the original image and exit.

You are notrequired to follow exactly the size ofthe JTextArea and JButton objects as in

the the above figure, but should look similarto it.

The image should be resized and scaled to fitinto a canvas of 800*800 pixels in size.Ifthe

new image fails to load, an error message should be displayed and the old image is retained.

Part III Drag and Drop the image to the right position

The movements ofimage block are controlled manually by pressing and releasing the

mouse.If an image block is currently at(i,j),the user has to press the mouse at(i,j) and

drag itto the targetimage block position,then the selected image block and the target

image block will be swapped.

Note thatthe image block is notrequired to be with the cursor during dragging. Make sure it

causes a move when you release it at a proper position, and updates the image blocks in the

panel. After swapping,if any image block is placed on its original correct position, a message

should bedisplayed.

Ifthe destination image block is in the correct position, drag and drop anotherimage block

to that position will NOT swap their position, and a message should be displayed. The game

is finished when all image blocks are in correct position.

Marking

80% marks are given to the functionality.

l Youmay addadditional classes,instant variables and methods tothe project

l Youwill get part ofthe full marks if you implement some ofthe features.

l A program that can run normally withoutthrowing exceptions during runtime gets

higher marks.

20% marks are given to the program design.

l Youshould make good use ofinheritance,polymorphism,layout, painter and event

handler.

l You can check it by avoiding code duplication as much as possible.

l Economyisvaluableincoding:theeasiestwaytoensureabug-freelineofcodeisnot

to write the line of code at all.

Programs without JavaDoc will not be marked.

Programs with compilation error will not be marked.

Submission:

Please submit all source files (*.java)in a single compressed file (in .zip or.7z)to

Moodle. Do not submit .class file.


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

python代写
微信客服:codinghelp