개요
Enphago
는 게임을 진행할수록 강력해지고 이기기 힘들어진다. 어떻게 그럴 수 있는지 한 번 살펴보자.
새로운 단어 학습
Enphago
는 3장
에서 언급했던 것처럼 초기에 기본적인 단어 리스트를 학습한 상태이다. 하지만 게임이 진행될 수록 enphago
는 이 리스트를 업데이트 한다.
따라서 최소한 플레이어가 아는 단어를 enphago
가 모르는 상황은 존재하지 않는다. 게임 횟수가 늘어날 수록 enphago
는 점점 더 많은 단어들을 알게 된다.
한 방 단어 학습
Enphago
학습의 꽃이라고 할 수 있다. 한 방 단어들을 학습하여 이를 우선적으로 내뱉는다. 한 방 단어를 학습하는 타이밍은 다음과 같이 두 가지가 있다.
- Enphago 가 승리했을 때
- Enphago 가 패배했을 때
Enphago
가 승리했을 때는 3장
에서 소개했듯이 힌트를 표시하기 위해 자신의 단어 리스트를 검색한다. 하지만 enphago
본인도 적절한 단어를 찾지 못했을 시에는 자신이 말한 단어를 한 방 단어 로 인식하고 업데이트 한다.
반면에 enphago
가 패배했을 때는 플레이어가 한 방 단어를 말했다고 인식한다. enphago
가 패배한 상황은 해당 단어가 여지 없이 한 방 단어라는 의미이기 때문에 바로 리스트를 업데이트한다.
Enphago
는 단어를 위와 같은 형태의 데이터
로 저장한다.
- word: 단어
- first: 단어의 첫 글자
- end: 한 방 단어 여부
여기서 enphago
가 한 방 단어를 발견하면 자신의 DB
에서 해당 단어의 end
값을 true
로 바꾼다. 그리고 추후 단어를 대답할 때 이 end
값을 확인하여 true
인 것을 우선적으로 내뱉는다.
따라서 게임 횟수가 늘어남에 따라 점점 enphago
를 이기기 힘들어진다. 학습이 많이 진행되면 아마 몇 턴 가지 못하고 한 방 단어가 등장하여 게임이 빨리 끝날 것이다.
마무리
이렇게 enphago
의 학습 기능까지 소개하여 모든 포스팅이 끝났다. 전적 기록과 같은 부가적인 기능에 대해선 따로 포스팅 하지 않았다.
현재 enphago
는 구글 플레이 스토어 게시 대기 중이다.
추후에 추가할 기능은 다음과 같다.
Enphago 끼리 게임을 진행하여 수많은 한 방 단어 를 스스로 학습하기
어플 내에서 enphago
학습시키기 기능을 추가해서 게임 난이도를 직접 올릴 수 있게 할 생각이다. 초기에 c언어
로 구현했을 당시에는 실제로 구현했던 기능이다. 안드로이드 앱에도 어렵지 않게 탑재할 수 있을 것 같다.
Github 저장소: https://github.com/yjyoon-dev/enphago-android