[ Reference ] Gym Match 3
개요
gym match3는 강화 학습을 위한 환경으로, Match-3 보드 복제를 통해 새로운 레벨 생성
1. Console command
- Import Match3Env 및 선언
- 활성화 함수 호출
- observation, reward, done, info = env.step(env.action_space.sample())
2. Initialize
1) level.py
레벨 설정
Levels에 저장된 level(0,-1로 이루어진 일정 패턴을 가진 array)들의 Height, width, shapes의 최댓값을 dimenstion으로 설정(level들 간 크기 차이가 있어도 학습 가능)
2) game.py
게임 설정
매치 가능 블록 탐색 방향, 이동 방향 설정 : 2차원 배열이므로 위, 아래, 왼쪽, 오른쪽
Reset()을 통한 보드 설정,Levels 중 1개를 랜덤하게 선택 후 이를 template으로 지정.
Template과 같은 크기의 empty board를 생성하여 0부터 Level.n_shapes까지의 랜덤하게 숫자 채움
저장한 최대 dimension보다 작을 경우 패딩 하여 크기를 늘려 줌.
Empty board와 Expand template 결합하여 보드 생성
get_available_actions()을 통한 액션 설정
- 현재 Board의 각 cell들을 point로 설정하고 이 point가 이동할 수 있는 가짓수를 중복하지 않게 순서 없이 저장한다.
3. step
step(), 활성화 함수를 통해 플레이를 진행
- 첫 번째 action 선택 후 이를 swap
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.