Professional Documents
Culture Documents
Finalproject Strategygame cst338 Richardrivera
Finalproject Strategygame cst338 Richardrivera
Finalproject Strategygame cst338 Richardrivera
* @author Richard_Rivera
* CST 338 - Software Design
* Final Project - Strategy Game
*
*/
import java.util.*;
zeus.setMarchSpeed(10.0);
cronus.setMarchSpeed(12.0);
Soldier.addToUnit(army, zeus);
Soldier.addToUnit(army, cronus);
Soldier.addToUnit(army, poseidon);
Soldier.addToUnit(army, hyperion);
System.out.println(army);
Random rand = new Random();
*************************************************************************
*************************************
/**
* Soldier class
*/
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
Soldier()
{
this.unit = "AA";
this.number = 0;
}
while(soldiers.hasNext()) {
Map.Entry<String, List<Soldier>> unit = soldiers.next();
String key = unit.getKey();
if(s.getUnit().equals(key)) {
value = true;
List<Soldier> values = unit.getValue();
values.add(s);
unit.setValue(values);
}
}
if(!value) {
List<Soldier> t = new ArrayList<>();
t.add(s);
units.put(s.getUnit(), t);
}
}
@Override
public String toString() {
return getUnit() + getNumber() + ":";
}
}
*************************************************************************
*************************************************************************
*************************************************************************
*********************
/**
* RedArmy class
*/
import java.util.*;
import java.util.*;
*************************************************************************
*******************************
/**
* SoldierTest class
*/
import java.util.HashMap;
import java.util.List;
import org.junit.Test;
@Test
public void testAddToUnit() {
HashMap<String, List<Soldier>> units = new HashMap<>();
BlueArmy zeus = new BlueArmy("white", 1, "zeus");
RedArmy crius = new RedArmy("crius", 003);
assertFalse(units.containsKey(crius.getUnit()));
Soldier.addToUnit(units, crius);
assertTrue(units.containsKey(crius.getUnit()));
assertFalse(units.containsKey(zeus.getUnit()));
Soldier.addToUnit(units, zeus);
assertTrue(units.containsKey(zeus.getUnit()));
}
@Test
public void testAttack() {
BlueArmy zeus = new BlueArmy("white", 1, "zeus");
RedArmy crius = new RedArmy("crius", 003);
assertTrue(zeus.attack(zeus, 10));
assertTrue(crius.attack(zeus, 1));
assertTrue(zeus.attack(zeus, 12));
assertFalse(zeus.attack(zeus, 11));
assertTrue(zeus.attack(crius, 6));
assertTrue(zeus.attack(crius, 3));
assertTrue(zeus.attack(crius, 2));
}
@Test
public void testGetUnit() {
RedArmy crius = new RedArmy("crius", 003);
assertEquals("crius", crius.getUnit());
}
@Test
public void testSetUnit() {
RedArmy crius = new RedArmy("crius", 003);
assertEquals("crius", crius.getUnit());
crius.setUnit("cronus");
assertEquals("cronus", crius.getUnit());
assertEquals("crius", crius.getUnit());
}
@Test
public void testGetNumber() {
BlueArmy hades = new BlueArmy("black", 3, "hades");
assertEquals(3, hades.getNumber());
}
@Test
public void testSetNumber() {
BlueArmy hades = new BlueArmy("black", 3, "hades");
assertEquals(3, hades.getNumber());
hades.setNumber(42);
assertEquals(42, hades.getNumber());
assertNotEquals(2, hades.getNumber());
}
@Test
public void testMarch() {
BlueArmy hades = new BlueArmy("red", 4, "hades");
RedArmy hyperion = new RedArmy("hyperion", 002);
assertEquals(Math.ceil(45.75), hades.march(15));
assertEquals(Math.floor(65.50), hyperion.march(15));
}
@Test
public void getTroopCount() {
for(int i = 0; i < 10; i++) {
if(i < 5) {
new RedArmy("hyperion", i);
} else {
new BlueArmy("red", i, "hades" + i);
}
}
assertEquals(5, RedArmy.getTroopCount());
assertEquals(5, BlueArmy.getTroopCount());
}
}
*************************************************************************
***********************************
Output:
Blue army gods: 3
Red army titans: 3
{AA=[white(AA0:) a Gods, blue(AA0:) a Gods],
hyperion=[hyperion(hyperion2:) a Titans], cronus=[cronus(cronus1:) a
Titans]}
white(AA0:) a Gods
white(AA0:) a Gods Marched 110.0 meters
white(AA0:) a Gods is attatcking AA
white(AA0:) a Gods rolled a 16
white(AA0:) a Gods a solider is targeting themselve...
white(AA0:) a Gods rolled a 16 and took damage itself
Hit!
Miss!
Miss!
Miss!
blue(AA0:) a Gods
blue(AA0:) a Gods Marched 0.0 meters
Miss!
blue(AA0:) a Gods is attatcking AA
blue(AA0:) a Gods rolled a 12
blue(AA0:) a Gods a solider is targeting themselve...
blue(AA0:) a Gods rolled a 12 and took damage itself
Hit!
Miss!
Miss!
hyperion(hyperion2:) a Titans
hyperion(hyperion2:) a Titans Marched 87.0 meters
Miss!
Miss!
hyperion(hyperion2:) a Titans is attatcking hyperion
hyperion(hyperion2:) a Titans rolled a 12
hyperion(hyperion2:) a Titans a solider is targeting themselve...
hyperion(hyperion2:) a Titans rolled a 12 and took damage itself
Hit!
Miss!
cronus(cronus1:) a Titans
cronus(cronus1:) a Titans Marched 174.0 meters
Miss!
Miss!
Miss!
cronus(cronus1:) a Titans is attatcking cronus
cronus(cronus1:) a Titans rolled a 19
cronus(cronus1:) a Titans a solider is targeting themselve...
cronus(cronus1:) a Titans rolled a 19 and took damage itself
Hit!