2013-10-27 5 views
0

, 나는 문자열을 가지고 말을 내가 원하는 걸의 정확한 구문은 아니지만, 사람이 내가 그것을 만들 수있는 간단한 방법을 알고 않습니다문자열 알고리즘을 실제 코드로 변환하는 방법은 무엇입니까? 예를 들어

hunger > 80 then findFood();

또는

distanceTo sun < 30 then moveAwayFrom(sun);

그래서 나는 그것을 게임의 엔티티에 전달할 수 있으며 기본적으로이를 따를 것입니다. 현재 봄에 마음에 드는 유일한 것은 지정된 문자열을 구문 분석하는 if 문을 막대한 블록으로 작성하는 것입니다.하지만 실제로는 그렇게 비효율적이라고 느낍니다.

나는 내가 여기에 정말 간단한 일이 내려다 보이는 해요 경우 바로보고, 두 번째 의견을 싶습니다/

+0

간단한 [재귀 적 파서] (http://en.wikipedia.org/wiki/Recursive_descent_parser) 만 작성할 수 있습니다. – BartoszKP

+0

당신은 반성과 함께 펑키 할 수 있지만 자신의 온건함을 생각해보십시오. –

+0

물론 있습니다. [ANTLR] (http://www.antlr.org/)과 같은 것은 언어 문장을 구문 분석합니다. –

답변

3

하지 쉬운 일이! 기본적으로 말하는 것은 언어를 만들어야한다는 것입니다.

이 언어는 구문 분석하고 명령을 생성 할 수있는 모든 가능한 명령을 설명합니다.

이제 너는 "이런, 전에 언어를 쓰지 않았어!"라고 생각할 수도 있습니다. 여기에 ANTLR이 들어 있습니다. 언어에 맞는 문법을 작성한 다음 명령을 디코딩해야하는 파서/렉서를 생성 할 수 있습니다. ANTLRWorks이라는 ANTLER와 작업하기위한 IDE를 얻을 수 있으며 getting started tutorial을 확인해야합니다. 당신은 위키 페이지에 대한 문제의 "저주"를 극복해야하며 여기서 잠수해야합니다.

길을 따라 더 쉽고 효율적으로 명령을 인코딩하여 나중에 디코딩 할 수 있습니다. 가능한 대안으로는 Python, JavaScript 또는 Lua와 같은 명령을 인코딩/디코딩하는 데 사용할 스크립팅 언어가 포함되어 있습니다. 루아가 전에 게임에서 사용 된 것을 보았습니다. 게임에서 인기가있는 이유에 대한 성명서를 읽을 수 있습니다. here. 행운을 빕니다!

관련 문제