재귀 함수란?재귀 함수는 자기 자신을 호출하는 프로그래밍 기법이다. 재귀 함수는 복잡한 문제를 더 작은 하위 문제로 나누어 해결할 수 있도록 도와준다.재귀함수 기본 구조재귀함수는 두 가지 주요 부분으로 구성된다.기저 조건(Base Case): 함수가 더 이상 자기 자신을 호출하지 않고 종료되는 조건.재귀 단계(Recursive Step): 함수가 자기 자신을 호출하는 단계.피보나치 수열 재귀 함수 예시*피보나치 수열이란? 피보나치 수 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전. 피보나치 수를 이용한 사각형 채우기 수학에서 피보나치 수(영어: Fibonacci numbers)는 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다.ko.wikipedia.o..
C# 기초 프로그래밍
이전 포스팅에서 OOP란 무엇인지, 왜 사용해야 하는지, 그리고 OOP의 핵심개념 4가지에는 무엇이 있는지 알아 보았고, 캡슐화란 무엇인지 알아 보았다. https://nybot-house.tistory.com/104 [C# Basics] 객체지향 OOP란 무엇인가? - 핵심 4개념과 개론 이전 포스팅에서 한번 다루었던 OOP에 대해 다시 한번 그 중요성을 느꼈기에 한번 더 다뤄 보고자 한다. 이전 글: https://nybot-house.tistory.com/53 1. OOP 란? - 객체 지향 프로그래밍 소개 C++의 OOP란, 객체 nybot-house.tistory.com 이번 포스팅에서는 OOP(Object Oriented Programming)의 핵심 개념 중 하나인 다형성에 대해서 알아 보자..
이전 포스팅에서 OOP란 무엇인지, 왜 사용해야 하는지, 그리고 OOP의 핵심개념들에는 무엇이 있는지 알아 보았다. https://nybot-house.tistory.com/104 [C# Basics] 객체지향 OOP란 무엇인가? - 핵심 4개념과 개론 이전 포스팅에서 한번 다루었던 OOP에 대해 다시 한번 그 중요성을 느꼈기에 한번 더 다뤄 보고자 한다. 이전 글: https://nybot-house.tistory.com/53 1. OOP 란? - 객체 지향 프로그래밍 소개 C++의 OOP란, 객체 nybot-house.tistory.com 이번 포스팅에서는 OOP(Object Oriented Programming)의 핵심 개념 중 하나인 캡슐화와 은닉성에 대해 자세히 알아 보자. 캡슐화(은닉성)란? ..
이전 포스팅에서 한번 다루었던 OOP에 대해 다시 한번 그 중요성을 느꼈기에 한번 더 다뤄 보고자 한다. 이전 글: https://nybot-house.tistory.com/53 1. OOP 란? - 객체 지향 프로그래밍 소개 C++의 OOP란, 객체Object 가 중심이 되서 프로그래밍하는 패러다임. C++ 는 여러가지 패러다임을 제공해 주는 멀티 패러다임 언어이다. 1) procedural 2) functional 3) OOP - ( Object-Oriented Programming ) 4) generic 를 nybot-house.tistory.com 게임 개발을 하는 데 있어 객체 지향 프로그래밍, 즉 OOP (Object Oriented Programming)의 중요성은 다시 말할 필요 없이 핵심..
C#에서 생성자는 클래스나 구조체가 인스턴스화될 때 자동으로 호출되는 특별한 메서드이다. 생성자의 주요 목적은 객체를 초기화하는 것으로, 필드 또는 속성에 초기 값을 할당하는 등의 작업을 수행할 수 있다. 생성자는 클래스 또는 구조체의 이름과 동일하며, 반환 형식을 지정하지 않는다. 생성자는 객체 지향 프로그래밍에서 중요한 역할을 하며, 클래스의 인스턴스가 올바르게 초기화되어 사용될 수 있도록 보장한다. 기본 생성자 기본 생성자(Default Constructor)는 매개변수를 받지 않는 생성자이다. 사용자가 명시적으로 생성자를 정의하지 않으면, C# 컴파일러는 기본 생성자를 자동으로 제공한다. 그러나 사용자가 어떠한 생성자라도 정의하면, 컴파일러는 기본 생성자를 자동으로 제공하지 않는다. public ..
스택과 힙 메모리에 대한 설명은 여러 포스트들에서 다루었지만, 체계적으로 한번에 비교해서 설명이 되었다고 하기엔 조금 난잡한 포스트들이었다고 생각한다. 이번 포스팅에서는 C#의 관점에서 스택 메모리와 힙 메모리를 비교해보고 각각의 특성을 살펴보고자 한다. c#의 경우 포인터가 직접적인 기능을 하지는 않지만 간접적으로 기능을 하고 있기에, c++보다는 이해하기 쉽지만, 그럼에도 불구하고 복사와 참조를 이해하기 위해서는 메모리 구조, 그리고 변수가 메모리에 어떻게 저장되는지 잘 이해하고 있어야 한다. Stack 스택 1) stack은 임시메모리, 즉 잠시 사용하는 메모리이다. 메서드 호출 시 메서드의 지역 변수를 저장하는데 사용된다. 2) 이 메모리 영역은 LIFO(Last In First Out, 후입선출..
ref out 게시글에서 복사와 참조에 대하여 잠깐 다뤘었다. C++ 게시글에서 심도 있게 다루었던 내용이지만, C#에서도 한번 정리하고 넘어가야 맘이 편할 것 같아서 이번 게시글에서는 복사와 참조, 깊은 복사에 대해 다뤄보려고 한다. Struct 복사, Class 참조 우선 c#에서 struct는 기본적으로 복사를 하고, class는 참조를 한다. 예시를 통해 살펴보자. using System.Numerics; namespace CSharp { class Program { class Warrior { public int hp; public int attack; public void Move() { Console.WriteLine("Warrior Move"); } public void Attack() {..
지난 포스트에서 플레이어를 구현하였으니, 이어서 이번에는 플레이어가 마을과 필드에 입장하고, 몬스터와 전투를 진행하는 부분까지 구현해 보려고 합니다. 완성된 형태의 출력 결과물은 다음과 같습니다. 우선 메인 함수에서 EnterGame() 함수를 만들어서 게임에 접속시키는 기능을 구현해 봅시다. EnterGame() 함수에서 구현해야 하는 기능은 다음과 같습니다. 1) 마을에 도착 2) 필드로 갈 것인지, 로비로 돌아가서 다시 캐릭터 선택창으로 갈 것인지 선택. 3) 필드로 갔을 때 몬스터와 전투를 진행하기 (EnterField() 메서드를 만들어서 구현할 예정) static void EnterGame(ref Player player) { while (true) { Console.WriteLine("시작의..