250212

lililllilillll·2025년 2월 11일

개발 일지

목록 보기
80/350

✅ 오늘 한 일


  • Project BCA
  • 디자인 패턴의 아름다움 읽기
  • 한 권으로 끝내는 블렌더 교과서 읽기
  • Udemy Unity Lighting 강의 수강


🎮 Project BCA


Sending FEN string

    /// <summary>
    /// 플레이어의 착수를 Stockfish에게 전달
    /// </summary>
    public void SendPlayerMoveToStockfish(int x, int y, int mx, int my)
    {
        // string playermove = GridMoveToUCI(x, y, mx, my);
        // UnityEngine.Debug.Log("플레이어의 수 : " + playermove);
        // moves += " " + playermove;

        // input.WriteLine("position startpos" + moves);

        input.WriteLine("position fen " + board.GetFENstring());
        input.Flush();

        input.WriteLine("go depth 10");
        input.Flush();
    }

디버깅 : 캐슬링

캐슬링 하면 안되는 상황에서도 캐슬링하는 버그 발생

    private string FEN_Castling()
    {
        string fen_castling = "";
        if (BothFirstMove((1, 1), (5, 1))) fen_castling += "K";
        if (BothFirstMove((8, 1), (5, 1))) fen_castling += "Q";
        if (BothFirstMove((1, 8), (5, 8))) fen_castling += "k";
        if (BothFirstMove((8, 8), (5, 8))) fen_castling += "q";
        if (fen_castling == "") fen_castling = "-";
        return fen_castling;
    }

또 코파일럿이 짜준 코드를 대충 확인해서 발생했던 문제.
킹 캐슬링 판정과 퀸 캐슬링 판정이 뒤바뀌어 있었다.
좌표를 정상화하여 해결.



📖 디자인 패턴의 아름다움


p.1 ~ 48

  • 코드가 진짜 문제가 되는 부분을 디자인 패턴이나 설계 원칙을 통해 개선해야 한다. 이전에 봤던 어떤 적용 시나리오와 유사하다고 해서 적합성을 판단하지 않고 마구 적용하면 안된다.

  • 디자인 패턴을 적용하는 목적은 단일 책임을 위해 큰 코드 조각을 작은 클래스로 분할하여 코드가 높은 응집도와 낮은 결합도를 갖게 하는 것이다. 코드가 복잡하지 않으면 복잡한 디자인 패턴을 도입할 필요가 없다.

  • 디자인 패턴을 적용하면 확장성은 향상되지만 가독성은 나빠질 수 있다. 또한 팀 전체가 복잡한 설계에 따른 작업을 항상 수행해야 한다. 잘못된 예측으로 인한 과도한 설계를 피하기 위해 지속적인 리팩터링을 해야 한다.

  • 객체 지향 설계 프로세스

    • 1) 책임과 기능을 나누고, 어떤 클래스가 있는지 확인한다
    • 2) 클래스를 정의하고, 클래스의 속성과 메서드를 정의한다
    • 3) 클래스 간의 상호 작용을 정의한다
    • 4) 클래스를 연결하고 실행 엔트리 포인트를 제공한다


📖 한 권으로 끝내는 블렌더 교과서


p.172 ~ 200



🎞️ Udemy Course : Unity Lighting


https://www.udemy.com/course/lighting-in-unity-l

섹션 1-4. ~ 1-5.

GameObject > Light에 있는 광원 중에 Area Light 말곤 real time

Light에 Shadow Type으로 그림자 설정

Directional Light

  • 하늘에 있는 태양이랑 transform 연동됨
  • 두 개 만들고 Intensity 조절하면 그림자 두 개 만들 수 있음

Rendering > Lighting > Environment > Sun Source를 지정하면 첫 번째 만들어진 Directional Light가 아니여도 태양 위치 조절

머테리얼 만들고 Shader를 Skybox > Procedural로 바꾸고 Skybox Material에 삽입

  • Sun Size Convergence : 태양 모습이 얼마나 산란 일어나는지
  • Atmosphere Thickness : 대기가 얼마나 있는지 조절하여 하늘색 조절


profile
너 정말 **핵심**을 찔렀어

0개의 댓글