스타크래프트2-인공지능 7

스타크래프트2 인공지능 봇을 만들어보자 (#6)

이전까지 작성하였던 모든 코드를 적용시키고자한다. from pysc2.env import sc2_env from pysc2.agents import base_agent from pysc2.lib import actions,units,features import random from absl import app MAPNAME = 'Simple64' APM = 300 APM = int(APM / 18.75) UNLIMIT = 0 VISUALIZE = True REALTIME = True PLAYER_SELF =features.PlayerRelative.SELF SCREEN_SIZE = 84 MINIMAP_SIZE = 64 MOVE_MINIMAP = 332 BUILD_SUPPLYDEPOT = 91 BUILD_..

스타크래프트2 인공지능 봇을 만들어보자 (#5)

본격적인 공격 유닛인 마린(해병)을 생산해보고자 한다. barracks = [unit for unit in obs.observation.feature_units if unit.unit_type == units.Terran.Barracks] elif len(barracks) == 1 and not self.unit_type_is_selected(obs,units.Terran.Barracks): barrack = barracks[0] return actions.FUNCTIONS.select_point("select",(brrack.x,brrack.y)) elif self.unit_type_is_selected(obs,units.Terran.Barracks) and self.can_do(obs,TRAIN_MA..

스타크래프트2 인공지능 봇을 만들어보자 (#4)

정찰 코드를 만들고 나서 생각을 해보니 딱히 필요하진않겠지만, 응용할 수는 있을 것이라 생각하였다. 그래서 정찰 코드를 사용은 하지않지만 남겨는 둘 예정이다. 해당 코드는 scout으로 옮기기로 하고, 서플라이 디폿과 배럭을 짓는 코드를 구현하고자한다. 저그를 제외한 종족들은 일꾼이 건물을 짓지만 사라지지는 않기에 가만히 있는 IDLE 상태가 된다. 해당 IDLE상태인 일꾼을 다시 일하도록하여야하지만 저자의 실력이 좋지않아 다시 일하도록 하지 못하였다. 다시 서플라이디폿에 대한 로직을 간단히 세워보자면 1) 서플라이 디폿을 건설 가능한가 2) 최대 보급량 - 현재 사용된 보급량 > 4 가 충족됐는가 3) 현재 서플라이 디폿을 건설 중일 때에 또 건설할 필요는 없다. 4) 미네랄 캐고 있던 일꾼 하나를 선..

스타크래프트2 인공지능 봇을 만들어보자 (#3)

필요한 내용들도 있고, 구현하고자 하는 초반 기능들이 있었기에 보급고를 짓는 코드는 다음번으로 미루었다. 먼저 세분화를 먼저 시켜야 추후 작업할 때 편할 것을 생각하여 Config과 Absinthe, 그리고 main으로 나누었다 Config에서는 맵 설정, 스크린 및 미니맵 사이즈 조절, APM 조절 및 자신의 종족, 상대의 종족 등을 세팅하는 곳이다 Absinthe는 Config에서 필요한 내용을 가져와 사용을 하여 모든 것을 조종하는 곳이며, main은 실행하는 곳이다. 먼저 Config 부터 살펴보자면 from pysc2.env import sc2_env from pysc2.lib import features # 맵 이름 MAPNAME = "Simple64" # 스크린 및 미니맵 사이즈 조절 SCR..

스타크래프트2 인공지능 봇을 만들어보자 (#2)

스타크래프트 2 인공지능을 본격적으로 구현하고자 갈치와 서로 머리를 맞대어 생각한 결과 봇의 이름과 종족을 정하였습니다. 종족은 테란으로 하기로 결정하였습니다. 이름은 '실험용 기계', '더 봇 (The Bot)', '스타 플레티넘 봇'등의 안건이 나왔으나 어차피 재미로 만드는 봇이기도 하고, 구현하고 싶은 모든 기능들을 다 넣는 잡동사니처럼 만들 것 같기에 '하울의 움직이는 성'도 생각하였으나, 위 모든 안건들과 생각들을 잊어버리기 위해 술 이름으로 하기로 하였습니다. 소주나, 막걸리 같은 술도 생각하였으나, 테란 설정 상 제정신이 박혀있는 사람들이 거의 없다는 점을 참고하여 봇의 이름을 '압생트'로 결정하였다. 먼저 #1에서 설정한 것을 토대로 먼저 모듈을 불러오고 작업을 시작하겠습니다. from p..

스타크래프트2 인공지능 봇을 만들어보자 (#1)

스타크래프트 2 인공지능 세팅을 하는 데 있어 개인적으로 어려움이 있었으나, 다행히 해결하였다. 이 글을 참고하는 것을 추천합니다. 저는 위 글을 최대한으로 참고하였지만 스타크래프트2 설치를 F드라이브에 하여 적용시키는 데 고생하였으나 방법을 알아냈습니다. 저처럼 스타크래프트2 의 위치가 참고글과 다른 분들을 위해 작성합니다. 더보기 1) 배틀넷에 들어간뒤, 스타크래프트2 플레이 버튼 옆에 있는 설정에서 '탐색기에서 보기'로 들어갑니다. 2) 스타크래프트2 위치로 이동되었으면 해당 파일 안에 'Maps'라고 파일을 추가해주세요. 3) 'Maps' 안에 맵 파일을 넣어주세요. ※ 맵 파일들은 다운이 안 되는 경우가 있기에 첨부 파일로 넣어두겠습니다. 맵 설정을 다 끝내셨다면 파이썬을 다운받아주세요 3.4 ..

스타크래프트2 인공지능 봇을 만들어보자 (#0)

친구와 함께 산책을 하며, 수다를 나누는 중에 스타봇에 대한 얘기가 나왔고, 친구는 스타크래프트 2가 스타크래프트 브루드 워 보다 더 쉬우니, 한 번 만들어보는 거 어때? 라고 말을 하였습니다. 현재 할 것은 많지만, 충동적이게 개발을 하고 싶기에 개발을 할 예정입니다. 8월 2일부터 개발을 하여 방학이 많이 남아있지 않은 관계로 빠르게 8월 15일에 마무리를 지어야 합니다. 모든 것을 저 혼자 하기에는 무리가 있어 스타크래프트 2 봇을 만들어보기를 제안한 친구와 함께 개발을 할 것입니다. 저는 프로그래밍 및 테스트 역할을 수행할 것이고, 갈치(제 친구의 별명입니다.)는 저에게 피드백, 전략, 자료들을 찾아줄 것입니다. 1일 1 커밋처럼 1일 1 블로그를 할 계획입니다. 종족은 아직 정하지 못 하였습니다..