본문 바로가기

프로그래밍375

디자인 패턴 공부 - 경량패턴의 학습 -2- 안녕하세요? 지난번 포스팅에서 어떻게 경량 패턴을 공부 하면서 chat GPT가 만들어 준 예제를 그저 분석해 보기만 했었는데, 그것만 가지고서는 어떻게 되지 않아서, 한번 제 식대로 변형을 시켜서 써먹어 보는 실습을 진행해 보고자 했습니다. 일단 이렇게 까지 할 필요가 있느냐 하지만, 이렇게 안 하면 제 것으로 만들기 안되는 것이 문제라면 문제라는 생각이 듭니다. 먼저 인터페이스 IDatas를 선언해 주고 나서, 다음으로 몬스터 데이터라는 클래스를 만들어 주도록 합니다. 여기서 중요한 것은 역시 클래스명을 선언하고 나서 public 클래스 명으로 클래스가 선언이 될 때 매개변수를 받아올 수 있도록 만드는 것 입니다. 그 다음으로 몬스터를 생성하기 위한 몬스터 팩토리 클래스를 만들어 보도록 합니다. 여기.. 2024. 2. 20.
디자인 패턴 공부 - 명령패턴의 학습 -5- 안녕하세요? 어떻게 디자인 패턴에 대해서 공부를 하면서 디자인 패턴을 왜 처음으로 마주했냐 하면, 게임을 만들면서 피할 수 없는 문제가 입력을 하는 일이 있어야 하고, 이 과정을 생각하면 처음으로 마주치는 문제라면 문제라고 할 수 있어 보입니다. 아무튼 지난번 포스팅에서 못 다한 것이 있는데, 바로 명령을 일으키는, 즉 키보드를 사용해서 입력을 하는 게임이라고 치면, 여기서 바로 버튼에 해당할 수 있는 부분인 invoke를 만들어서 할당하는 것을 잊었습니다. 먼저 시작한 것은 바로 command 클래스를 상속받아 사용할 수 있는 이 명령 자체의 클래스를 일단 리스트에 담아줘야 하는 문제가 있습니다. 이 문제를 해결하기 위해서 일단 object라고 하는 자료형을 가지고 왔습니다. 이걸 사용하면, 메모리상에.. 2024. 2. 17.
디자인 패턴 공부 - 명령패턴의 학습 -4- 안녕하세요? 지난번 포스팅에서 어떻게 해서 플레이어 - 명령을 게임상에서 내리면, 이를 실행할 캐릭터를 지정하는 법에 대해서 한번 코드를 작성했습니다만, 여전히 문제점이 있다면 있습니다. 바로 명령을 일일히 클래스안의 메서드에 집어넣는 좀 비효율적인 과정이 있기는 있었습니다. 이번에는 이런 것을 극복하고, 어떻게 명령도 리스트 형식으로 만들어서 한꺼번에 입력을 할 수 없는지에 대해서 한번 알아 보기로 했습니다. 먼저 위 스크린샷에서 볼 수 있는 것처럼 Add메서드를 써서 일일히 리스트 형식의 변수에 자료를 입력하지 않고, 아예 하나의 리스트를 선언한 다음, 이 리스트만 넣도록 만들어 보았습니다. 그리고 나서 기존에 있는 클래스에서 한번 리스트를 선언하는 부분은 주석처리를 하도록 하고, 그 다음에는 실행을.. 2024. 2. 15.
디자인 패턴 공부 - 명령패턴의 학습 -3- 안녕하세요? 이전 포스팅에서 언급한 명령 패턴을 연습한 C#의 코드에는 한가지 문제점이 있기는 있었습니다. 바로 다른 것이 아니라, 특정한 플레이어를 코드 안에서 지정했기 때문에, 명령을 내리는 플레이어-경우에 따라서는 캐릭터를 바꾸어서 할 수 있어야 하는 상황이 될 수도 있는데, 이런 경우에는 코드를 진짜로 하나 통째로 만들어야 하는 경우까지 생길 수 있습니다. 그래서 이런 것을 막아내기 위해서 실행을 위한 메세지에 캐릭터 명을 입력하는 것으로 어떻게 할 수 없는지 코드를 짜 보도록 했습니다. 우선 위 스크린샷에서 명령을 내리면 실행할 플레이어 개체에 대해서 일단 명령을 다르게 입력해 주도록 하였습니다. 그리고 이것만 해서는 안되고, 당연하다면 당연하게도 PlayerCommand 클래스에 가서는 변형을.. 2024. 2. 15.