2022/01/03 2

스타크래프트 2 봇 개발 일지-3(Ocraft)

지난 번에 건설 작업 후 놀고 있는 일꾼에게 다시 명령을 내리는 것을 했었습니다. 이번에는 배럭 건설 및 마린 생산, 그리고 최종적으로 공격이다. 필수 메소드 private int countUnitType(Units unitType) { return observation().getUnits(Alliance.SELF, UnitInPool.isUnit(unitType)).size(); } 위 메소드는 해당 유닛 종류가 몇 기나 있는 지 반환해주는 메소드이다. 병영 건설 private void tryBuildBarracks() { if (countUnitType(Units.TERRAN_SUPPLY_DEPOT) < 1) { return; } if (countUnitType(Units.TERRAN_BARRACKS..

스타크래프트 2 봇 개발 일지-2(Ocraft)

지난 번에는 SCV 건설, 그리고 보급고 건설을 하였습니다. 이번에는 건설 직후, SCV가 노는 경우, 다시 작업에 착수하기 위한 코드를 작성할 것입니다. 일꾼 관리 스타크래프트2 같은 경우, 게임시작과 동시에 미네랄로 자동으로 보내주지만 그이후부터는 플레이어가 알아서 조절을 해야합니다. 그렇기때문에 건물 건설 등과 같은 미네랄 채취 외에 작업이 주어진 후에는 수동으로 다시 채취하도록 해야합니다. 보통 건물이 다 지어지면 자동으로 shift + 미네랄 우클릭을 해서 건물이 다 지어진 후 즉시 미네랄 채취 명령합니다. 이와 같이 개발하기 위해 제일 가까운 미네랄 하나를 찾아서 반환하여 놀고 있는 SCV에게 다시 미네랄을 채취하도록 합니다. private Optional findNearestMineralPa..