문제

FSA 그래프로 표현하려는 Pac-MAC와 유사한 게임을 고려하십시오. 우리는 미로 (테이블)가 있고 임의의 위치에 장과가 있습니다. 목표는 미로에서 모든 열매를 먹는 것입니다. 제어를 위해 고려해야 할 명령은 다음과 같습니다.
goahead, 왼쪽, 오른쪽, checkberry (Pac Man 앞에 베리가 있는지 확인), 먹고 미로를 먹습니다.
우리는 최대 10 단계가 필요합니다. 고맙습니다

편집하다: Alt Text http://img338.imageshack.us/img338/2479/graphp.jpg

그래 그리고 나서. 그래프를 만들었지 만 틈을 과도하게하는 방법을 찾을 수 없습니다. 예를 들어 : 특정 열매 행 후 미로에서 갑자기 갑자기 앞쪽에 간격이 있으며 다음 베리는 바로 그 차이가 있습니다. 따라서 왼쪽이나 오른쪽으로 돌아가더라도 CheckBerry 명령이 True 값을 반환하지 않아도 내 그래프가 어떻게 보일지 잘 모르겠습니다. 따라서 Pac Man이 식사없이 갭 스퀘어로 이동하는 방법이 있어야하지만 앞면 또는 다른 사람으로 이동할지 여부를 어떻게 결정 할 것인가?

도움이 되었습니까?

해결책

디자인하는 경우 a 상태 다이어그램, 먼저 어떤 종류의 것을 알아 내십시오 당신의 상태 머신 주를 매수하는 대신 가질 것입니다.

다음은 간단한 예입니다. "Pac Man" 될 필요가있다 걷기, 점검 및 식사. 그래서 세 가지 상태가 있습니다 IS_WALKING, IS_CHECKING 그리고 IS_EATING. 똑바로 가로 지르고 식사를위한 다이어그램은 아래 그림과 같습니다. 어떤 종류의 다이어그램 표기법을 사용하고 있는지 잘 모르겠습니다.

                     GO_AHEAD
       +------------------------------------+
       |                                    |
       v                                    |
+----------------+      false            +------------+
| IS_CHECKING    |---------------------->| IS_WALKING |
+----------------+                       +------------+
| E: CHECK_BERRY |                          ^
+----------------+                          |
       |                                    |
       | true                               |
       v                                    |
 +-----------+               EAT            |
 | IS_EATING |------------------------------+
 +-----------+

전환은 주에 적절한 이름을 갖는 후에는 더 자연스럽고 파악하기가 더 쉽습니다. State의 좋은 이름의 예는 State Machine이 특정 순간에 무엇을하고 있는지 명확하게 설명하는 것입니다.

다른 팁

이런 종류의 질문에 대한 StackoverFlow의 도움을 찾고 있다면; 당신은 분명히 당신이하고있는 일을 살펴 봐야합니다. 귀하의 질문은 더 구체적이어야합니다. 특정 코딩 문제에 문제가 있습니까? 아니면 어디서부터 시작 해야할지 모르십니까? 이것은 사소한 발췌문이거나 완전한 프로젝트가 될 수 있습니까?

하고 싶은 일에 대한 마인드 맵을 만들고 현재 가지고있는 기술로 어디에서 갈 수 있는지 확인하십시오. 실제 문제가 발생하면 다시 오십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top