2009-10-28 6 views
0

지뢰 찾기를 만들면서 사용자가 빈 셀을 누른 다음 확장되어 폭탄 셀에 도달 할 때까지 모든 빈 셀을 검색하는 최상의 알고리즘이 무엇인지 궁금합니다. 재귀적인 검색을 사용할 계획이지만 아마 프로세스가 느려질 것입니다.지뢰 찾기에서 빈 셀을 검색하는 알고리즘

감사합니다.

+4

데이터 양이 너무 적어서별로 중요하지 않습니다. –

답변

4

당신이 그래픽 검출을 묘사하고 있다면 나는 그것이 여러 단계가 (당신이 제안으로 국경을 성장) 할 가장 좋은 것입니다 말하고 싶지만 : 주변의 모든 항목을 찾아

  1. 이 (가) 광장에 클릭 공개 그것은 분명히 처리됩니다.
  2. 그 사각형을 밝히고 분명히 처리 된 것 근처의 모든 항목을 찾으십시오. 2 단계

사용자가 항상 선한 일이 볼 수있는 그 방법에서

  • 를 반복합니다. 어떤 애니메이션을 믹스하면 멋진 일이 될 수 있습니다.

  • 3

    Epsilon Prime의 솔루션은이를 구현하는 좋은 방법입니다.

    으로 할 수 있습니다.

    예 : 알고리즘 관점에서

    push the first empty cell/point 
    LOOP until queue non empty 
        pop.head cell and reveal it 
        push the empty surrounding cells of it (8 at maximum) 
        (you must flag the cells so you don't push them again, 
         ie dont push the cells that are already revealed) 
    
    2

    , 당신은 Breadth-First Search 또는 Depth-First Search로 잘못 갈 수 없어. Nick D's answer은 기본적으로 광범위한 우선 검색을 설명하지만 일반적으로 원하는 솔루션은 "사각형을보고있는 동안 사각형을 표시하고, 사각형에 폭탄이없는 경우 이웃 8 개 각각에 대해 아직 방문하지 않았으며, 방문한 것으로 표시하고 찾고있는 사각형 목록에 추가하십시오. " 보고있는 사각형 목록이 비어있을 때까지이를 반복하고 사용자가 클릭하는 사각형으로 시작하십시오.

    관련 문제