Added Seeds
The added Seed Class is containing the information needed for building a tree. With this it is possible to have nice I/O when running the application without arguments but adding the possibility to run the application with arguments for nearly no I/O, without having much code twice
This commit is contained in:
parent
0e86f60d2b
commit
494d13bba3
|
@ -42,26 +42,68 @@ public class Main {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void newPythagorasTree(String input) {
|
public static void newPythagorasTree(String input) {
|
||||||
PythagorasTree.PythagorasTreeVariant variant;
|
PythagorasTreeSeed seed;
|
||||||
|
if (input != null) {
|
||||||
Scanner scanner = new Scanner(System.in);
|
seed = getSeedFromArg(input);
|
||||||
|
} else {
|
||||||
if (input != null) variant = variantFromString(input);
|
seed = getSeedFromInput();
|
||||||
else variant = variantInput(scanner);
|
}
|
||||||
|
double size = seed.size;
|
||||||
double size = squareSizeInput(scanner);
|
int loopSize = seed.loopSize;
|
||||||
int loopSize = loopSizeInput(scanner);
|
int depth = seed.depth;
|
||||||
int depth = depthInput(scanner);
|
double angle = seed.angle;
|
||||||
double angle = 45;
|
PythagorasTree.PythagorasTreeVariant variant = seed.variant;
|
||||||
|
|
||||||
if (variant == PythagorasTree.PythagorasTreeVariant.AsymetricPythagorasTree) angle = angleInput(scanner);
|
|
||||||
|
|
||||||
for (int i = 0; i < loopSize; i++) {
|
for (int i = 0; i < loopSize; i++) {
|
||||||
new PythagorasTreeQueue(variant, new PythagorasTriangleList(variant, depth, angle), newTurtle(), size, 0, depth);
|
new PythagorasTreeQueue(variant, new PythagorasTriangleList(variant, depth, angle), newTurtle(), size, 0, depth);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PythagorasTree.PythagorasTreeVariant variantFromString(String input) {
|
private static PythagorasTreeSeed getSeedFromInput() {
|
||||||
|
PythagorasTree.PythagorasTreeVariant variant;
|
||||||
|
Scanner scanner = new Scanner(System.in);
|
||||||
|
variant = variantInput(scanner);
|
||||||
|
double size = squareSizeInput(scanner);
|
||||||
|
int loopSize = loopSizeInput(scanner);
|
||||||
|
int depth = depthInput(scanner);
|
||||||
|
double angle;
|
||||||
|
|
||||||
|
switch (variant) {
|
||||||
|
case AsymetricPythagorasTree:
|
||||||
|
angle = angleInput(scanner);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
angle = 45;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
PythagorasTreeSeed seed = new PythagorasTreeSeed(size, loopSize, depth, angle, variant);
|
||||||
|
return seed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PythagorasTreeSeed getSeedFromArg(String input) {
|
||||||
|
String[] splitInput = input.split("_");
|
||||||
|
PythagorasTree.PythagorasTreeVariant variant;
|
||||||
|
variant = variantFromArg(splitInput[0]);
|
||||||
|
double size = Double.parseDouble(splitInput[1]);
|
||||||
|
int loopSize = Integer.parseInt(splitInput[2]);
|
||||||
|
int depth = Integer.parseInt(splitInput[3]);
|
||||||
|
double angle;
|
||||||
|
|
||||||
|
switch (variant) {
|
||||||
|
case AsymetricPythagorasTree:
|
||||||
|
angle = Double.parseDouble(splitInput[4]);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
angle = 45;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
PythagorasTreeSeed seed = new PythagorasTreeSeed(size, loopSize, depth, angle, variant);
|
||||||
|
return seed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PythagorasTree.PythagorasTreeVariant variantFromInput(String input) {
|
||||||
PythagorasTree.PythagorasTreeVariant variant;
|
PythagorasTree.PythagorasTreeVariant variant;
|
||||||
|
|
||||||
if (input.equalsIgnoreCase("SymetricPythagorasTree")) {
|
if (input.equalsIgnoreCase("SymetricPythagorasTree")) {
|
||||||
|
@ -84,6 +126,29 @@ public class Main {
|
||||||
return variant;
|
return variant;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static PythagorasTree.PythagorasTreeVariant variantFromArg(String input) {
|
||||||
|
PythagorasTree.PythagorasTreeVariant variant;
|
||||||
|
|
||||||
|
if (input.equalsIgnoreCase("1")) {
|
||||||
|
variant = PythagorasTree.PythagorasTreeVariant.SymetricPythagorasTree;
|
||||||
|
} else if (input.equalsIgnoreCase("2")) {
|
||||||
|
variant = PythagorasTree.PythagorasTreeVariant.AsymetricPythagorasTree;
|
||||||
|
} else if (input.equalsIgnoreCase("3")) {
|
||||||
|
variant = PythagorasTree.PythagorasTreeVariant.RegularRandomPythagorasTree;
|
||||||
|
} else if (input.equalsIgnoreCase("41")) {
|
||||||
|
variant = PythagorasTree.PythagorasTreeVariant.PisanoPythagorasTreeOne;
|
||||||
|
} else if (input.equalsIgnoreCase("42")) {
|
||||||
|
variant = PythagorasTree.PythagorasTreeVariant.PisanoPythagorasTreeTwo;
|
||||||
|
} else if (input.equalsIgnoreCase("43")) {
|
||||||
|
variant = PythagorasTree.PythagorasTreeVariant.PisanoPythagorasTreeThree;
|
||||||
|
} else if (input.equalsIgnoreCase("44")) {
|
||||||
|
variant = PythagorasTree.PythagorasTreeVariant.PisanoPythagorasTreeFour;
|
||||||
|
} else if (input.equalsIgnoreCase("45")) {
|
||||||
|
variant = PythagorasTree.PythagorasTreeVariant.PisanoPythagorasTreeFive;
|
||||||
|
} else variant = PythagorasTree.PythagorasTreeVariant.unselected;
|
||||||
|
return variant;
|
||||||
|
}
|
||||||
|
|
||||||
public static void playgroundSettings() {
|
public static void playgroundSettings() {
|
||||||
Scanner scanner = new Scanner(System.in);
|
Scanner scanner = new Scanner(System.in);
|
||||||
Options.setFrameTitle("PythagorasTree");
|
Options.setFrameTitle("PythagorasTree");
|
||||||
|
@ -125,11 +190,12 @@ public class Main {
|
||||||
System.out.println("No variant selected! Type in variant (To get the variants, type in 'help'):");
|
System.out.println("No variant selected! Type in variant (To get the variants, type in 'help'):");
|
||||||
String variantString = scanner.nextLine();
|
String variantString = scanner.nextLine();
|
||||||
if (variantString.equals("help")) variantHelp();
|
if (variantString.equals("help")) variantHelp();
|
||||||
variant = variantFromString(variantString);
|
variant = variantFromInput(variantString);
|
||||||
}
|
}
|
||||||
System.out.println(variant);
|
System.out.println(variant);
|
||||||
return variant;
|
return variant;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void variantHelp() {
|
public static void variantHelp() {
|
||||||
System.out.println("SymetricPythagorasTree:");
|
System.out.println("SymetricPythagorasTree:");
|
||||||
System.out.println("");
|
System.out.println("");
|
||||||
|
|
22
src/PythagorasTreeSeed.java
Normal file
22
src/PythagorasTreeSeed.java
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
/**
|
||||||
|
* Created by Christian on 11.02.2015.
|
||||||
|
*/
|
||||||
|
public class PythagorasTreeSeed {
|
||||||
|
public double size;
|
||||||
|
public int loopSize;
|
||||||
|
public int depth;
|
||||||
|
public double angle;
|
||||||
|
public PythagorasTree.PythagorasTreeVariant variant;
|
||||||
|
|
||||||
|
public PythagorasTreeSeed() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public PythagorasTreeSeed(double size, int loopSize, int depth, double angle, PythagorasTree.PythagorasTreeVariant variant) {
|
||||||
|
this.size = size;
|
||||||
|
this.loopSize = loopSize;
|
||||||
|
this.depth = depth;
|
||||||
|
this.angle = angle;
|
||||||
|
this.variant = variant;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue