27. Unity 게임개발 입문 팀 프로젝트

이규성·2023년 11월 30일
0

TIL

목록 보기
32/106

11/30 본격적인 팀 프로젝트 시작 !

📌알고리즘 코드 카타 (Algorithm Code Kata)

정수 내림차순으로 배치하기

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

입출력 예

nreturn
118372873211

결론부터 말하자면 실패했다. . .

    static void Main(string[] args)
    {
        // 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 
        //새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

        long n = 118372;

        // 반복문으로 n / 10, 100, 1000~~ 이렇게 계속 나눠서 그 값들 끼리 비교하면?
        // 결과값 1, 1, 8, 3, 7, 2 가 나온다고 하면 서로 크기 비교 후 answer += 800000 + 70000~ 
        // 이렇게 돼야할 것 같은데
        // 결과값들을 배열에 저장하고 꺼내서 10의 제곱들을 순서대로 곱해서 전부 더하기???

        long k = (long)(Math.Log10(n) + 1);

        long[] ary = new long[k];
        long[] ary2 = new long[k];

        long i = 0;

        while (n != 0)
        {                
            ary[i] = n % 10;
            // Console.WriteLine(ary[i]);
            i++;
            n = n / 10;
        }

        int num = 9;
        int num2 = 0;

        for (int j = 0; j < ary.Length; j++)
        {
            while (ary2[j] <= 0)
            {
                if (ary[num2] >= num)
                {
                    if (ary2[j] != 0)
                    {
                        continue;
                    }
                    ary2[j] = ary[num2];
                }
                else if (num2 == 5)
                {
                    num2 = 0;
                    num--;
                }
                else
                {
                    num2++;
                }                    
            }
            num = 9;
            num2 = 0;
        }

        Console.WriteLine(ary2[0]);
        Console.WriteLine(ary2[1]);
        Console.WriteLine(ary2[2]);
        Console.WriteLine(ary2[3]);
        Console.WriteLine(ary2[4]);
        Console.WriteLine(ary2[5]);


        // ary[0] = 2
        // ary[1] = 7
        // ary[2] = 3
        // ary[3] = 8
        // ary[4] = 1
        // ary[5] = 1
        // 이제 이 값들을 비교하여 곱해줘야하는데 흠..

        // Console.WriteLine(answer);
    }
}

반복문과 조건문을 어떻게 조합하면 될 것 같은데 디버그를 계속 찍어가며 했지만 결국 실패를 했다. 내일 오전에 마무리 지을 예정.

📌팀 프로젝트 시작 !

추억의 게임 3종 중에 하나를 택하여 현대화 시키는 것이 프로젝트의 주된 내용이다. 똥피하기, 닷지, 벽돌부수기 중 우리 조는 닷지를 선택하였다.

  • 필수 구현 사항
    • 게임 화면: 게임을 플레이할 수 있는 화면을 만들어야 합니다. 화면 크기, 배경 등을 설정해야 합니다.
    • 캐릭터: 주인공 캐릭터와 적 캐릭터를 만들고, 이들을 움직일 수 있도록 구현해야 합니다. 주인공 캐릭터는 플레이어의 조작에 따라 움직여야 하며, 적 캐릭터는 일정한 패턴에 따라 움직여야 합니다.
    • 총알과 공격: 주인공 캐릭터가 총알을 발사할 수 있도록 구현하고, 적 캐릭터에게 공격을 가할 수 있어야 합니다. 또한, 적 캐릭터의 공격 동작을 정의해야 합니다.
    • 충돌 감지: 총알과 적 캐릭터가 충돌했는지를 감지하고, 충돌 시 적 캐릭터를 제거하고 점수를 증가시켜야 합니다.
    • 게임 로직: 게임의 기본 로직을 구현해야 합니다. 게임 시작, 종료, 점수, 생명 등을 관리해야 합니다.
  • 선택 구현 사항
    • 게임 난이도 조절: 난이도를 조절하기 위해 적의 이동 속도, 총알의 발사 속도, 적의 패턴 등을 조절할 수 있습니다.
    • 아이템 시스템: 게임을 더 흥미롭게 만들기 위해 아이템 시스템을 도입할 수 있습니다. 플레이어가 아이템을 획득하면 임시로 강화되는 아이템, 체력을 회복하는 아이템 등을 추가할 수 있습니다.
    • 특수 능력: 플레이어 캐릭터에 특수 능력을 부여하여 게임 플레이를 다양화할 수 있습니다. 예를 들어, 무적 모드, 빠른 이동 모드 등을 추가할 수 있습니다.
    • 멀티플레이어 모드: 다른 플레이어와 함께 플레이할 수 있는 로컬 멀티플레이어 모드를 추가할 수 있습니다.
    • 시각적 효과: 게임에 다양한 시각적 효과를 추가하여 게임의 시각적 품질을 향상시킬 수 있습니다.
    • 사운드 효과: 게임에 배경 음악과 효과음을 추가하여 게임의 분위기를 높일 수 있습니다.

브레인스토밍

다양하고 재밌는 의견들이 쏟아져 나왔고, ZEP을 배경으로 하여 프로젝트의 방향을 잡았다.

와이어 프레임

각 팀원의 캐릭터를 제작하고 무기와 탄알도 좋아하는 것, 혹은 정체성을 드러내는 객체들로 제작할 예정이다.

역할 분배


나는 플레이어 파트를 맡았다. 플레이어 별로 다른 무기와 탄알을 구현하게 되었다.

우선 아주 약식으로 객체들을 만들어서 구현을 해보았다. 여기까진 좋았으나 탄알을 마우스의 방향 벡터로 발사하는 것이 쉽지가 않았다. . . 내일 Raycast를 이용하여 해결할 예정이다.

깃허브 이슈

플레이어에 대한 부분들의 수정을 커밋하여 합쳤더니 합쳐지지가 않았다. 튜터님께 의뢰하여보니 씬당 한명의 사용자만이 수정을 해야 합치는 데서 오류가 나지 않는다고 한다. 다행히 아주 초반부라서 문제될 건 없었지만 깃허브는 정말이지 파도파도 어려운 것 같다. . .

0개의 댓글