제1회 구름코드챌린지(GCC) 기출 문제
    • 01
      텍스트 코딩 정복
    • 문자열 출력
      사칙연산
      절대값 출력하기
      배열에서의 최소값 구하기
      구구단 출력
      약수 구하기
      부분 문자열
      평균과 평균보다 큰 수
      등차 / 등비 수열
      약수의 합
      유일한 수
      피자 쿠폰
      접미사 배열
      멀티탭 사용
      숫자 찍기
    • 02
      알고리즘 정복
    • 완전수 구하기
      소수 판별
      괄호
      어느 고고학자 이야기
      팰린드롬
      채점하기
      구름컵 사이클 대회
      앞 뒤가 같은 수
      탈출
      섬나라 왕
    • 03
      웹 서비스 만들기
    • 자바스크립트 DOM 제어
      XHR이용하여 Ajax 구현
      PHP서버로 json 응답
    • 04
      GUI 앱 만들기
    • Swing으로 카운터 만들기
      AWT로 메모 입력기 만들기
    • 05
      블록 프로그래밍 정복
    • 탱크 이동하기
      탱크 방향전환
      탱크 여러번 방향전환1
      탱크 여러번 방향전환2
      최적의 길을 찾아가기
    • 06
      블록으로 알고리즘 정복
    • 대포발사
      방향전환
      이동한뒤 대포발사
      십자모양의 길
      복잡한 길 이동하기
    • 07
      로보코드 대전 (블럭)
    • 가만히 있는 적 격파하기
      움직이는 적 격파하기
      공격하는 적 격파하기
      대결1
      대결2
      제한시간 안에 적 격파하기
      2개 로봇 동시에 격파하기
      2개 로봇 동시에 격파하기2
      벽타는 로봇 격파하기
      3개 로봇 동시에 격파하기
    • 08
      로보코드 대전 (코드)
    • 몸풀기
      심화함수
      최대속도, 최대회전각도 바꾸기
      대결1
      대결2
    • 09
      보너스 알고리즘/웹서비스
    • 구름 레이싱
      생화학 무기
      부라노섬
      배열 나누기
      스마트폰 테스트
      Javascript로 jsonp 구현하기
      php로 간단한 RESTful API 만들기
    • 10
      보너스 로보코드 정복
    • 3라운드 다승제 1
      3라운드 다승제 2
      3라운드 다승제 3
      4라운드 점수제 1
      4라운드 점수제 2
      4라운드 점수제 3
    심화함수
    배우기
    08 로보코드 대전 (코드)
    심화함수

    로봇이 동시에 이동과 회전을 할 수 있는 함수를 설명하겠습니다.

    this.setTurnLeft(각도) - 로봇이 이동할 때 로봇을 각도만큼 왼쪽으로 회전한다.
    this.setTurnRight(각도) - 로봇이 이동할 때 로봇을 각도만큼 오른쪽으로 회전한다.
    this.setTurnTurretLeft(각도) - 로봇이 이동할 때 포탑을 각도만큼 왼쪽으로 회전한다.
    this.setTurnTurretRight(각도) - 로봇이 이동할 때 포탑을 각도만큼 오른쪽으로 회전한다.
    this.setTurnRadarLeft(각도) - 로봇이 이동할 때 레이더를 각도만큼 왼쪽으로 회전한다.
    this.setTurnRadarRight(각도) - 로봇이 이동할 때 레이더를 각도만큼 오른쪽으로 회전한다.

    이 함수들은 set함수라고 부를것이며, 로봇의 이동함수 this.moveForwards 와 this.moveBackwards 함수 전에 사용하여, 이동함수가 실행할때 이동함수와 동시에 실행합니다.

    예를 들어

    prototype.onIdle = function() {
      this.setTurnLeft(45);

      this.moveForwards(100);
    }

    와 같이 대기중일때 함수를 구성한다면, 로봇은 대기중일때 왼쪽으로 꺽으면서 이동하는 곡선운동을 하게됩니다.

    주의할 점은 로봇이 100을 움직이는동안 45도 회전이 끝나면 100중에 남은거리는 직선운동을 하게된다는 것입니다.

    만약 이동함수가 끝났는데 set함수가 끝나지 않았더라도, 이동함수가 끝나면 그 이동함수전에 사용한 set함수들도 모두 종료됩니다.

    예를 들어서 


    prototype.onIdle = function() {
      this.setTurnLeft(360);

      this.moveForwards(10);
    }

    와 같이 함수를 구성한다면, 앞으로 10을 이동하는 중에 360도를 회전하라고 했지만, 최대회전속도로 인해 10이동중에 360도를 회전할 수 없습니다. 이럴 때 이동이 끝나면 남은 회전을 하는것이 아니라 회전함수도 끝나게됩니다.

    실습 내용

    로봇이 동시에 이동과 회전을 할 수 있는 함수를 설명하겠습니다.

    this.setTurnLeft(각도) - 로봇이 이동할 때 로봇을 각도만큼 왼쪽으로 회전한다.
    this.setTurnRight(각도) - 로봇이 이동할 때 로봇을 각도만큼 오른쪽으로 회전한다.
    this.setTurnTurretLeft(각도) - 로봇이 이동할 때 포탑을 각도만큼 왼쪽으로 회전한다.
    this.setTurnTurretRight(각도) - 로봇이 이동할 때 포탑을 각도만큼 오른쪽으로 회전한다.
    this.setTurnRadarLeft(각도) - 로봇이 이동할 때 레이더를 각도만큼 왼쪽으로 회전한다.
    this.setTurnRadarRight(각도) - 로봇이 이동할 때 레이더를 각도만큼 오른쪽으로 회전한다.

    이 함수들은 set함수라고 부를것이며, 로봇의 이동함수 this.moveForwards 와 this.moveBackwards 함수 전에 사용하여, 이동함수가 실행할때 이동함수와 동시에 실행합니다.

    예를 들어

    prototype.onIdle = function() {
      this.setTurnLeft(45);

      this.moveForwards(100);
    }

    와 같이 대기중일때 함수를 구성한다면, 로봇은 대기중일때 왼쪽으로 꺽으면서 이동하는 곡선운동을 하게됩니다.

    주의할 점은 로봇이 100을 움직이는동안 45도 회전이 끝나면 100중에 남은거리는 직선운동을 하게된다는 것입니다.

    만약 이동함수가 끝났는데 set함수가 끝나지 않았더라도, 이동함수가 끝나면 그 이동함수전에 사용한 set함수들도 모두 종료됩니다.

    예를 들어서 


    prototype.onIdle = function() {
      this.setTurnLeft(360);

      this.moveForwards(10);
    }

    와 같이 함수를 구성한다면, 앞으로 10을 이동하는 중에 360도를 회전하라고 했지만, 최대회전속도로 인해 10이동중에 360도를 회전할 수 없습니다. 이럴 때 이동이 끝나면 남은 회전을 하는것이 아니라 회전함수도 끝나게됩니다.

    질문하기