Files
basic-computer-games/84_Super_Star_Trek/java/Util.java
2022-03-24 18:58:47 +01:00

114 lines
3.4 KiB
Java

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Random;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
/**
* Convenience utility methods for the Super Star Trek game.
*/
public class Util {
static final Random random = new Random();
public static float random() {
return random.nextFloat();
}
public static int fnr() { // 475
// Generate a random integer from 1 to 8 inclusive.
return toInt(random() * 7 + 1);
}
public static int toInt(final double num) {
int x = (int) Math.floor(num);
if (x < 0) x *= -1;
return x;
}
public static void println(final String s) {
System.out.println(s);
}
public static void print(final String s) {
System.out.print(s);
}
public static String tab(final int n) {
return IntStream.range(1, n).mapToObj(num -> " ").collect(Collectors.joining());
}
public static int strlen(final String s) {
return s.length();
}
public static String inputStr(final String message) {
System.out.print(message + "? ");
final BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
return reader.readLine();
} catch (IOException ioe) {
ioe.printStackTrace();
return "";
}
}
public static int[] inputCoords(final String message) {
while (true) {
final String input = inputStr(message);
try {
final String[] splitInput = input.split(",");
if (splitInput.length == 2) {
int x = Integer.parseInt(splitInput[0]);
int y = Integer.parseInt(splitInput[0]);
return new int[]{x, y};
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static float inputFloat(final String message) {
while (true) {
System.out.print(message + "? ");
final BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
final String input = reader.readLine();
if (input.length() > 0) {
return Float.parseFloat(input);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static String leftStr(final String input, final int len) {
if (input == null || input.length() < len) return input;
return input.substring(0, len);
}
public static String midStr(final String input, final int start, final int len) {
if (input == null || input.length() < ((start - 1) + len)) return input;
return input.substring(start - 1, (start - 1) + len);
}
public static String rightStr(final String input, final int len) {
if (input == null || input.length() < len) return "";
return input.substring(input.length() - len);
}
public static double round(double value, int places) {
if (places < 0) throw new IllegalArgumentException();
BigDecimal bd = new BigDecimal(Double.toString(value));
bd = bd.setScale(places, RoundingMode.HALF_UP);
return bd.doubleValue();
}
}