2014-02-04 1 views
0

У меня возникли трудности с моей структурой класса. Я разместил свой код ниже. Проблема, с которой я сталкиваюсь, заключается в определении того, как использовать значения сканера в меньших функциях. Я пытаюсь использовать свои значения N и S для двух функций снежинки.черепаха в Java не работает - класс

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); 
     } 
    } 
    } 
} 
+0

Вы сталкиваетесь с какой-либо ошибкой? –

+0

Да, я получаю X в моей программе затмения, говоря, что мне нужно изменить S и N. Кроме того, я не уверен, где инициализировать функцию черепахи, поскольку она необходима как для drawsnowflake, так и для snowflakepart. – user2908101

+0

Этот код не компилируется. Даже если это произошло, вы ничего не делаете с вашей черепахой после ее создания. – 2rs2ts

ответ

1

Я рискну предположить, поскольку вы не предоставляете много информации. Самая большая проблема, которую я вижу с вашим кодом, заключается в том, что вы ошибаетесь в неправильном месте. Возможно, вы хотите сделать что-то вроде этого:

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); 

       } 
      } 
     } 
+0

Спасибо @ 2rs2ts, но у меня все еще такая же проблема с S и N. После того как я закрываю основную функцию, он говорит мне, что S и N не используются. – user2908101

+0

@ user2908101, если вы скопировали код spacitron напрямую, как указано выше, конечно нет. Вы должны дать черепахе некоторые инструкции. Я предлагаю вам использовать методы класса 'Snowflake' и посмотреть, что произойдет. – 2rs2ts

+0

@ user2908101 Я бы хотел помочь вам, но если вы не знаете, как назвать методы, возможно, вам нужно следовать нескольким учебникам для начинающих, прежде чем ожидать, что другие решат ваши проблемы. – spacitron

Смежные вопросы