컴퓨터크래프트 강좌

[컴퓨터크래프트] 8. startup, 도어락

이제 지금까지 배우신걸 응용해볼껍니다.

그전에 마지막으로 배우실게 있는데, startup이란 파일이죠.

지금까지 프로그램 이름을 설정하신게 있으시죠? 뭐든지간에, 그 파일 이름을 startup으로 설정해놓으시면 컴퓨터가 부팅될때 자동으로 그 프로그램이 실행됩니다.

예를들어 제가 처음에 만들었던 hello 프로그램이 있습니다. 프로그램을 실행하면 컴퓨터가 Hello라고 말해주죠.

이 프로그램을 startup으로 해놓으면, 직접 실행시키지 않아도 컴퓨터가 켜질때마다 Hello라고 인사해주는 겁니다.

이제 startup을 이용해서, 도어락을 만들어볼껍니다.

이 스크립트의 출처는 컴퓨터크래프트 위키로 (http://computercraft.info/), 그냥 설명만 할겁니다.

while true do
 term.clear()
 term.setCursorPos(1, 1)
 print("Please Enter Password:")
 input = read("*")
 if input == "password" then
  redstone.setOutput("back", true)
  sleep(2)
  redstone.setOutput("back", false)
 end 

end이게 전부입니다. 이걸 startup으로 저장하시면 됩니다.

첫번째 while true do는, 무한 루프의 시작입니다.

이게 무한으로 반복하게 하는거죠.

두번째는 term.clear() - 이거는 전 글에 설명이 되어있습니다. 화면 전체를 깔끔하게 클리어해주죠.

그 다음엔 term.setCursorPos(1,1)

그리고 print("Please Enter Password:")가 있습니다.

term.setCursorPos(1,1)이 Please Enter Password:라는 문구를 항상 모니터 제일 왼쪽 위에 있게 해줍니다.

그리고 input = read("*")는 사용자가 비밀번호를 치는걸 기다리는겁니다. 그리고 ("*")는 입력한 문구가 그냥 그대로 asdf처럼 보이지 않고 *로 보이게 해줍니다.

그 다음, if input == "password" then 여기 "" 안에 "password" 안에 원하시는 비밀번호를 입력해주면 됩니다. 제 비밀번호가 okok99haha이길 원하면 if input == "okok99haha" then이 되는거죠.

이게 맞으면 레드스톤 신호를 현재 설정되있는 뒷쪽에 2초동안 보내고, 그다음 끕니다.

보내는게 redstone.setOutput("back", true), 2초동안 컴퓨터가 잠자게 하는건 sleep(2), 레드스톤 신호를 끄는게 redstone.setOutput("back", false)입니다. 여기서, 레드스톤 신호를 보내고싶은 곳으로 수정해야되는데, 위에는 top, 밑에는 back, 왼쪽은 left, 오른쪽은 right 등으로 설정해주면 됩니다.

end는 현재 무한 루프를 끊어주고, 그 밑에 엔드는 프로그램 종료를 합니다.

제가 설명했던데로, 비밀번호를 okok99haha로 바꾸고, 레드스톤 신호를 왼쪽으로 한거입니다.

계속 다른걸 입력하다, 마지막에 비밀번호를 입력한 것입니다.