부트캠프

간단한 Snake게임 만들기2

noyyo 2023. 8. 17. 21:39

게임을 만들다보니 Map 정보를 Snake나 Food가 모르면 어떤 위치에 생성되게 할지 결정할 수 없으니 Map이 필요한데 그러자니 클래스 계층 구조가 꼬여서 맘에 안들어지기 때문에 그냥 Map에서 Snake와 Food 둘 다 만드는 것으로 결정했다.

덕분에 Map코드가 바뀌어서 만들기1 게시물도 수정하게 되었다.

 

Snake 클래스는 다음과 같이 구성했다.

    public class Snake
    {
        public List<Point> body = new List<Point>();
        public Point? snakeHead;
        public string headSymbol = "◆";
        public string bodySymbol = "≡";

        public void MoveBody()
        {
            for (int i = body.Count - 1; i > 0; i--)
            {
                body[i].x = body[i - 1].x;
                body[i].y = body[i - 1].y;
            }

        }
        public void EatFood()
        {
            body.Add(new Point(body.Last().x, body.Last().y, bodySymbol));
        }

        public void Draw()
        {
            for (int i = body.Count -1; i >= 0; i--)
            {
                body[i].Draw();
            }
        }
    }

이것 이외에 뱀 생성, 푸드 생성은 Map에서 동작한다.

원래는 FoodGenerator클래스를 만드려고 했었지만 음식 종류가 다양한 것도 아니고 따로 관리할만큼의 필요성도 없는데 클래스 구조까지 서로 참조를 들고있는 복잡한 구조가 되어버리기 때문에 생략하게 되었다.

'부트캠프' 카테고리의 다른 글

콘솔앱으로 TextRPG 만들기  (0) 2023.08.18
BlackJack 게임  (0) 2023.08.17
간단한 Snake 게임 만들기1  (0) 2023.08.16
C# 제네릭과 var, dynamic  (0) 2023.08.14
미니프로젝트 마무리  (0) 2023.08.11