我正在制作一个制作分形的程序,并且假设用户选择他们要分形的颜色。唯一的问题是颜色变量在“if”语句之外不起作用。这是我的代码:(问题在于public void fractalEngine
笔颜色的设置位置。这些verifiedChoice
变量是在 if 语句中启动的,并且似乎不会延续到代码的其余部分。)
import java.awt.*;
import java.util.Scanner;
class anotherClass
{
World worldObj = new World();
Turtle m = new Turtle(100, 340, worldObj);
Scanner in = new Scanner(System.in);
public void hello()
{
System.out.println("This program is a fractal engine");
System.out.println("A fractal shape is a geometric shape that represents");
System.out.println("the whole shape, no matter what level of scale");
System.out.println();
System.out.println("Your fractal picture will have three different colors,");
System.out.println("Please pick three of the following:");
System.out.println("RED, GREEN, BLUE, ORANGE, BLACK, YELLOW, MAGENTA, PINK");
System.out.println("NOTE: Type your choices just like they appear.");
System.out.println();
}
public void fractalEngine(int pxLength, String fractalRule)
{
System.out.println("Choice #1 out of 3: ");
String choice1 = in.nextLine();
if(choice1.equals("RED") || choice1.equals("GREEN") || choice1.equals("BLUE") || choice1.equals("ORANGE") || choice1.equals("BLACK") || choice1.equals("YELLOW") || choice1.equals("MAGENTA") || choice1.equals("PINK"))
{
System.out.println("Your first choice has been set to " + choice1);
String verifiedChoice1 = choice1;
}
else
{
System.out.println("That choice is not valid, your first choice will now be red");
String verifiedChoice1 = "RED";
}
System.out.println("Choice #2 out of 3: ");
String choice2 = in.nextLine();
if(choice2.equals("RED") || choice2.equals("GREEN") || choice2.equals("BLUE") || choice2.equals("ORANGE") || choice2.equals("BLACK") || choice2.equals("YELLOW") || choice2.equals("MAGENTA") || choice2.equals("PINK"))
{
System.out.println("Your second choice has been set to " + choice2);
String verifiedChoice2 = choice2;
}
else
{
System.out.println("That choice is not valid, your second choice will now be green");
String verifiedChoice2 = "GREEN";
}
System.out.println("Choice #3 out of 3: ");
String choice3 = in.nextLine();
if(choice3.equals("RED") || choice3.equals("GREEN") || choice3.equals("BLUE") || choice3.equals("ORANGE") || choice3.equals("BLACK") || choice3.equals("YELLOW") || choice3.equals("MAGENTA") || choice3.equals("PINK"))
{
System.out.println("Your thrid choice has been set to " + choice3);
String verifiedChoice3 = choice3;
}
else
{
System.out.println("That choice is not valid, your thrid choice will now be blue");
String verifiedChoice3 = "BLUE";
}
m.setHeading(0);
String subData = "";
m.turn(30);
for(int n = 0; n < fractalRule.length() ; n=n+1)
{
subData = fractalRule.substring(n, n+1);
if(subData.equalsIgnoreCase("F"))
m.forward(pxLength);
else if(subData.equals("+"))
m.turn(120);
else if(subData.equals("-"))
m.turn(300);
else if(subData.equals("1"))
m.setPenColor(verifiedChoice1);
else if(subData.equals("2"))
m.setPenColor(verifiedChoice2);
else if(subData.equals("3"))
m.setPenColor(verifiedChoice3);
else if(subData.equalsIgnoreCase("Q"))
m.hide();
}
}
}
public class complexFractal
{
public static void main(String[] args)
{
int lineLength = 15;
String rule = "1F-F+F-F-F-F+F-F+F-F+F-F-F-F+F-F-F-F+F-F-F-F+F-F+F-F+F-F-F-F+F-F+F-F+F-F-F-F+F-F+F-F+F-F-F-F+F-F-F-F+F-F-F-F+F-F+F-F+F-F-F-F+F-F2+F-F+F-F-F-F+F-F+F-F+F-F-F-F+F-F-F-F+F-F-F-F+F-F+F-F+F-F-F-F+F-F+F-F+F-F-F-F+F-F+F-F+F-F-F-F+F-F-F-F+F-F-F-F+F-F+F-F+F-F-F-F+F-F3+F-F+F-F-F-F+F-F+F-F+F-F-F-F+F-F-F-F+F-F-F-F+F-F+F-F+F-F-F-F+F-F+F-F+F-F-F-F+F-F+F-F+F-F-F-F+F-F-F-F+F-F-F-F+F-F+F-F+F-F-F-F+F-FQ";
anotherClass ac = new anotherClass();
ac.hello();
ac.fractalEngine(lineLength, rule);
}
}