내일배움캠프 10일차 TIL : 개인 과제 제출 및 강의

김정환·2024년 9월 25일
0

키워드

  • 개인과제 제출
  • 5주차 강의
  • 팀원들과 코드 공유

개인과제 제출

개인과제 제출일었다.
제출하기 전에 버그 테스트하면서 코드를 다시 훑어봤다.

역시 마음에 안드는 부분이 있어 수정했다.

수정 방향

게임의 전반적인 진행 과정은 다음과 같다.

  1. 지시문 / 시스템 지문 출력
  2. 플레이어의 선택

이런 간단한 구조로 플레이가 진행되고 기능 전반에 걸쳐있다.
지금 코드는 각 기능마다 출력과 선택이 구조화가 되어 있지 않았다.
그래서 그 부분을 개선해보고자 인터페이스를 만들었다.

interface IFeature
{
    string Name { get; set; }
    IScene Parent { get; set; }

    void Start(); // 외부에서 기능을 시작할 때 호출
    void Set(); // 지시문 출력
    void Act(); // 플레이어의 선택 / 행동
}

이런 식으로 틀을 잡고

위와 같이 파생 클래스들을 만들어주었다.

이제 Town 스크립트에 몰려있는 기능들은
위 형태에 맞게 수정되고 통일된 사용이 가능해졌다.

5주차 강의

오늘 배운 내용의 핵심은 이곳이다.
혼자 코딩테스트 공부를 하면서 아직 진도를 못뺀 부분들이 있었다.

https://velog.io/@jhk0701/C-%EC%A2%85%ED%95%A9-%EB%AC%B8%EB%B2%95-5-3-%EA%B3%A0%EA%B8%89-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

  • 그리디
  • 동적 프로그래밍
  • 분할 정복

위 방식들은 모두 규모가 큰 문제를 해결하는 방식이다.

  • 문제를 작은 문제로 소분해서 해결하는 공통점이 있다.
  • 차이점
    • 그리디 : 지역적 최적해(지금 단계의 답)이 전체 문제의 해결법이라고 생각하고 푸는 것
    • 동적 프로그래밍 : 구조적으로 작은 부분의 해결법이 큰 문제의 해결법으로 이어지는 것
    • 분할 정복 : 분할한 문제의 해결법으로 큰 문제의 해결도 가능한 것.

팀원들과 코드 공유

이후 남는 시간동안 팀원들과 각자 제출한 코드를 공유하며 설명하는 시간을 가졌다.

#내일배움캠프 #스파르타내일배움캠프 #스파르타내일배움캠프TIL

profile
사파 개발자

0개의 댓글