Untitled
unknown
plain_text
2 years ago
3.9 kB
17
Indexable
package Exercise;
import java.util.Scanner;
public class Zadatak10 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[] loot = scanner.nextLine().split("\\|");
String command = scanner.nextLine();
while (!command.equals("Yohoho!")) {
String[] tokens = command.split(" ");
String action = tokens[0];
switch (action) {
case "Loot":
for (int i = 1; i < tokens.length; i++) {
String item = tokens[i];
if (!containsItem(loot, item)) {
loot = insertItemAtBeginning(loot, item);
}
}
break;
case "Drop":
int index = Integer.parseInt(tokens[1]);
if (index >= 0 && index < loot.length) {
String item = loot[index];
loot = removeItem(loot, index);
loot = insertItemAtEnd(loot, item);
}
break;
case "Steal":
int count = Integer.parseInt(tokens[1]);
count = Math.min(count, loot.length);
String[] stolenItems = new String[count];
for (int i = 0; i < count; i++) {
stolenItems[i] = loot[loot.length - count + i];
}
loot = removeItems(loot, loot.length - count, loot.length - 1);
System.out.println(String.join(", ", stolenItems));
break;
}
command = scanner.nextLine();
}
if (loot.length == 0) {
System.out.println("Failed treasure hunt.");
} else {
double averageGain = calculateAverageGain(loot);
System.out.printf("Average treasure gain: %.2f pirate credits.%n", averageGain);
}
}
private static boolean containsItem(String[] arr, String item) {
for (String element : arr) {
if (element.equals(item)) {
return true;
}
}
return false;
}
private static String[] insertItemAtBeginning(String[] arr, String item) {
String[] newArr = new String[arr.length + 1];
newArr[0] = item;
for (int i = 0; i < arr.length; i++) {
newArr[i + 1] = arr[i];
}
return newArr;
}
private static String[] insertItemAtEnd(String[] arr, String item) {
String[] newArr = new String[arr.length + 1];
for (int i = 0; i < arr.length; i++) {
newArr[i] = arr[i];
}
newArr[arr.length] = item;
return newArr;
}
private static String[] removeItem(String[] arr, int index) {
String[] newArr = new String[arr.length - 1];
for (int i = 0, j = 0; i < arr.length; i++) {
if (i != index) {
newArr[j] = arr[i];
j++;
}
}
return newArr;
}
private static String[] removeItems(String[] arr, int startIndex, int endIndex) {
int length = arr.length - (endIndex - startIndex + 1);
String[] newArr = new String[length];
for (int i = 0, j = 0; i < arr.length; i++) {
if (i < startIndex || i > endIndex) {
newArr[j] = arr[i];
j++;
}
}
return newArr;
}
private static double calculateAverageGain(String[] arr) {
int totalLength = 0;
for (String item : arr) {
totalLength += item.length();
}
return (double) totalLength / arr.length;
}
}
Editor is loading...