Skip to content
Snippets Groups Projects
Commit 866917cd authored by jez04's avatar jez04
Browse files

Solution

parent 70bc17e1
Branches
No related merge requests found
package cz.vsb.fei.efrei.lab03;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Scanner;
......@@ -7,34 +12,113 @@ public class DangerWorld {
private static final Random RANDOM = new Random();
public static void main(String[] args) {
Fighter[] fighters = new Fighter[6];
List<Fighter> fighters = new ArrayList<>();
try (Scanner s = new Scanner(System.in)) {
System.out.println("Type name of monster:");
String name = s.next();
Monster monster = new Monster(name);
fighters[0] = monster;
fighters[1] = new Monster("King");
fighters[2] = new Monster("Queen");
fighters[3] = new Monster("Fairy");
fighters[4] = new Hero("Shrek");
fighters[5] = new Hero("Cinderela");
fighters.add(monster);
fighters.add(new Monster("King"));
fighters.add(new Monster("Queen"));
fighters.add(new Monster("Fairy"));
fighters.add(new Hero("Shrek"));
fighters.add(new Hero("Cinderela"));
int countOfHeros = RANDOM.nextInt(200);
for (int i = 0; i < countOfHeros; i++) {
fighters.add(new Hero(Utils.generateHeroName()));
}
int countOfMonsters = RANDOM.nextInt(250);
for (int i = 0; i < countOfMonsters; i++) {
fighters.add(new Monster(Utils.generateMonsterName()));
}
int sumStrenght = 0;
for (Fighter fighter : fighters) {
sumStrenght += fighter.getStrenght();
}
System.out.println("Average strenght of all fighters is " + sumStrenght / fighters.size());
int sumStrenghtOfHeroes = 0;
int numberOfHeroes = 0;
int sumStrenghtOfMonsters = 0;
int numberOfMonsters = 0;
for (Fighter fighter : fighters) {
if (fighter instanceof Monster) {
sumStrenghtOfMonsters += fighter.getStrenght();
numberOfMonsters++;
} else if (fighter instanceof Hero) {
sumStrenghtOfHeroes += fighter.getStrenght();
numberOfHeroes++;
}
}
System.out.println("Average strenght of all Heros is " + sumStrenghtOfHeroes / numberOfHeroes);
System.out.println("Average strenght of all Monsters is " + sumStrenghtOfMonsters / numberOfMonsters);
int rounds = 100;
int rounds = 1000;
for (int i = 0; i < rounds; i++) {
Fighter fighter1 = fighters[RANDOM.nextInt(6)];
Fighter fighter2 = fighters[RANDOM.nextInt(6)];
Fighter fighter1 = fighters.get(RANDOM.nextInt(fighters.size()));
Fighter fighter2 = fighters.get(RANDOM.nextInt(fighters.size()));
try {
fighter1.attackedBy(fighter2);
} catch (AlreadyDeadException e) {
System.out.println(
"Ups! Fighter "
+ fighter2.getName()
+ " attack already dead "
+ fighter1.getName());
"Ups! Fighter " + fighter2.getName() + " attack already dead " + fighter1.getName());
}
}
int countDeath = 0;
// List<Fighter> deads = new ArrayList<>();
// for (Fighter fighter : fighters) {
// if(!fighter.isAlive()) {
// countDeath++;
// deads.add(fighter);
// }
// } int countOfHeros = RANDOM.nextInt(200);
// fighters.removeAll(deads);
// for (int i = fighters.size()-1; i>=0; i--) {
// if(!fighters.get(i).isAlive()) {
// countDeath++;
// fighters.remove(i);
// }
// }
Iterator<Fighter> iterator = fighters.iterator();
while (iterator.hasNext()) {
if (!iterator.next().isAlive()) {
iterator.remove();
countDeath++;
}
}
System.out.println("Number of deats:" + countDeath);
for (Fighter fighter2 : fighters) {
if (!fighter2.isAlive()) {
System.out.println("Fount dead fighter " + fighter2.getName());
}
}
Map<String, Integer> namesCountMap = new HashMap<>();
for (Fighter fighter : fighters) {
if (namesCountMap.containsKey(fighter.getName())) {
Integer count = namesCountMap.get(fighter.getName());
int newCount = count + 1;
namesCountMap.put(fighter.getName(), newCount);
} else {
namesCountMap.put(fighter.getName(), 1);
}
}
for (String name1 : namesCountMap.keySet()) {
int count = namesCountMap.get(name1);
System.out.println(name1 + ": " + count);
}
}
}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment