1
0
Fork 0

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:
Jan Christian Grünhage 2015-02-11 12:26:23 +01:00
parent 0e86f60d2b
commit 494d13bba3
2 changed files with 103 additions and 15 deletions

View File

@ -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("");

View 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;
}
}