노베이스 지방 국비충


객체 지향 코딩이 뭔지 감을 못 잡고 있었는데

강사님이 오늘 주신 예제인 Duck 을 보고

왜 상속을 잘 안 쓰고 인터페이스가 갑인지 깨달음





메소드를 클래스 단위로 선언해서 인터페이스에 임플하고

그 인터페이스를 부모 클래스 같은데다가 합성해버리는데 와 신세계 ㅋㅋ


이렇게 객체 지향 코딩이 뭔지 감 잡았으니

이제 이런 구조를 활용해서 게임을 만들래

그래서 난 스타크래프트 컴까기를 만들기로 함


https://youtu.be/mD4GbGmvNRc

StarCraft - Terran Theme 1StarCraft Music - Terran Theme 1 (Playing at 1080P is recommended due to file compression)youtu.be






기지, 일꾼, 보병, 차량, 뱅기 유닛 5가지 정도로 두고

유닛의 사이즈 소형, 중형, 대형에 따라 주고 받는뎀 상성을 줬음

하드 코딩으로 플레이어가 테란임 테저전으로 일단 고정해놨음


플레이어와 컴퓨터는 번갈아가면서

유닛 생성과 전체 어택땅을 할지 말지 결정할 수 있음


컴퓨터는 스스로 주사위 굴려서 (0~1 사위 난수로) 결정하는데

플레이어와 최소한의 싸움이란걸 성립하기 위해서

특정 범위 난수면 해당 유닛을 2배로 생성하는 보너스를 주기도하고

전진하기 전 앞열의 플레이어 유닛수를 체크해서

엄대엄 각 이상이 안 보이면 진출 안하도록 함


어택땅인데다가 가까운 애랑 싸운다 메커니즘 구현 안해놔서

배열상 앞에 있는 애부터 일점사니까 상성+뭉치기가 젤 중요하거든



메인 쓰레드 코드







일꾼 한도는 12기로 했음








배열 앞부터 일점사 메커니즘이라

본진 열에 들어오게하면 쌉손해임

그래서 오기 전까지 원기옥 모으다가

앞마당 정리해주러 나감









앞마당 정리하고 살 떨리는 엄대엄 각 대치 현장







컴퓨터가 할만하다고 생각했는지 들어옴







바로 후열에서 땡마린 뽑아놓던거 합류시켜서 정리함






한타 압도하고 그대로 밀어서 승리 ㅋㅋ