본문 바로가기

분류 전체보기

(77)
UNITY 게임개발트랙 - 내일배움캠프 14일차 TIL 코드카타, 팀프로젝트 다이어그램 작성 및 역할분담 아침에 코드카타 시간에는 각자 1시간동안 코딩테스트 연습문제를 풀고, 점심시간까지 팀프로젝트 다이어그램 작성 및 역할분담을 진행한 뒤, 오후에 각자 맡는 파트를 개발하는 시간을 가졌다. 코드카타 - x만큼 간격이 있는 n개의 숫자 문제 설명 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한 조건 x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. 입출력 예 x n answer 2 5 [2,4,6,8,10] 4 3 [4,8,12] -4 2 ..
UNITY 게임개발트랙 - 내일배움캠프 13일차 TIL 코드카타, BlackJack, C# 문법종합반 4주차 오늘은 새로운 팀 편성과 함께 팀 프로젝트 발제가 있었다. 팀원들 모두 C# 문법종합반 강의 수강을 완료하지 못했던 터라 오늘까지는 각자 강의 수강에 집중하고 내일 본격적인 계획 수립 및 개발을 시작하기로 했다. 코드카타 - 자릿수 더하기 받은 정수형을 문자열로 변환하고, String.Substring 메서드를 활용하여 한 자리씩 정수로 바꿔서 새로운 정수형 배열에 추가해주고, 이 배열 내의 숫자들의 합을 구하는 방식으로 구현했다. Substring 메서드가 아닌 ToCharArray 메서드를 활용했다면 더 간결했을 것 같다. using System; public class Solution { public int solution(int n) { str..
UNITY 게임개발트랙 - 내일배움캠프 12일차 TIL 내일배움캠프 12일차 개인과제 추가기능 개발 : 장비 장착 개선, 던전 입장/전투, 레벨업, 휴식 추가 개인과제 해설 특강 오픈 클로즈 원칙 와이어프레임(노트, PPT, figma) : 흐름 도식화 전역변수 활용 - 내 경우 ref 엄청 썼음 아이템 장착 : 나는 bool 변수 활용. EquippedItem 배열을 따로 만드는 게 확장성 면에서 유리함. 메모리 측면에서 클래스/ 구조체, 객체 지향의 원칙이 무엇인지... 알고리즘(배열 다루는 법 등), 디자인 패턴(객체지향) 공부하기 개발 프로세스 만드려고 하는 기능 정리 와이어프레임 정리 화면 먼저 만들어보기 (UI) 화면들끼리 연결해보기 (버튼, 화살표) 데이터 클래스/구조체 만들어보기 (데이터 모델링) 필요한 상황에 맞춰서 직접 개발 장비 장착 개선..
UNITY 게임개발트랙 - 내일배움캠프 11일차 TIL 개인과제 - Text RPG 개발 과제의 필수 요구사항은 어제 개발을 마쳤기 때문에, 오늘은 추가 기능 개발에 집중했다. 인벤토리에 들어있는 아이템을 정렬하는 기능, 그리고 상점에서 아이템을 사고 파는 기능을 추가했다. 인벤토리 정렬 다양한 정렬 기준을 선택할 수 있도록 switch문을 사용해서 경우의 수를 나눠놓았다. 그리고 OrderBy메서드와 ToList 메서드를 활용해 playerInv 내의 인스턴스들을 재정렬하는 방식으로 구현했다. public static void OrderItem(ref List playerInv) { Console.Clear(); foreach (Item item in playerInv) { Console.Write("- "); PrintItemInfo(item, false..
UNITY 게임개발트랙 - 내일배움캠프 10일차 TIL 개인과제 - Text RPG 개발 필수 요구사항 필수 요구사항은 다음 세 가지였다. 1. 시작화면 간단한 소개말과 함께 마을에서 할 수 있는 행동들을 알려준다. 0과 1 이외의 키를 누르면 잘못된 입력이라는 메시지를 출력해야 한다. 처음에는 Int.Parse()메소드를 사용해서 0, 1, 2 이외의 숫자를 판단했었는데 숫자 이외의 입력을 받으면 에러가 발생했다. 대안을 찾아본 결과 Int.TryParse()메소드를 알게 되었고, 이를 통해 True 값이 반환되면 결과값으로 나온 정수값을 위의 방법으로 판단하여 메시지를 출력하는 방식으로 마무리했다. 또한 다른 장면으로 전환될 때 플레이어와 인벤토리의 데이터를 ref 키워드로 전달하도록 했다. 이를 위해 플레이어의 구조체를 생성했고, 메인 메서드에서 구조체..
UNITY 게임개발트랙 - 내일배움캠프 9일차 TIL 3주차 과제, 개인과제 계획짜기 Snake Game 어제는 뱀의 모든 좌표를 스택에 넣고, 매번 Console.Clear()로 화면을 리셋하고 뱀의 좌표를 업데이트하여 찍는 방식으로 뱀의 움직임을 구현하려 했다. 하지만 뱀의 이동방식과 좌표를 둘로 쪼개어 계속 컬렉션에 보관했다 꺼내는 방식이 매우 번거로워서 오늘은 뱀의 이동 방식을 완전히 뒤엎어버렸다. 먼저 뱀을 구성하는 점들의 좌표를 보관할 컬렉션으로 Queue를 채택했다. Queue는 선입선출(FIFO)방식으로, 새로운 점을 찍으면 가장 오래된 점은 사라지는 뱀의 특성상 가장 적합하다고 생각했기 때문이다. 어제는 뱀의 좌표를 for문을 이용해서 컬렉션에 저장하느라 Stack을 사용했는데, 이 때문에 저장 순서와 이동할 때 점이 찍히는 순서가 굉장히 ..
UNITY 게임개발트랙 - 내일배움캠프 8일차 TIL 3주차 강의, 과제, 학습법 특강 객체지향 프로그래밍 (Object-Oriented Programming, OOP) 특징 캡슐화 (Encapsulation) : 관련된 데이터와 기능을 하나의 단위로 묶는 것. 정보 은닉, 안정성, 보수 상속 (Inheritance) : 기존의 클래스를 확장하여 새로운 클래스를 만드는 메커니즘 다형성 (Polymorphism) : 하나의 메서드 이름이 오버로딩, 오버라이딩을 통해 다양한 객체에서 다르게 동작할 수 있다. 추상화 (Abstraction) : 복잡한 시스템이나 개념을 단순화하여 필요한 기능에 집중하는 것 객체 (Object) : 클래스로부터 생성된 실체. 각 객체는 독랍적인 상태를 가지고 있다. 즉 객체마다 고유한 데이터를 가질 수 있다. 클래스 데이터와 메서..
UNITY 게임개발트랙 - 내일배움캠프 7일차 TIL 2주차 강의 수강 조건문 if, else, else if 등 기본적인 조건문에 대해 배웠다. 그동안 이들 모두 중괄호가 필수적인 것으로 알고 있었는데, 조건 충족시 실행할 코드가 한 줄이라면 중괄호가 없어도 된다는 것을 알게 되었다. 이를 이용하여 한 줄로 정리한 것이 else if 라는 것도 알게 되었다. Console.Write("문자를 입력하세요: "); char input = Console.ReadLine()[0]; //문자열 맨 앞 한글자 [0] if ((input >= 'a' && input = 'A' && input = requiredExp) ? "레벨업 가능" : "레벨업 불가능"; Console.WriteLine(result); # if else 문 if (c..