Harvard University Complexity of Algorithms and Efficiency of Programs Questions

Question Description

There will be a total of 7 required Java classes created for this assignment: Piece.java,

SlowPiece.java, FastPiece.java, SlowFlexible.java, FastFlexible.java, Board.java and

GameDemo.java. You are free to create extra classes if needed.

Start by defining a Piece class with the following fields:

• Name: A String (eg. ‘Jedi’, ‘Droid’, etc.)

• Colour: A String (eg. ‘Black’, ‘Red’, etc.)

• Position: A point described by a pair of integers (eg. [2, 4], [1, 1], etc.).

Assume that the game board is an 8 X 8 grid. The position is a coordinate ([x, y]) on the board, with

the values of x and y each taking a value between 0 and 7. The top left corner of the board is taken

to be the origin ([0, 0]). You can define Position in a separate class or use classes from the Java

standard library if you wish.Implement the following methods:

• Constructor: A constructor that creates a Piece object with the given name, colour and

position.

• Getters and Setters: Appropriate methods to set, change and access fields.

• toString(): A method to display the Piece Object’s fields.

Next define a SlowPiece class – A Piece that moves left or right exactly one step per move. Your

SlowPiece should extend the Piece class, implementing a constructor and redefining the inherited

toString method via overriding.

In addition, implement the following method:

• move (String direction): A method to move the piece left or right by one space. This method

will accept a direction parameter. If a move is requested that would take the Piece off the

edge of the board, simply return without doing anything.

Define a FastPiece class – A Piece that moves left or right a specified, arbitrary number of steps

per move. Your FastPiece should extend the Piece class, implementing a constructor and redefining

the inherited toString method via overriding.

In addition, implement the following method:

• move (String direction, int n): A method to move the piece left or right by a specified

number of spaces. This method will accept a direction parameter and a number of spaces.

If a move is requested that would take the Piece off the edge of the board, simply return

without doing anything.

A flexible Piece is one that can move up or down as well as right or left. Extend the class hierarchy

developed so far to include these two new kinds of Pieces. Define a SlowFlexible class that extends

the SlowPiece class and a FastFlexible class that extends the FastPiece class. Define methods in

these classes as needed.

Next define a Board class – The Board class will hold the 8 X 8 game board. Each position of the

board either contains a Piece or is empty. Since the pieces move around on the game board, any

location may contain any type of Piece. Consider what data structure you wish to use to represent

the board.

Implement methods to do the following in the Board class:

• Add a new Piece to the game board.

Note: a new Piece can be added to a location only if none exist at that location; display an error

message if the Piece cannot be added.

• Move a Piece at a given location in a given direction by a given number of spaces. Display

an error message if the Piece cannot be moved.

• Display the game board, showing the name, color and type of each Piece on the game board

at its current location. You can use a simple text-based display to show the board and the

Pieces on it. For example, your display might look like this:

–

–

–

JediBlueS CloneRedF

–

–

–

DroidBlueFF-

–

–

–

–

–

–

–

–

–

–

–

–

–

–

–

–

–

–

CloneBlueSF

–

–

–

–

–

–

–

–

–

–

—

–

–

–

–

–

–

–

–

–

–

–

–

–

–

TroigRedF

In the above display, there is a Jedi (blue colour, slow piece) and a Clone(red colour, fast

piece) in the first row. There is a Droid (blue colour, fast flexible piece) in the second row…

and so on.

Finally define a GameDemo class – The GameDemo class should accept commands from a user

to create Pieces and move them on an 8 X 8 game board, and display the game board.

You should use the following command syntax, with each command appearing on a new line.

Words in plain, Roman script should appear verbatim in the command. Words in Italic script take

one of several possibilities that are explained. Square brackets imply optional parameters.

Get 20% Discount on This Paper
Pages (550 words)
Approximate price: -

Try it now!

Get 20% Discount on This Paper

We'll send you the first draft for approval by at
Total price:
$0.00

How it works?

Follow these simple steps to get your paper done

Place your order

Fill in the order form and provide all details of your assignment.

Proceed with the payment

Choose the payment system that suits you most.

Receive the final file

Once your paper is ready, we will email it to you.

Our Services

Ace Writing Center has stood as the world’s leading custom essay writing services providers. Once you enter all the details in the order form under the place order button, the rest is up to us.

Essays

Essay Writing Services

At Ace Writing Center, Nowadays, students normally have extremely busy schedules. You will note that some of them have to take on some evening or weekend jobs in order to get some income that can help them to sustain in college or in the university. This can deny them a chance to write all the essays given. Others usually get bombarded with a lot of work by their lecturers. This can still delay such students from working on all their essays. However, some of them usually try to work on all these essays but end up delivering their work late. This can prevent them from graduating since most lecturers are strict on deadlines. If you want to write a business essay, the wise way is to hire an outstanding essay writing service like us, so that you can get the best results. If you are keen, you will note that many companies usually overcharge their customers. Some of them are there only to make money. And in reality, they really don’t care to build a long term commitment with students. You should not choose such companies. You should take your time and choose a reliable company to work with. Ace Writing Center is the ultimate solution for you. We have been offering our writing service for more than 7 years. This is a clear indication that you will get quality essay writing service. We have a wide range of writers who can work on any business essay that you might have. We believe in doing extensive research so that we can provide quality work to all our clients. .

Admissions

Admission and Business Papers

Have you ever had to write an admission essay for college? The majority of students face the same issues when applying to a university or college and many in such situations decide they need professional help to cope with this matter. They get in a situation when the deadline keeps coming closer but lack motivation to start because they are just not sure if their writing skills are strong enough. We have a solution for you! Ace Writing Center is the best admission essay writing service with a large professional team and years of experience in providing high-quality papers to students of all levels and faculties. The mission of our team is to help students make their dreams of entering a good college come true and that’s what we offer!.

Editing

Editing and Proofreading

Sometimes all the words for your paper just flow out of your mind and into your fingers. You type quickly at your keyboard and there they are, your beautiful words right there on the screen. But you have no idea how to polish it up. You may be wishing there was a paper writing service that offered this type of writing service. Look no more! Here at Ace Writing Center, we offer you an editing and proofreading option that you can't find anywhere else..

Coursework

College Essay Writing

In case you are familiar Ace Writing Center, you know the way to distinguish a better company from a cheap one exactly. First of all, poor service website does not have a sufficient support. We think support team is an essential part of success; it has to answer all clients’ questions and be a connecting link between clients and their writers. On our web-service you will get answers about anything you need and your writer will receive all your instructions, assignments and requirements exactly and swiftly. A writing service that we run has got a flexible pricing system that will save you from senseless wastes and many bonus systems that let you sparing money for something important for you.