[Project] Enphago - 한글 끝말잇기 AI 03. 학습하는 AI


학습하는 AI

플레이 할수록 강력해지는 AI 라는 것은 우선 게임을 할 때마다 학습한 것을 기록으로 남겨야한다. 그래야 학습이 누적되어 더욱 똑똑해진다. 이 때 기록은 로컬 저장소의 파일 입출력을 통해 구현하기로 했다. enphago 의 학습 방식은 다음과 같다.

  • 플레이어 패배 시 AI 가 마지막으로 사용한 단어 학습
  • 플레이어 승리 시 플레이어가 마지막으로 사용한 단어 학습
  • 플레이어가 사용한 단어 중 open API 를 통한 유효성 검사는 통과했지만 AIword_list 에 없는 단어 학습

단어를 학습하는 코드는 다음과 같다.

1

learning_list.txt 라는 별도의 텍스트 파일을 만들고 이 곳엔 학습한 단어를 저장한다. 이 리스트는 게임 실행 시 별도의 list 에 로드한다.

2

그리고 AI 턴에서 단어를 고를 때 learning_list 를 우선으로 탐색하여 학습한 단어를 우선적으로 출력할 수 있게 한다.

2.5

learningList 에 접근하는 타이밍은 학습하는 타이밍과 같이 게임의 승패가 결정났을 때이다.

  • 플레이어 승리 시 3

  • 플레이어 패배 시 4

AI 의 학습은 이렇게 간단한 아이디어와 간결한 코드로 구현할 수 있었다.

실행 결과

  • 플레이어를 패배시키고 학습한 예 5

  • 플레이어에게 패배한 후 학습한 예 6

위 사진과 같이 단어를 학습한 후 학습한 단어를 사용할 기회가 오면 즉시 사용하게 된다.

0%