🧠 오늘의 핵심 정리
- 사전캠프 3강 수강: class / 제너릭 / out, ref 학습
- 과제: Snake Game 제작 진행 (AI 도움 + 코드 분석 병행)
- 콘솔 게임에서 유용한 C# 기능들을 많이 접함 (키 입력 / 커서 / 화면 크기 등)
🛠️ 오늘 진행한 학습 내용
- 3강 학습 내용: class, 제너릭, out/ref
- 듣는 동안엔 “오케이 이해 완료!” 라고 생각했는데… 과제를 보자마자 눈물이 났습니다. 허허
- 그래도 할 수 있는 데까지는 진행!
- board를 int[,] 배열로 구성하고 25x50 크기로 생성
- board 값 규칙: 0 = " " / 1 = 테두리 / 2 = 뱀 / 3 = 사과
- class Board, class Snake 생성
- 뱀 몸통은 List<(int x, int y)> 형태로 관리
❗ 학습 중 겪은 문제 & 해결
[문제 상황]
- 보드/뱀 클래스까지는 만들었는데, 뱀이 움직이는 모션(루프/갱신)을 어떻게 표현할지부터 머리가 안 따라옴
- 방향키 입력 → 머리 이동 → 꼬리 처리 → 충돌 판정 → 사과 생성… 흐름이 한 번에 연결이 안 됨
- 여기서부터는 제 영역이 아닌 것 같아서… AI의 손길을 받았습니다. 쓰읍…
[원인 분석]
- 단순 문법(class/out/ref)은 이해했지만, 콘솔 게임은 게임 루프와 상태 업데이트 순서가 핵심이라 설계가 필요했음
- 보드에 “그림을 그린다”가 아니라, 매 프레임마다 “상태를 갱신하고 다시 출력한다”는 흐름이 익숙하지 않았음
[해결 방법]
- AI 도움을 받아 동작 로직을 완성하되, 그대로 쓰지 않고 “왜 이 코드가 필요한지”를 최대한 분석해봄
- 결과적으로 처음 보는 유용한 코드들을 많이 알게 됨
🐍 Snake Game 구현 내용
- 벽에 닿으면 사망 / 자기 몸통과 닿아도 사망
- 사과는 랜덤 위치에 생성
- 사과를 하나 먹을 때마다 Score +10
- 방향키(위/아래/왼쪽/오른쪽) 입력으로 이동
- 사과를 먹으면 몸 길이 +1
오늘 새로 알게 된(인상 깊었던) 코드들
- ConsoleKeyInfo : 키보드 입력을 받아서 실제로 플레이 가능한 콘솔 게임 구현 가능
- First() : 리스트의 첫 번째 요소를 꺼낼 수 있음
- Console.SetCursorPosition() : 커서 위치 이동으로 화면을 “다시 그리는” 느낌 구현 가능
- Console.CursorVisible : 커서를 숨겨서 게임 화면처럼 보이게 할 수 있음
- Console.WindowHeight / WindowWidth : 콘솔 창 크기 조절 가능
- Thread.Sleep() : 잠시 멈췄다가 실행(게임 속도 조절 가능)
- Console.KeyAvailable : 입력이 들어올 때까지 막 기다리는 게 아니라, 나중에 눌러도 입력을 처리할 수 있음
- Console.ReadKey(intercept: true) : 입력할 때 화면에 키가 보이지 않게 처리 가능
📌 오늘의 회고
오늘은 제목 그대로… 저혈압이 치료된 날이었습니다 (와우)
강의 들을 땐 이해한 줄 알았는데, 과제를 보자마자 현실을 맞았습니다. 허허
그래도 “AI 도움 받았으니 끝!”이 아니라, 코드가 왜 이렇게 구성되어 있는지 하나씩 뜯어보면서 공부해보니 진짜 콘솔 게임에 유용한 기능들을 많이 알게 됐습니다.
오랜만에 보는 코드들도 반가웠고, 처음 보는 기능들은 특히 알찼습니다. 다음에는 이런 것들을 제 힘으로 더 깔끔하게 연결해보고 싶습니다.
그리고… 블랙잭도 만들라던데… 오늘 안에 만들 수 있을련지… (벌써부터 아찔)
🔜 내일 할 일
- Snake Game 코드 복습 (게임 루프/업데이트 순서 다시 정리)
- 오늘 등장한 콘솔 관련 기능들(키 입력, 커서, Sleep 등) 따로 메모해두기
- 가능하면 블랙잭 과제 시작… (할 수 있을까)
'내일배움캠프 본캠프' 카테고리의 다른 글
| [내일배움캠프 9일차 TIL] 턴제 TextRPG (0) | 2025.10.02 |
|---|---|
| [내일배움캠프 8일차 TIL + 보너스] 블랙잭 게임 (0) | 2025.10.02 |
| [내일배움캠프 TIL 7일차] 틱택토 만들기 (0) | 2025.09.30 |
| [내일배움캠프 TIL 6일차] TextRPG 실습 (0) | 2025.09.29 |
| [내일배움캠프 5일차 TIL] 팀 프로젝트 발표 (0) | 2025.09.26 |