Karel

(버전 사이의 차이)
이동: 둘러보기, 찾기
(KarelOOP Version 2)
(Karel의 확장)
69번째 줄: 69번째 줄:
 
클래스와 동일하게 하면, 프로그램의 시작과 동시에 해당 World가 등장한다. 예를 들어 어떤 World의 이름을 SampleProgram.w 로
 
클래스와 동일하게 하면, 프로그램의 시작과 동시에 해당 World가 등장한다. 예를 들어 어떤 World의 이름을 SampleProgram.w 로
 
저장하였다면 위 프로그램을 실행하자마자 SampleProgram.w가 뜨게 된다.
 
저장하였다면 위 프로그램을 실행하자마자 SampleProgram.w가 뜨게 된다.
 
 
== Karel의 확장 ==
 
제시된 Karel이 마음에 안들면 새로운 Karel 클래스를 작성하면 된다. 예를 들어 벽까지 전진하는 Karel을 만들어보자. 이것은 <code>SuperKarel</code>를 계승하여 만들도록 한다.
 
<source lang="java">
 
public class MyKarel extends SuperKarel {
 
    public void moveToWall() {
 
        while(frontIsClear())
 
            move();
 
    }
 
}
 
</source>
 
 
그런 다음 이 <code>MyKarel</code>을 이용하는 프로그램을 작성하면 다음과 같다.
 
<source lang="java">
 
import stanford.karel.OopKarelProgram;
 
 
public class AnotherProgram extends OopKarelProgram {
 
 
@Override
 
public void run() {
 
MyKarel karel = (MyKarel)getKarel();
 
 
karel.moveToWall();
 
}
 
 
public static void main(String[] args) {
 
OopKarelProgram.main(args, new MyKarel());
 
}
 
 
}
 
</source>
 
  
  

2020년 10월 20일 (화) 16:21 판

목차

설치

  1. 다음을 다운로드한다.
  2. 프로젝트에서 오른쪽 마우스 버튼을 눌러 Properties를 선택한다. 그리고 Java Build Path/Libraries 탭을 선택한다.
  3. Add External JARs 버튼을 눌러 다운로드 받은 두 개의 JAR 파일을 추가한다.

Karel 프로그램 작성법

KarelOOP Version 2 (2020.10)

KarelOOP2.jar 라이브러리를 이용할 경우 main() 메소드를 아래와 같이 작성한다.

import hufs.dislab.karel.IKarel;
import hufs.dislab.karel.IKarelProgram;
 
public class SimpleProgram extends IKarelProgram {
    IKarel karel;
 
    // 화면이 처음 등장할 때 호출되는 메소드이다.
    // 즉, start 버튼을 누르기 직전 호출되는 메소드이다.
    @Override
    public void onInit() {
        karel = getIKarel();
    }
 
    // start 버튼을 누르면 실행되는 코드이다.
    // 이 메소드는 main 스레드에서 실행된다.
    @Override
    public void onStart() {
        karel.move();
    }
}

KarelOOP Version 1

KarelOOP.jar 라이브러리를 이용할 경우 main() 메소드를 아래와 같이 작성한다.

import stanford.karel.OopKarelProgram;
 
public class SampleProgram extends OopKarelProgram {
    @Override
    public void run() {
        Karel karel = getKarel();
 
        karel.move();
        karel.turnLeft();
    }
 
    public static void main(String[] args) {
        OopKarelProgram.main(args, new Karel());
    }
}

이 프로그램을 실행하면 아래와 같은 World가 등장한다.

Karel-World.png

여기서 Start Program 버튼을 클릭하면 프로그램의 run() 메소드가 실행된다.

OopKarelProgram.main() 메소드의 두 번째 인자에는 동작할 Karel 객체를 설정한다. 이 객체가 위 그림에 있는 Karel 객체이다.

이 Karel 객체를 프로그램에서 구하는 방법은 SampleProgram의 인스턴스 메소드(instance method)에서 getKarel() 메소드를 호출하면 된다.

World 만들 때의 유의점

World는 원하는 형태대로 만들 수 있다. 이것은 Edit World 버튼을 눌러 World를 수정한다. 이때 World의 이름을 시작하는 클래스와 동일하게 하면, 프로그램의 시작과 동시에 해당 World가 등장한다. 예를 들어 어떤 World의 이름을 SampleProgram.w 로 저장하였다면 위 프로그램을 실행하자마자 SampleProgram.w가 뜨게 된다.


Karel's World

다음은 미리 만들어놓은 World이다. 다운로드 받아서 사용하면 된다.


참고 자료

개인 도구
이름공간
변수
행위
둘러보기
구성원
연구
연구실
기타
도구모음
인쇄/내보내기