fork download
  1. public abstract class LandscapeTile {
  2. private static Random rnd = new Random();
  3. Vector2d coordinates;
  4. int elevation;
  5.  
  6. public abstract int getMinElevation();
  7. public abstract int getMaxElevation();
  8.  
  9. private LandscapeTile(Vector2d coordinates) {
  10. this.coordinates = coordinates;
  11. this.elevation = rnd.nextInt(getMinElevation(), getMaxElevation());
  12. }
  13.  
  14. public static LandscapeTile hill(Vector2d coordinates) {
  15. return new Hill(coordinates);
  16. }
  17.  
  18. public static LandscapeTile forest(Vector2d coordinates) {
  19. return new Forest(coordinates);
  20. }
  21.  
  22. public static class Hill extends LandscapeTile {
  23.  
  24. private Hill(Vector2d coordinates) {
  25. super(coordinates);
  26. }
  27.  
  28. @Override
  29. public int getMinElevation() {
  30. return 50;
  31. }
  32.  
  33. public int getMaxElevation() {
  34. return 100;
  35. }
  36. }
  37.  
  38. public static class Forest extends LandscapeTile {
  39.  
  40. private Forest(Vector2d coordinates) {
  41. super(coordinates);
  42. }
  43.  
  44. @Override
  45. public int getMinElevation() {
  46. return 10;
  47. }
  48.  
  49. public int getMaxElevation() {
  50. return 50;
  51. }
  52. }
  53.  
  54.  
  55. public static void main(String[] args) {
  56. List<LandscapeTile> tiles = Arrays.asList(
  57. LandscapeTile.hill(new Vector2d(0, 1)),
  58. LandscapeTile.forest(new Vector2d(1, 1))
  59. );
  60. }
  61. }
  62.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: class LandscapeTile is public, should be declared in a file named LandscapeTile.java
public abstract class LandscapeTile {
                ^
Main.java:2: error: cannot find symbol
	private static Random rnd = new Random();
	               ^
  symbol:   class Random
  location: class LandscapeTile
Main.java:3: error: cannot find symbol
	Vector2d coordinates;
	^
  symbol:   class Vector2d
  location: class LandscapeTile
Main.java:9: error: cannot find symbol
	private LandscapeTile(Vector2d coordinates) {
	                      ^
  symbol:   class Vector2d
  location: class LandscapeTile
Main.java:14: error: cannot find symbol
	public static LandscapeTile hill(Vector2d coordinates) {
	                                 ^
  symbol:   class Vector2d
  location: class LandscapeTile
Main.java:18: error: cannot find symbol
	public static LandscapeTile forest(Vector2d coordinates) {
	                                   ^
  symbol:   class Vector2d
  location: class LandscapeTile
Main.java:24: error: cannot find symbol
		private Hill(Vector2d coordinates) {
		             ^
  symbol:   class Vector2d
  location: class Hill
Main.java:40: error: cannot find symbol
		private Forest(Vector2d coordinates) {
		               ^
  symbol:   class Vector2d
  location: class Forest
Main.java:2: error: cannot find symbol
	private static Random rnd = new Random();
	                                ^
  symbol:   class Random
  location: class LandscapeTile
Main.java:56: error: cannot find symbol
		List<LandscapeTile> tiles = Arrays.asList(
		^
  symbol:   class List
  location: class LandscapeTile
Main.java:57: error: cannot find symbol
			LandscapeTile.hill(new Vector2d(0, 1)),
			                       ^
  symbol:   class Vector2d
  location: class LandscapeTile
Main.java:58: error: cannot find symbol
			LandscapeTile.forest(new Vector2d(1, 1))
			                         ^
  symbol:   class Vector2d
  location: class LandscapeTile
Main.java:56: error: cannot find symbol
		List<LandscapeTile> tiles = Arrays.asList(
		                            ^
  symbol:   variable Arrays
  location: class LandscapeTile
13 errors
stdout
Standard output is empty