2016-08-17 2 views
0

저는 java를 처음 사용하고 Karel이 올바르게 돌아가는 방법으로 새로운 로봇 클래스를 만들려고합니다. 나는 시도하고 "로봇"을 포함하는 클래스 "RightTurnerRobot"를 확장 할 때, 나는 다음과 같은 오류가 발생합니다 :new Karel 우회전 로봇을 생성하는 중 생성자 오류가 발생했습니다.

Implicit super constructor Robot() is undefined for default constructor. Must define an explicit constructor

내 코드가 어떤 도움이 감사합니다, 다음과 같습니다.

import kareltherobot.*; 
import kareltherobot.Robot; 

import java.awt.*; 

public class RightTurnerRobot extends Robot implements RobotTask 
{ 

public void TurnRight() 
{ 
    turnLeft(); 
    turnLeft(); 
    turnLeft(); 
} 

static 
{ 
    World.setDelay(100); 

    World.setSize(10, 10); 
} 

    public void task() 
    { 
    //World.readWorld("src", "someworldname.kwld"); 

    UrRobot grace = new UrRobot(3, 3, East, 30); 
    grace.move(); 
    grace.turnOff(); 
    } 

편집 : 문제를 파악했습니다. Robot 대신 UrRobot을 확장해야했습니다. 그런 다음 생성자를 만들었습니다.

+0

여기에 'Robot' 클래스를 추가 할 수 있습니까? –

+0

@ImeshaSudasingha 그것의 도서관 조회 kareltherobot. – cunniemm

+0

로봇을 게시하는 이유는 무엇입니까? 표준 Java 클래스입니다. 물론 OP가 자신의 Robot 클래스를 만든 경우는 예외입니다. 어느 것이 지금 보입니까? 따라서 Robot 클래스에는 인수가없는 생성자가 없을 것입니다. – FredK

답변

0

확장자가 있기 때문에 Robot 클래스와 일치하는 생성자가 필요합니다.

import kareltherobot.*; 
import kareltherobot.Robot; 

import java.awt.*; 

public class RightTurnerRobot extends Robot implements RobotTask 
{ 

public RightTurnerRobot(int arg0, int arg1, Direction arg2, int arg3) { 
    super(arg0, arg1, arg2, arg3); 
} 

public void TurnRight() 
{ 
turnLeft(); 
turnLeft(); 
turnLeft(); 
} 

static 
{ 
World.setDelay(100); 

World.setSize(10, 10); 
} 

public void task() 
{ 
//World.readWorld("src", "someworldname.kwld"); 

UrRobot grace = new UrRobot(3, 3, East, 30); 
grace.move(); 
grace.turnOff(); 
} 

내 의견으로는 더 나은 방법은 이렇게하는 것입니다.

import kareltherobot.*; 
import kareltherobot.Robot; 

import java.awt.*; 

public class RobotWorld{ 

    //Create Robot 
    Robot robot; 

    public RobotWorld() { 
     //Initialize World 
     World.readWorld("PATH/TO/WORLD"); 
     World.setVisible(true); 

     //Initialize Robot 
     robot = new Robot(3, 3, Robot.East, 3); 
     turnRight(robot); 
    } 

    public void turnRight (Robot tempRobot) { 
     tempRobot.turnLeft(); 
     tempRobot.turnLeft(); 
     tempRobot.turnLeft(); 
    } 

    public static void main (String [] args) { 
     RobotWorld world = new RobotWorld(); 
    } 
} 
관련 문제