C# 특강
조건문과 반복문
순차구조 - 일방통행
선택구조 - 나들목
반복구조 - 로타리
플로우차트 - 콘티
사각형 - 실행문
마름모 - 분기

조건문 예시

if(조건식)
{
// 조건이 참일경우 실행
}
위 도식에서 {} 로 묶이는 영역을 블록이라고 지칭함.
7월 9일 TIL 조건문 파트에서 정리한 내용을 참고하면 될듯하다.
다중상속을 사용하지 않는 이유
1. 다이아몬드 문제
한 클래스가 두 개 이상의 부모 클래스로부터 동일한 멤버를 상속
2. 설계의 복잡성 증가
클래스 간의 관계가 복잡해짐
3. 이름 충돌과 충돌해결의 어려움
여러 부모 클래스로부터 상속받은 멤버들의 이름이 충돌할 수 있음.
4. 설계의 일관성과 단순성 유지
C#은 단일 상속을 통해 설계의 일관성과 단순성을 유지함
인터페이스를 사용하는 이유
- 코드의 재사용성
- 다른 클래스에서 해당 인터페이스를 구현하여 동일한 기능을 공유- 다중 상속 제공
- 유연한 설계
- 클래스와 인터페이스 간에 느슨한 결합 형성 가능
인터페이스의 정의
- 클래스가 구현해야하는 멤버들을 정의
- 클래스의 일종이 아닌, 클래스에 대한 제약조건을 명시
- 클래스가 인터페이스를 구현할 경우
모든 인터페이스 멤버를 구현해야 함
- 다중상속을 지원
열거형을 사용하는 이유
- 가독성
- 자기 문서화
- 스위치 문과의 호환성
개인과제 현황
현재까지 구현한건 시작창(소개와 이름 입력) 선택창(상태창, 인벤토리, 상점, 휴식, 종료)까지 구현이 되었으며, 상태창에는 기본 스탯과 장비 착용등으로 적용 되는 추가 선택창이 있다.
그리고 나가기 기능을 각 선택지마다 제공을 해서 이전 선택지로 회귀가 가능하다.
인벤토리에는 장착관리와 나가기 로직을 구현해 두었으며, 특정 조건을 충족시 등장하는 히든 메뉴도 작성했다.
상점 선택지에는 아이템 리스트를 출력하고 아이템 구매 선택지를 선택시 아이템을 구매해서 인벤토리에 추가하는 기능을 넣었다.
휴식 선택지를 선택하면 만약 체력이 기존의 적용된 100 보다 수치가 낮으면 일정 재화(골드)를 차감해서 체력을 회복할 수 있다. 만약 체력이 기존의 적용된 100이라면 자동적으로 회복 시퀸스는 작동하지 않고, 이미 체력이 가득 찼습니다. 라는 문구와 함께 바로 직전의 선택지인 휴식하기 돌아가기 선택지가 출력이 된다.



해당 이미지들은 구동시 나오는 이미지이다.
오늘 특강에서 메서드를 따로 작성해서 그걸 기존의 반복문에 적용하는것에 대한 이야기가 있어서, 해당 내용을 기존의 메인 프로그램 스크립트의 스위치 구문안에 적용을 했다. 기존의 코드는 스위치 안에 너무 긴 반복문이 들어가 있어서 수정하기 쉽지 않았는데, 반복문을 추출해서 메서드화 시키고, 기존 스위치에는 메서드의 변수를 집어넣으니 훨씬 가독성이 올라가 있었다.
회고. 일단 오늘 4주차 강의를 한번 다 듣기는 했으나, 금요일, 그리고 다음주에 다시한번 강의를 들어봐야 될거 같다.
완전히 이해가 되지 않아서 하나씩 적용해보면서 감을 잡아야 할거 같다는 생각이 들었다. 개인과제의 경우 기본적인 기능을 구현하는 도중 추가 하고 싶은 것들이 생각이 나서 따로 정리를 해놓고 적용을 시켜보았다. 추가 하고 싶은것들을 정리하면서, 설마 이게 어둠의 마개조 같은건 아니겠지 라고 생각하면서 검색을 통해 작업을 했고, 작동이 원하는대로 구동이 되는것에 즐거움을 느꼈다. 추가한 기능이 무엇인지는 여기서는 밝히지 않겠다. 이후에 결과가 나온이후에 밝히도록 하겠다.