는 다음을 수행 할 수 있습니다, 사전에 배치됩니다 :
- 명확한 보드를 가져옵니다. 쌍을 이루기 위해 카드 세트를 페어링하십시오.
- 나머지 세트 중 한 쌍을 가져 오십시오. 세트가 하늘의 경우, 알고리즘의 결과로서 채워진 보드를 제공한다.
- 게임 플레이 단계에서 두 장소를 모두 사용할 수 있도록 두 카드를 모두 보드에 배치합니다. 사용할 수있는 장소가 없으면 이전 페어를 잘못 배치 했으므로 스택에서 상태를 팝하고 해당 상태에서 다른 위치를 시도해야합니다.
- 스택 상태를 푸시합니다.
- 이동
트릭 당신이 보드가 원하고 시작하고,이 쌍을 제거하는 상태 시퀀스 구성함으로써, 이길 수 상태로 이어질 수 있도록 레이어 (한 쌍)를 추가한다 2.. 분명히 피라미드의 임의의 사용 가능한 위치에 무작위 쌍을 추가 할 수 있습니다. 예를 들어 마지막 2 개 장소가 실제 게임 플레이 중에 픽업 할 수 없게되는 경우가 종종 있습니다. 이는 취소 할 상황입니다. 이전 게재 위치, 아마도 하나뿐입니다. 그리드 공간에 깊이 값을 입력하여이 상황을 해결할 수 있습니다. 여유 공간의 최대 깊이가 배치되지 않은 쌍의 수와 같으면 가장 큰 위치가 무작위 대신 채워집니다.
게임에 한 번에 하나의 카드를 사용하는 경우 다음 카드를 선택할 때 추가 확인이 수행되어야합니다. - 나머지 카드 세트가 연결되지 않은 경우. 당신은 4를 모두 골 랐고, 3과 5는 모두 unpicked 세트로 남아 있습니다. 즉, 이전 단계에서 다른 카드를 선택하기 위해 철회해야합니다. 알고리즘은 다음과 같을 수 있습니다.
- 빈 격자를 준비하고 배치 할 카드 세트를 준비하십시오.
- 재귀 진입 점. -1 (첫 번째)을 전달하면 사용 가능한 전체 카드 세트를 선택하십시오. 처음이 아니라면 이전에 선택한 카드를 기반으로 유효한 카드 세트를 선택하십시오 (예 : 4, 3을 모두 선택, 5를 모두 선택, 허용되는 경우 4를 모두 선택). 세트를 섞는다. 세트가 비어 있고 사용 가능한 모든 카드 세트가 비어 있으면 재귀에서 true로 리턴하고, 그렇지 않으면 false를 리턴하십시오.
- 세트에서 다음 카드를 선택하십시오. 남아있는 것이 없으면 실패로 인해 재귀에서 벗어나십시오.
- 현재 카드를 제거하면 남은 카드 세트가 중단되는지 확인하십시오. 예이면 3으로 가십시오.
- 그리드에서 빈 자리를 선택하고 거기에 선택한 카드를 놓습니다.
- 현재 카드의 값, 업데이트 된 그리드 및 축소 된 카드의 축소 세트로 재귀를 입력하십시오 (상태 저장, 2로 이동).
- 재귀 결과가 false이면 5에서 작업을 취소하고 3으로 이동합니다. true 인 경우 재귀를 true로 유지합니다.
이것은 게임의 규칙과 프로세스에 따라 크게 달라질 수 있습니다. 설명을 바탕으로 그래프를 만들면 2 장의 카드가 이웃이라는 것을 알 수 있습니다. 두 장의 카드 사이에 가장자리가있는 경우 그 중 하나가 이전 또는 다음 인 경우 다른 카드의 –