2012-12-01 5 views
2

나는 티크 타크 발가락을 만들었습니다. 각 보드 상태를 감안할 때, A.I. 1 정확한 장소를 반환합니다. (움직임이 똑같은 경우에도 매번 같은 동작을 선택합니다. 임의의 것을 선택하지 않습니다.)Tic Tac Toe A.I.을 어떻게 테스트 할 수 있습니까? 완벽하니?

나는 A.I.

그래서 재귀 함수로, A.I. 주어진 보드에 대한 이동을 만든 다음, 다른 모든 플레이가 가능한 모든 이동을하도록하고 각각의 가능한 이동에 대해 새 보드로 자체에서 재귀 함수를 호출합니다.

A.I가 처음으로 진행될 때와 다른 하나가 먼저 진행될 때이를 수행합니다. 이들을 함께 추가합니다. 나는 418 개의 가능한 승리와 115 개의 가능한 타이, 그리고 0 개의 가능한 패로 끝난다.

하지만 지금 내 문제는 어떻게하면 최대 금액을 최대화 할 수 있는가입니다. 이 통계를 무언가와 비교할 필요가 있지만 비교 대상을 알아낼 수는 없습니다.

+3

스스로 재생합니다. –

+0

@JakobBowyer : https://www.youtube.com/watch?v=NHWjlCaIrQo – hammar

+0

@hammar http://www.youtube.com/watch?v=6uVunn6Vux4 –

답변

5

위키 백과에 대한 기사를 읽었습니까? 보드의 상태를 고려할 때 단말기의 link

번호

를 위치, 계정 보드 대칭으로 (즉, 회전 및 반사)을 촬영 한 후, 전용 138 단자판 위치가있다. 그 X를 가정하면, 첫 번째 이동마다 만든다 :

  • 91 개 고유 위치가 고유 위치가 (O)
  • 3 개 고유 위치 그려 의해 획득되는
  • 44 (X)에 의해 획득된다를

가능한 게임의 수

대칭을 고려하지 않고 가능한 게임의 수를 255,168 개의 가능한 게임으로 이끄는 정확한 공식으로 직접 결정할 수 있습니다. 그 X를 가정하면 첫 번째 이동 때마다한다 :

  • 131184 개 완성 된 게임이 완성 된 게임에 의해 획득되는
  • 77904 (X)로 승리됩니다 (O)
  • 46,080 완성 된 게임이 그려

먼저 제 138 개 단자판 위치를 생성 할 수있다

또는

Y 오, 당신의 A.I.을 임의 필드에 충분한 테스트를 실행하고 여기 link

Win in 5 moves 1440  0.6% 
Win in 6 moves 5328  2.1% 
Win in 7 moves 47952 18.8% 
Win in 8 moves 72576 28.4% 
Win in 9 moves 81792 32.1% 
Draw    46080 18.1%  
Total    255168 100.0% 
+0

131,184의 승리와 418의 승리를 어떻게 비교합니까? 이 통계를 내 결과와 어떻게 비교하는지, 그건 내 질문입니다. – Thomas

+0

첫 번째 단락의 91 + 44 + 3 = 138 보드 설정. AI를 실행합니다. 승리/손실/그려진 횟수를 비교하십시오. – akaRem

+0

138 보드 설치 방법은 무엇입니까? – Thomas

0

당신 수 실제로 폭력 게임에서 통계 결과를 비교하고, 승리 전략이 될 때마다 것을 입증 할 수있다 올바른 이동을 선택합니다. 그럼, 당신은 모든 위치에 대해 당신의 A.I. 다른 플레이어가 무작위로 플레이하고 있다고 가정하고 승리 전략을 가질 기회를 최대화하는 이동을 선택합니다. 그렇게 많은 가능성이 없으므로 모든 것을 제거 할 수 있어야합니다.

다른 플레이어가 실제로 약간 지능적이라고 가정하여 가능성의 공간을 크게 줄일 수도 있습니다. 즉각적인 승리를 가져 오는 이동을 항상 차단하려고합니다.

+0

255168 게임. 승인. 몇 가지 결과가 있습니다. 51 %의 승리, 40 %의 손실, 9 %의 무승부. 좋든 나쁘니? – akaRem

0

akaRem의 답변에 대한 한 가지 문제점은 최적의 플레이어가 전체 배포본처럼 보이지 않아야한다는 것입니다. 예를 들어, 방금 쓴 플레이어가 무작위로 게임을하는 사람의 90 %를 이기고 시간의 10 %를 묶습니다. 두 플레이어가 무작위로 게임을하는 경우 akaRem의 통계가 일치해야합니다. 두 명의 최적의 선수가 항상 동점을 맺습니다.