1 Guidelines
1.1 Contracts & Test Cases
2 Assignment
3 Classes and Methods you’ll be interested in
4 Testable Portions
5 Handin
6 Errors in the Assignment

Assignment 3, CSC102, Spring 2012

1 Guidelines

1.1 Contracts & Test Cases

For this and all remaining assignments, every method you develop must come with the following things:

2 Assignment

In this assignment, you’ll be implementing a simple "find the hidden spot" game for Minecraft, where starting the came creates a platform at a randomly chosen spot nearby, and the first player to reach the spot wins. This project will be somewhat open-ended; the basic functionality is required, but I would encourage your team to add bells and whistles.

This is an extremely open-ended assignment, and I’m going to list the steps that I would follow in implementing it.

Suggested development sequence:

Done!

3 Classes and Methods you’ll be interested in

This is a summary of the classes you’ll be interested in, and the methods of these classes that you’ll probably want to use. More specifically, these are the methods that I used; feel free to use any others that you’d like. You can see all of the Bukkit classes and interfaces and methods online at

http://jd.bukkit.org/doxygen/index.html

### JavaPlugin (subclass this, and use these methods:)

 

- getServer()

- getLogger()

 

### Server:

 

- getPluginManager()

- broadcastMessage(String)

 

### CommandSender (superclass of Player)

 

### Logger

 

- info(String)

 

### Player

 

- getLocation()

- getWorld()

- getDisplayName()

 

### Command

 

- getName()

 

### Location

 

- getBlockX()

- getBlockY()

- getBlockZ()

- getX()

- getY()

- getZ()

 

### Random

 

- nextDouble()

 

### PlayerMoveEvent

 

- getPlayer()

 

### Listener (must implement this interface)

 

### EventHandler (must implement this interface)

 

### Material

 

... many materials...

 

### World

 

- getMaxHeight()

- getBlockAt()

 

### Block

 

- getType()

- setType(Material)

 

### Math

 

- static floor(double)

- static cos(double)

- static sin(double)

 

### PluginManager

 

- registerEvents(Listener, Plugin)

 

4 Testable Portions

There are several portions of this assignment that can be tested; these do not make up the whole assignment, by any means, but WebCAT will run tests on these components, to ensure that they work as expected.

5 Handin

This is a team project, and only one of your team should hand in your project, as with the prior assignment.

6 Errors in the Assignment

I bet you can find some errors in this assignment. When you do, let me know about them!