Java中的海龟不是工作类
我的班级结构有困难。我已经在下面发布了我的代码。我遇到的问题是确定如何在较小的函数中使用scanner值。我尝试使用我的N和S值来表示我的两个雪花函数Java中的海龟不是工作类,java,turtle-graphics,Java,Turtle Graphics,我的班级结构有困难。我已经在下面发布了我的代码。我遇到的问题是确定如何在较小的函数中使用scanner值。我尝试使用我的N和S值来表示我的两个雪花函数 import java.util.Scanner; public class Snowflake { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter S: ");
import java.util.Scanner;
public class Snowflake {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter S: ");
int S = sc.nextInt();
System.out.println("Enter N: ");
int N = sc.nextInt();
Turtle turtle = new Turtle(0, 0, 60);
public void snowflakepart(S, N) {
int z = 1;
if (N > 0) {
turtle.goForward(S);
if (N > 1) {
turtle.turnLeft(120.0);
while (z <= 5) {
snowflakepart(S/3, N-1);
turtle.turnRight(60.0);
turtle.turnRight(180.0);
turtle.turnLeft(180.0);
turtle.goForward(S);
turtle.turnRight(180.0);
}
}
}
}
public void drawSnowflake(S,N) {
int y = 1;
while (y <= 6) {
snowflakepart(S,N);
turtle.turnLeft(60.0);
}
}
}
}
import java.util.Scanner;
公共类雪花{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入S:”);
int S=sc.nextInt();
System.out.println(“输入N:”);
int N=sc.nextInt();
海龟=新海龟(0,0,60);
公共空间雪花部分(S、N){
intz=1;
如果(N>0){
乌龟(S),;
如果(N>1){
乌龟。左转(120.0);
而(z由于您没有提供太多信息,我冒昧猜测一下。我看到您的代码的最大问题是,您将错误的东西放在了错误的位置。也许您想这样做:
public class Snowflake {
Turtle turtle;
//Create a Turtle object here since you'll use it in this class' methods.
public Snowflake(){
turtle = new Turtle(0, 0, 60);
}
public static void main(String[] args) {
//Get a reference to your SnowFlake object here and then use this part for
//user interaction only
SnowFlake flake = new Snowflake();
Scanner sc = new Scanner(System.in);
System.out.println("Enter S: ");
int S = sc.nextInt();
System.out.println("Enter N: ");
int N = sc.nextInt();
//Call your functions here with the parameter your users just entered
}
//These 2 methods belong to the SnowFlake class and so they need to be
//declared in its body
public void snowflakepart(int S, int N) {
int z = 1;
if(N > 0) {
turtle.goForward(S);
if(N>1){
turtle.turnLeft(120.0);
while(z<=5){
snowflakepart(S/3, N-1);
turtle.turnRight(60.0);
turtle.turnRight(180.0);
turtle.turnLeft(180.0);
turtle.goForward(S);
turtle.turnRight(180.0);
}
}
}
}
public void drawSnowflake(int S, int N) {
int y = 1;
while(y <= 6){
snowflakepart(S,N);
turtle.turnLeft(60.0);
}
}
}
公共类雪花{
海龟;
//在这里创建一个Turtle对象,因为您将在这个类的方法中使用它。
公众雪花{
海龟=新海龟(0,0,60);
}
公共静态void main(字符串[]args){
//在此处获取对雪花对象的引用,然后将此部分用于
//仅限用户交互
雪花=新雪花();
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入S:”);
int S=sc.nextInt();
System.out.println(“输入N:”);
int N=sc.nextInt();
//使用用户刚刚输入的参数在此处调用函数
}
//这两个方法属于SnowFlake类,因此需要
//在其正文中声明
公共无效雪花部分(整数S,整数N){
intz=1;
如果(N>0){
乌龟(S),;
如果(N>1){
乌龟。左转(120.0);
虽然(zAre您是否遇到了某种错误?是的,我在eclipse程序中得到了X,表示我需要更改s和N。此外,我不确定在何处初始化turtle函数,因为drawsnowflake和Snowflake部分都需要它。此代码不会编译。即使它编译了,您在构建turtle后也不会对其进行任何操作。修复了此问题。)您的缩进,但是您似乎有语法错误,只在其他两个方法之后关闭main方法。也许这只是您的输入错误?看起来它们不需要是全局的。您可以调用drawSnowFlake()
从您的主方法中,并将用户刚才提供的N
和S
值赋予它。此外,您需要定义两个方法声明中N
和S
的变量类型。从外观上看,可能是int
?谢谢@2rs2ts,但我对S和N仍然有相同的问题。Aft呃,我关闭了主函数,它告诉我S和N没有被使用。@user2908101如果你像上面那样直接复制spacitron的代码,当然不会。你需要给海龟一些说明。我建议调用你的Snowflake
class'方法,看看会发生什么。@user2908101 I“我很想进一步帮助您,但如果您不知道如何调用方法,在期望其他人解决您的问题之前,可能需要遵循一些初学者教程。谢谢大家。我已经解决了。