- Program
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ram_1
{
internal class Program
{
static void Main(string[] args)
{
new App();
}
}
}
- App
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ram_1
{
public class App
{
//생성자
public App()
{
Console.WriteLine("App 생성자 실행");
SiegeTank tank = new SiegeTank(SiegeTank.Mode.Tank); //모드를 정의하려면 초기화해야 함
tank.onChangeMode = (beforeMode, afterMode) => {
Console.WriteLine($"{beforeMode} -> {afterMode}");
};
tank.ChangeMode(SiegeTank.Mode.Siege); // App에서 매서드가 매개 변수를 미리 받아 구동하는 형태가 익숙하지 않다. 어딘가에서 테이터를 받아오는 건데.. 실행은 유저의 입력부터 시작이라고 생각는데 익숙하기 때문임, 프로그램은 유저가 아니라 데이터랑 논다..
}
}
}
- SiegeTank
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ram_1
{
public class SiegeTank
{
// 모드 속성 정의
public enum Mode
{
Tank,
Siege
}
//맴버 변수
public Action<Mode, Mode> onChangeMode;
public Mode mode;
//생성자
public SiegeTank(Mode mode)
{
Console.WriteLine("SiegeTank 생성자 실행");
this.mode = mode;
}
public void ChangeMode(Mode mode)
{
Mode beforeMode = this.mode; // 비포애프터 모드라는 매개 변수로 선언되었으니까 쓸 수 있음
this.mode = mode; // 받은 시즈 모드를 지금 모드에 넣음
Console.WriteLine("모드 변신 중...");
Console.WriteLine("모드 변신 중...");
Console.WriteLine("모드 변신 중...");
onChangeMode(beforeMode,this.mode); // 전 모드와 지금 모드 출력
}
}
}
'게임 알고리즘' 카테고리의 다른 글
Action_버튼 누르기 (0) | 2024.08.19 |
---|---|
Action_히어로가 몬스터를 때림 (0) | 2024.08.19 |
Action_hero 이동 (0) | 2024.08.19 |
익명 매서드_임시 계산기 (1) | 2024.08.18 |
Delegate_대리자_이름은 하나인데 사용은 서너 개~ (0) | 2024.08.18 |