Merge branch 'create-race-class' into 'master'

Create race class



See merge request !2
This commit is contained in:
Michael Rausch
2017-03-03 18:44:14 +13:00
4 changed files with 100 additions and 1 deletions
+24 -1
View File
@@ -1,9 +1,32 @@
package seng302;
import java.util.ArrayList;
public class App
{
/*
Displays the order in which the boats finished
@param race The current race
*/
public static void displayFinishingOrder(Race race){
int numberOfBoats = race.getNumberOfBoats();
Boat[] boats = race.getFinishedBoats();
System.out.println("--- Finishing Order ---");
for (int i = 0; i < numberOfBoats; i++) {
System.out.println("#" + Integer.toString(i+1) + " - " + boats[i].getTeamName());
}
}
public static void main( String[] args )
{
System.out.println("");
Race race = new Race();
displayFinishingOrder(race);
}
}
+1
View File
@@ -9,6 +9,7 @@ public class Boat
{
// The name of the team, this is also the name of the boat
private String teamName = null;
private boolean finishedRace = false;
public Boat(String teamName) {
this.teamName = teamName;
+48
View File
@@ -0,0 +1,48 @@
package seng302;
import java.util.ArrayList;
import java.util.Random;
import java.util.Collections;
import java.util.List;
public class Race {
private ArrayList<Boat> boats;
private int numberOfBoats = 0;
public Race(){
boats = new ArrayList<Boat>();
}
/*
Add a boat to the race
@param boat, the boat to add
*/
public void addBoat(Boat boat){
boats.add(boat);
numberOfBoats += 1;
}
/*
Returns a list of boats in the order that they
finished the race (position 0 is first)
@returns a list of boats
*/
public Boat[] getFinishedBoats(){
// Shuffle the list of boats
long seed = System.nanoTime();
Collections.shuffle(this.boats, new Random(seed));
return boats.toArray(new Boat[boats.size()]);
}
/*
Returns the number of boats in the race
@returns the number of boats in the race
*/
public int getNumberOfBoats(){
return numberOfBoats;
}
}
+27
View File
@@ -0,0 +1,27 @@
package seng302;
import org.junit.Test;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertEquals;
import java.lang.reflect.Array;
/**
* Unit test for the Race class.
*/
public class RaceTest
{
@Test
public void testAddingBoatsToRace()
{
Boat boat1 = new Boat("Team 1");
Boat boat2 = new Boat("Team 2");
Boat boat3 = new Boat("Team 3");
Race race = new Race();
race.addBoat(boat1);
race.addBoat(boat2);
race.addBoat(boat3);
assertEquals(Array.getLength(race.getFinishedBoats()), 3);
}
}