2013-07-25 2 views
0

나는 현재 Actionscript 3를 사용하여 카드 게임을 개발 중이고 적어도 하나의 승리 가능성을 확신하는 방법을 궁금해하고 있습니다.카드 게임 : win play

게임이 하나와 유사한 게임 플레이가 있습니다

https://play.google.com/store/apps/details?id=com.gameduell.cleopatraspyramidnew&hl=en https://itunes.apple.com/us/app/cleopatras-pyramid/id401141292?mt=8

플레이어는 이전 또는 선물 카드의 다음 값을 matchs 카드를 재생할 수 있습니다.

다른 방법을 시도했지만 여전히 만족하지 않습니다.

내가 알고 싶었던 것은 숨겨진 카드에서 적어도 하나의 승리 한 게임이 있다는 것을 확신하는 방법입니다. 따라서 플레이어는 승리 할 수있는 가능성이 있습니다. 모든 카드 감안할 때

감사

+0

이것은 게임의 규칙과 프로세스에 따라 크게 달라질 수 있습니다. 설명을 바탕으로 그래프를 만들면 2 장의 카드가 이웃이라는 것을 알 수 있습니다. 두 장의 카드 사이에 가장자리가있는 경우 그 중 하나가 이전 또는 다음 인 경우 다른 카드의 –

답변

0

는 다음을 수행 할 수 있습니다, 사전에 배치됩니다 :

  1. 명확한 보드를 가져옵니다. 쌍을 이루기 위해 카드 세트를 페어링하십시오.
  2. 나머지 세트 중 한 쌍을 가져 오십시오. 세트가 하늘의 경우, 알고리즘의 결과로서 채워진 보드를 제공한다.
  3. 게임 플레이 단계에서 두 장소를 모두 사용할 수 있도록 두 카드를 모두 보드에 배치합니다. 사용할 수있는 장소가 없으면 이전 페어를 잘못 배치 했으므로 스택에서 상태를 팝하고 해당 상태에서 다른 위치를 시도해야합니다.
  4. 스택 상태를 푸시합니다.
  5. 이동

트릭 당신이 보드가 원하고 시작하고,이 쌍을 제거하는 상태 시퀀스 구성함으로써, 이길 수 상태로 이어질 수 있도록 레이어 (한 쌍)를 추가한다 2.. 분명히 피라미드의 임의의 사용 가능한 위치에 무작위 쌍을 추가 할 수 있습니다. 예를 들어 마지막 2 개 장소가 실제 게임 플레이 중에 픽업 할 수 없게되는 경우가 종종 있습니다. 이는 취소 할 상황입니다. 이전 게재 위치, 아마도 하나뿐입니다. 그리드 공간에 깊이 값을 입력하여이 상황을 해결할 수 있습니다. 여유 공간의 최대 깊이가 배치되지 않은 쌍의 수와 같으면 가장 큰 위치가 무작위 대신 채워집니다.

게임에 한 번에 하나의 카드를 사용하는 경우 다음 카드를 선택할 때 추가 확인이 수행되어야합니다. - 나머지 카드 세트가 연결되지 않은 경우. 당신은 4를 모두 골 랐고, 3과 5는 모두 unpicked 세트로 남아 있습니다. 즉, 이전 단계에서 다른 카드를 선택하기 위해 철회해야합니다. 알고리즘은 다음과 같을 수 있습니다.

  1. 빈 격자를 준비하고 배치 할 카드 세트를 준비하십시오.
  2. 재귀 진입 점. -1 (첫 번째)을 전달하면 사용 가능한 전체 카드 세트를 선택하십시오. 처음이 아니라면 이전에 선택한 카드를 기반으로 유효한 카드 세트를 선택하십시오 (예 : 4, 3을 모두 선택, 5를 모두 선택, 허용되는 경우 4를 모두 선택). 세트를 섞는다. 세트가 비어 있고 사용 가능한 모든 카드 세트가 비어 있으면 재귀에서 true로 리턴하고, 그렇지 않으면 false를 리턴하십시오.
  3. 세트에서 다음 카드를 선택하십시오. 남아있는 것이 없으면 실패로 인해 재귀에서 벗어나십시오.
  4. 현재 카드를 제거하면 남은 카드 세트가 중단되는지 확인하십시오. 예이면 3으로 가십시오.
  5. 그리드에서 빈 자리를 선택하고 거기에 선택한 카드를 놓습니다.
  6. 현재 카드의 값, 업데이트 된 그리드 및 축소 된 카드의 축소 세트로 재귀를 입력하십시오 (상태 저장, 2로 이동).
  7. 재귀 결과가 false이면 5에서 작업을 취소하고 3으로 이동합니다. true 인 경우 재귀를 true로 유지합니다.