C에서 스네이크 게임을 약간 코딩하고 싶습니다. 게임 매트릭스를 표현하는 가장 좋은 방법이 무엇인지 알고 싶습니다.스네이크 그리드 표현하기
나는 2DArray 사용할 수 있습니다 (벡터 같은 < 벡터 < 지능>>) (예 : 0 아무것도, 1 뱀, 2 벽, 3 음식, ...) 다른 개체를 나타내는 일부 값이 포함되는 에를 다른 한편으로, 나는 그리드를위한 배열을 사용할 수없고, 다른 게임 객체를위한 배수 배열을 사용할 수 있습니다 (예 : 벡터 < Wall>, 벡터 < SnakeTile>, 벡터 < 음식>, ...).
std :: deque를 사용하여 내 뱀을 나타내야할까요?
도움 주셔서 감사합니다.
두 표현이 모두 정확하다고 생각합니다. 격자 모양의 표현은 메모리에서 더 많은 공간을 차지하지만 더 빠릅니다. "게임 개체"표현은 느리지 만 메모리에서 차지하는 공간이 적어서 논리가 더 낫습니다. 그래픽 라이브러리와 게임의 복잡성에 따라 다릅니다. 나는 개인적으로 뱀, 팩맨 등과 같은 간단한 아케이드 게임에 대한 그리드 표현을 선호합니다 ... – Hugal31
@ Hugal31 "게임 개체"가 더 빨라질 수 있습니다. 20x20의 그릴은 O (400) + O (n), n은 객체의 수입니다. 반면에, 당신은 O (42) 개체를 가지고 있습니다. 그래서 내 의견으로는, 해시 맵은 두 가지 장점을 모두 갖는 좋은 옵션입니다. 그리드를 반복 할 필요가 없으며 특정 사례에 액세스하려는 경우 O (1)과 O (log n) 사이에 뭔가가 있습니다. – Stargateur