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) {
|
||||
PythagorasTree.PythagorasTreeVariant variant;
|
||||
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
|
||||
if (input != null) variant = variantFromString(input);
|
||||
else variant = variantInput(scanner);
|
||||
|
||||
double size = squareSizeInput(scanner);
|
||||
int loopSize = loopSizeInput(scanner);
|
||||
int depth = depthInput(scanner);
|
||||
double angle = 45;
|
||||
|
||||
if (variant == PythagorasTree.PythagorasTreeVariant.AsymetricPythagorasTree) angle = angleInput(scanner);
|
||||
PythagorasTreeSeed seed;
|
||||
if (input != null) {
|
||||
seed = getSeedFromArg(input);
|
||||
} else {
|
||||
seed = getSeedFromInput();
|
||||
}
|
||||
double size = seed.size;
|
||||
int loopSize = seed.loopSize;
|
||||
int depth = seed.depth;
|
||||
double angle = seed.angle;
|
||||
PythagorasTree.PythagorasTreeVariant variant = seed.variant;
|
||||
|
||||
for (int i = 0; i < loopSize; i++) {
|
||||
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;
|
||||
|
||||
if (input.equalsIgnoreCase("SymetricPythagorasTree")) {
|
||||
|
@ -84,6 +126,29 @@ public class Main {
|
|||
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() {
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
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'):");
|
||||
String variantString = scanner.nextLine();
|
||||
if (variantString.equals("help")) variantHelp();
|
||||
variant = variantFromString(variantString);
|
||||
variant = variantFromInput(variantString);
|
||||
}
|
||||
System.out.println(variant);
|
||||
return variant;
|
||||
}
|
||||
|
||||
public static void variantHelp() {
|
||||
System.out.println("SymetricPythagorasTree:");
|
||||
System.out.println("");
|
||||
|
|
|
@ -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 New Issue