Difference between revisions of "기본 Karel 프로그램 예제"

From DISLab
Jump to navigation Jump to search
(Created page with "* Stanford Karel Library (karel.jar) * HUFS Karel Library (hufs-karel.jar) === pom.xml 수정 === pom.xml을 다음과 같이 수정한다. <syntaxhighlight lang="xml"> ... <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.6</maven.compiler.source> <maven.compiler.target>1.6</maven.compiler.target> </properties> <dependencies> ... <dependenc...")
 
Line 1: Line 1:
=== Karel 라이브러리 ===
* [[media:karel.jar | Stanford Karel Library (karel.jar)]]
* [[media:karel.jar | Stanford Karel Library (karel.jar)]]
* [[media:hufs-karel.jar | HUFS Karel Library (hufs-karel.jar)]]
* [[media:hufs-karel.jar | HUFS Karel Library (hufs-karel.jar)]]

Revision as of 12:43, 18 July 2022

Karel 라이브러리

pom.xml 수정

pom.xml을 다음과 같이 수정한다.

...
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.6</maven.compiler.source>
    <maven.compiler.target>1.6</maven.compiler.target>
  </properties>

  <dependencies>
    ...
    <dependency>
      <groupId>hufs.karel</groupId>
      <artifactId>oopkarel3</artifactId>
      <version>3.0</version>
    </dependency>
  </dependencies>
...

첫 번째 HUFS Karel 프로그램

첫 번째 HUFS Karel 실행 화면
import hufs.karel.HKarel;
import hufs.karel.HufsProgram;

public class FirstHKarelProgram extends HufsProgram {

    @Override
    protected void onStart() {
        HKarel karel = (HKarel)getHObject("철수");

        karel.move();
        karel.move();
    }

    public static void main(String[] args) {
        HufsProgram.main(args, new HKarel("철수"));
    }
    
}
  • Start 버튼을 누르면 onStart가 실행된다.

두 번째 HUFS Karel 프로그램

SecondHKarelProgram 실행 화면
SecondHKarelProgram 실행할 경우 발생하는 오류
import hufs.karel.HKarel;
import hufs.karel.HufsProgram;

public class SecondHKarelProgram extends HufsProgram {

    HKarel karel;

    @Override
    protected void onInit() {
        karel = new HKarel("철수", 5, 5);
    }

    @Override
    protected void onStart() {
        while (true) {
            if (karel.frontIsBlocked())
                karel.turnLeft();
            karel.move();
        }        
    }
    
    public static void main(String[] args) {
        HufsProgram.main(args, null);
    }

}
  • Start 버튼을 누르기 전에 onInit()가 실행된다. 그러므로 Start 버튼을 누르기 전에 초기화 해야 할 코드는 이곳에 작성한다.
  • Start 버튼을 누르면 onStart()가 실행된다.
  • add() 메소드를 이용하여 생성한 Karel을 월드에 추가하지 않으면 오류가 난다.

두 번째 HUFS Karel 프로그램 수정 버전

생성한 객체를 월드에 추가해야 나타남

수정한 SecondHKarelProgram 실행 화면
import hufs.karel.HKarel;
import hufs.karel.HufsProgram;

public class SecondHKarelProgram extends HufsProgram {

    HKarel karel;

    @Override
    protected void onInit() {
        karel = new HKarel("철수", 5, 5);
        karel.setColor(BLUE);
        karel.setColorOfBody(YELLOW);
        karel.setColorOfFoot(GREEN);
        karel.setColorOfMouth(RED);
        add(karel);     // 생성한 HKarel을 월드에 추가
    }

    @Override
    protected void onStart() {
        while (true) {
            if (karel.frontIsBlocked())
                karel.turnLeft();
            karel.move();
        }        
    }
    
    public static void main(String[] args) {
        HufsProgram.main(args, null);
    }

}