Menu
CoddyTech

플레이어 이동시키기

Coddy Lua 여정의 논리와 흐름 제어 섹션에 포함된 레슨. 54개 중 29번째.

challenge icon

챌린지

쉬움

플레이어가 입력을 사용 가능한 출구와 대조하여 방 사이를 이동할 수 있도록 이동 시스템을 구현하세요.

이전 챌린지에서 제공된 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 컴파일러