학습하는 AI
플레이 할수록 강력해지는 AI
라는 것은 우선 게임을 할 때마다 학습한 것을 기록으로 남겨야한다. 그래야 학습이 누적되어 더욱 똑똑해진다. 이 때 기록은 로컬 저장소의 파일 입출력을 통해 구현하기로 했다. enphago
의 학습 방식은 다음과 같다.
- 플레이어 패배 시
AI
가 마지막으로 사용한 단어 학습 - 플레이어 승리 시 플레이어가 마지막으로 사용한 단어 학습
- 플레이어가 사용한 단어 중
open API
를 통한 유효성 검사는 통과했지만AI
의word_list
에 없는 단어 학습
단어를 학습하는 코드는 다음과 같다.
learning_list.txt
라는 별도의 텍스트 파일을 만들고 이 곳엔 학습한 단어를 저장한다.
이 리스트는 게임 실행 시 별도의 list
에 로드한다.
그리고 AI
턴에서 단어를 고를 때 learning_list
를 우선으로 탐색하여 학습한 단어를 우선적으로 출력할 수 있게 한다.
이 learningList
에 접근하는 타이밍은 학습하는 타이밍과 같이 게임의 승패가 결정났을 때이다.
-
플레이어 승리 시
-
플레이어 패배 시
AI
의 학습은 이렇게 간단한 아이디어와 간결한 코드로 구현할 수 있었다.
실행 결과
-
플레이어를 패배시키고 학습한 예
-
플레이어에게 패배한 후 학습한 예
위 사진과 같이 단어를 학습한 후 학습한 단어를 사용할 기회가 오면 즉시 사용하게 된다.
- Post link: https://blog.yjyoon.dev/project/2020/10/16/enphago-04/
- Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.