플레이어 이동시키기
Coddy Lua 여정의 논리와 흐름 제어 섹션에 포함된 레슨. 54개 중 29번째.
챌린지
쉬움플레이어가 입력을 사용 가능한 출구와 대조하여 방 사이를 이동할 수 있도록 이동 시스템을 구현하세요.
이전 챌린지에서 제공된 startingRoom, gardenRoom, player 변수를 사용하세요.
게임 루프를 수정하여 이동 명령을 처리하세요.
- 시작 코드에서 방을 연결합니다. 도서관에서
east로 가면 정원에 도착하고,west로 가면 돌아옵니다. - 플레이어가 현재 있는 방의 설명을 출력합니다.
- 프롬프트
"> "(보다 큼 기호 뒤에 공백)를 줄바꿈 없이 출력합니다. io.read()를 사용하여 사용자의 명령을 읽습니다.- 명령이 현재 방의
exits테이블에 있는 키와 일치하는지 확인합니다. - 일치하면
player.currentRoom을 해당 출구에 저장된 방으로 업데이트합니다. - 명령이
"quit"이면 루프를 종료하도록gameRunning을false로 설정합니다.
사용자가 "quit"을 입력할 때까지 루프가 계속되어야 합니다.
참고: io.write("> ")는 줄바꿈을 추가하지 않으므로, 다음 출력 줄(방 설명)은 원시 출력 스트림에서 프롬프트 바로 뒤의 같은 줄에 표시됩니다. 각 루프 반복에서 방 설명이 한 줄로 출력된 다음, 줄바꿈 없이 > 가 출력되므로 다음 설명은 같은 줄에서 이어집니다.
예상 출력 형식 (입력: east, 다음으로 quit):
You find yourself in a dusty library filled with ancient books and scrolls.
> A hidden garden with overgrown plants and a small fountain.
> 직접 해보기
-- 방 정의
local startingRoom = {
description = "You find yourself in a dusty library filled with ancient books and scrolls.",
exits = {}
}
local gardenRoom = {
description = "A hidden garden with overgrown plants and a small fountain.",
exits = {}
}
-- east / west를 사용해 출구 설정
startingRoom.exits = {
east = gardenRoom
}
gardenRoom.exits = {
west = startingRoom
}
-- 플레이어
local player = {
currentRoom = startingRoom
}
-- 게임 루프
local gameRunning = true
-- TODO: 여기에 while 루프 작성
논리와 흐름 제어의 모든 레슨
직접 연습해 보세요: 온라인 Lua 컴파일러