mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-23 07:29:02 -08:00
114 lines
3.4 KiB
Java
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();
|
|
}
|
|
|
|
|
|
}
|