나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2025-10-25 01:50:25

PlayBot


<colbgcolor=#fff,#1c1d1f><colcolor=#0f1322> {{{#!wiki style="margin: -5px -10px"<tablealign=center><tablewidth=100%><tablebordercolor=#fff,#1c1d1f> 파일:PlayBot 사이트 로고.pngPlayBot
플레이봇과 놀자
}}}
종류 코딩 교육 플랫폼
언어 한국어
사이트
개설일
2014년[1]
영리 여부 비영리
접속 상태 접속 가능
링크 파일:홈페이지 아이콘.svg 공식 홈페이지
파일:홈페이지 아이콘.svg 공식 문서

1. 개요2. 상세3. 여담

1. 개요

고등학교 정보 교사가 만든 교육용 프로그래밍 언어 플랫폼. 알만툴처럼 기본적으로 캐릭터(봇)이 있어 이 녀석에게 무언가를 시킬 수 있다.

2. 상세

언어는 JavaScript이며, 여기에 봇 및 월드와의 상호작용을 위한 몇몇 함수가 추가되어 있다. 이 함수들에 대해서는 코드 만들기에서 맨 밑으로 내려가 명령어 사전을 눌러보면 확인할 수 있다. 대부분의 동작이 플레이봇용 함수로 이루어져 자바스크립트의 기본 문법을 익히는 정도로밖에 도움이 되지 않지만, 프로그래밍에 관해 백지인 상태에선 컴퓨터가 컴파일을 하는 방식을 이해하는데 그 언어들보다는 훨씬 더 도움이 된다. 배우기 훨씬 쉬우니 당연하다.

로그인을 하면 플랫폼의 클라우드에 작업한 파일의 내용을 저장해 놓을 수 있다. 이 저장에는 코드 저장과 월드 저장이 있는데, 웬만해서는 그냥 코드 저장으로 하는 것이 좋다. 그 이유는 월드 저장은 코드를 저장해 주지 않고 코드를 따로 저장해도 월드 불러오기가 코드를 안 불러와 주는데 코드 저장은 월드를 같이 저장해 주고 코드 불러오기는 코드와 월드를 같이 불러와 주기 때문이다. 잘 못하겠다면 분홍색 코드 블록의 모두 부분을 이용하자. 이걸 배워야 하는 사람은 손으로 move()를 치는 것보다 마우스로 누르는 것이 빠를 수 있다.

알만툴 이야기를 다시 하자면, 이 플랫폼에도 물품이라는 것이 있어 기본 오브젝트를 이용하여 배경을 꾸밀 수 있다. 물건, 비퍼 란에서 할 수 있다. 그런데 여기 물건 주기에 공식 물건과 사용자 물건이 있는데 이 사용자 물건은 요청하여 업로드 하는 것. 시작할 때 월드 설정에서 크기를 원하는 바에 맞게 알맞게 조정하는 일을 첫번째로 하길 추천한다. 30*20이 최대 크기이고 기본 크기는 10*10인데 나중에 바꾸려고 들면 미리 맵에 작업해 놓은 오브젝트와 맵 편집이 다 사라질 수 있기 때문. 방금 말한 월드 편집으로 벽을 만들 수 있다.

오브젝트를 맵에 추가하는 방법은 '월드 편집'을 누르고 원하는 칸을 클릭하고 토마토를 누르자. 그러면 그냥 '물건, 비퍼'를 눌렀을 때 나오는 창이 나온다. 참고로 이 창을 이용하면 봇한테 물건을 줄 수 있다.
어지간해서는 로봇을 둘 이상 만들지 말자. 모든 코드마다 어떤 로봇한테 일을 행하는지 다 붙여줘야 하고 로봇을 다시 지워도 스크립트 찌꺼기가 남는지 계속 붙이라고 한다. 만약 실수로 만들었는데 못해먹겠다면 코드는 복사하고 맵은 포기해서 다시 시작하는 것이 나을 수도 있다. 이게 코드 줄도 아낀다... 월드 불러오기에서 예제가 있는 사람은 예제를 가져올 수 있다. 이 경우 내 월드를 제외한 월드에서는 코드도 같이 가져와 지니 참고.

3. 여담

turn_right = () => repeat("turn_left()", 3)

// while문 안에는 클리어 조건의 부정이 들어가야 한다.
while (true) {
if (right_is_clear()) {
turn_right()
move()
} else {
if (front_is_wall())
turn_left()
else
move()
}
}
}}}
이런 식으로 예제라고 모두 믿을 수 있는 것은 아니다. 다만 그런 예제들은 위 처럼 조잡하게 프로그래밍되어있지 않고 체계적으로 잘 되어있으므로 예제를 잘 이해하고 그런 방식들을 익히면 알고리즘 면에서나 최적화 면에서 이득을 보는 법을 깨닫게 되므로 이후 프로그래밍을 배울 때 도움을 받을 수 있을 것이다.
* 프로그래밍 창에서 캐릭터를 계속 클릭하면 그만 누르라고 하고, 그래도 계속 누르면 짜증나니까 답하지 않겠다고 하면서 응답하지 않는다.[3] 1~10번 누르면 내 이름은 r1 입니다. 라고 하고, 11번째부터 말이 달라지다가 16~20번째 누르면 .....이라고 한다. 21번째 누르면 1번째 누른 것과 결과가 같다.

[1] 플레이봇 오픈 통계[2] 우선법 문서에도 나와 있지만 이 방법도 시작할 때 우수, 플레이 봇의 경우 시작하는 곳의 봇의 오른쪽이 미로의 섬일 경우에는 불가능하다. 이 경우 밑에 나오는 코드를 좌선법으로 바꾸고 위에서 설명한 예시의 스택제를 적용하여 섬에 스택이 쫙 쌓이는 것을 감지할 수 있게 하고 그럴 경우 좌수법을 이용하게 if문 등을 이용해 코드를 설정해 놓으면 해결된다. 참고로 좌수법도 시작할 때 왼손이 미로의 섬만 아니면 모든 맵을 통과할 수 있기에 두 가지를 조합하면 완벽하다. 다만 우수법이나 좌수법을 옳게 사용하고 있는 상황에서 스택제가 문제를 또 발생 시킬 수 있으니 스택이 적어도 3번 이상 쌓였을 때 반응하게 만드는 것이 좋다. 무슨 말이냐면 우수법이나 좌수법이나 지나가다 보면 분명 막힌 길을 돌아 나오면서 갔던 길을 다시 되돌아오는 경우가 많기에 스택2로서는 미로의 섬만 감지할 수는 없다는 것.[3] 근데 5번 더 누르면 다시 자기 이름을 이야기한다.