2012-11-17 4 views
1

나는 누군가가 올바른 방향으로 나를 가리킬 수 있기를 바랍니다. 나는 Farkle이라는 주사위 게임을 가지고있다. 이 게임은 Two Player 게임으로 잘 작동합니다. 이제 One Player 게임용 인공 지능을 구현하고 싶습니다. 근본적으로 나는 현재의 주사위 점수가> = 300이라면 주사위를 Human Player에게 넘겨주기를 원합니다. 모든 주사위를 사용하고 6 개의 주사위를 다시 굴릴 수있는 것과 같은 몇 가지 다른 것들이 있습니다.AI 주사위 게임 FARKLE

전 자바/안드로이드 세계를 처음 접했으니, 어디서부터 시작해야하는지 모르고, 주사위 AI 예제의 예제를 찾으십시오. 포커를 위해 몇 가지를 찾았지만, 그들이 필요로하는 방식이 더 복잡하거나 문제가 이해 될 수 있다고 생각합니다. 어떤 아이디어?

BTW ... 나는 기꺼이 도울 수있는 사람에게 게임 소스 코드를 기꺼이 보낼 것입니다.

미리 감사드립니다.

+0

좀 더 구체적으로 알려주세요. 게임에서 어떤 기능을 수행 할 수 없는지는/if 문이라고 가정 해 봅시다. –

+0

좀 더 구체적인 방법을 모르겠지만 노력하겠습니다. 휴먼 플레이어가 끝나면 휴먼 플레이어 (일반 2 인 게임) 또는 AI 중 하나를 확인합니다. 만약 AI가 주사위를 굴려 "SOME HOW"를 선택하면 가능한 주사위가 300 이상이면 올바른 주사위를 굴리고 다시 주사위를 굴리지 않으면 플레이어 1에게 넘겨 주면 ... ' if/else 문으로 처리하십시오. 그것은 최선의 선택 일 수 있습니다. 이것이 내가 묻는 이유입니다 ... 나는 정말로 무엇을 해야할지 모르겠습니다. – Sobo

답변

2

솔직히 말해서 나는 당신을 도울 수있는 AI 라이브러리를 모른다. 또한 개념을 이해하고 AI가 어떻게 통합 될 수 있는지를 이해하기 위해 실제로 farkle 규칙을 읽어야했습니다. 따라서 두 가지 옵션이 내 마음 속에 들어 오지만 자신을 구현해야합니다.
1. 신경망을 사용하십시오. 네트워크는 아마도 backpropagation을 사용하여 훈련 될 것입니다. 오류로 아마도 6 개의 주사위 (아마도 6 개의 출력 뉴런으로 모델링 될 수 있습니다)의 차이를 300에서 합계로 사용할 수 있습니다. 조금만 검색하면 자바 라이브러리 나 소스를 찾기가 어려울 것입니다. 코드 예제.
2. 유전자 알고리즘 사용. 실제로는 꽤 좋은 라이브러리 JGAP이 있습니다. 염색체는 6 개의 주사위를 모두 굴린 결과이며 피트니스 기능이 점수가됩니다.
물론 위에 언급 한 두 경로 모두 매우 일반적이며 정확하지 않을 수 있습니다. 특정 AI 개념/알고리즘에 익숙해 져야 할까봐 걱정됩니다. farkle 게임은 인공 지능 패키지 (예를 들어 체스와 같은)를 가지고있는 것이 일반적이 아니기 때문에, 당신이 직접 라이브러리를 사용하여 직접 구현해야 할 것이라고 믿습니다. 희망이 도움이됩니다.

+0

나는 그 중 하나를 이해하기 시작하기에 충분한 교육을받은 사람이 거의 없다. 나는 당신이 제공했던 2 개의 링크를 보았다. 그리고 나는 헤드 라이트에서 사슴과 같았다. 나는 나보다 앞서 아주 긴 길을 볼 수있다. 적어도 내 질문에 답할 시간을내어 주셔서 감사합니다. – Sobo

+0

나는 조금 더 실용적인 방법으로 감사를 말할 수 있다고 생각하지만 환영합니다. 어쨌든. 나는 AI 경로를 따라 행운이 있기를 바란다. :) –