mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-23 15:37:51 -08:00
updated implementation with proper OO design, provided link to video
This commit is contained in:
113
84_Super_Star_Trek/java/Util.java
Normal file
113
84_Super_Star_Trek/java/Util.java
Normal file
@@ -0,0 +1,113 @@
|
||||
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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user