분류 전체보기 67

C# 프로그램 예제연습 - 텍스트게임만들기 - 06

오늘은 몹들을 등장시키기 위한 작업을 할 겁니다. 제 구상은 이렇습니다. 일전에 배운 배열에 몹들을 랜덤하게 담을 겁니다. 총 20마리의 몹을 배열에 담아서 배열에 있는 모든 몹을 물리치면 보스를 만나고, 보스를 이기면 끝나는 형식이 될 겁니다. 그런데 각기 다른 몹들을 배열안에 일관되게 담고, 동일한 행위를 호출하기 위해서는 이들에게 동일한 기능이 있다는 것을 프로그램에게 알려줘야 합니다. 우리는 그걸 인터페이스(interface)라고 부릅니다. 인터페이스는 규칙이에요! 예를 들어, 교실에서 학생들은 선생님이 정한 규칙을 따라야 해요. 그 규칙에는 일어서기, 문을 열고 닫기, 친구에게 인사하기 등이 있을 거에요. 이렇게 학생들이 지켜야 하는 규칙이 바로 '인터페이스'라고 생각할 수 있어요. 컴퓨터 프로..

C# 프로그램 예제연습 - 텍스트게임만들기 - 05

우리는 기초연습때 콘솔로 이름을 입력 받는 것과 프로그램의 흐름을 함수로 나누는 것을 연습해 보았습니다. 아직 잊은 거 아니겠지요? 이제 그 내용을 복습해 보도록 하겠습니다. 프로그램의 진입점에서 함수를 호출해서 게임이 진행되게 할 겁니다. 먼저 Program 함수 내에 나 자신을 선언해 줘야 하므로, User 클래스를 player란 이름으로 선언해 줍니다. static User player; static void Main(string[] args) { Init(); player.Name = GetUserName(); Hello(player.Name); } 기존에 만들었던 함수와 동일한 구조로 작성하되, 달라진 부분은 User 라는 클래스를 player란 이름의 인스턴스로 만들어서 사용한다는 점만 달라졌..

C# 프로그램 예제연습 - 텍스트게임만들기 - 04

지난 시간에 우린 몹(Monster)에게 공격력과 방어력이라는 공통 항목을 추가해 주는 과정을 통해 상속에 대해 이야기 했습니다. 그런데 공격력과 방어력은 사용자에게도 있어야 겠죠? 그러니 우리 User.cs 에도 동일하게 공격력과 방어력을 넣어줍시다. internal class User { public bool IsDead { get; set; } public string Name { get; set; } public int Health { get; set; } public int Attack { get; set; } public int Guard { get; set; } public User() { this.IsDead = false; this.Name = string.Empty; this.Healt..

C# 프로그램 예제연습 - 텍스트게임만들기 - 03

지난 시간에 이어 이번에는 몹(Monster)를 정의해 봅시다. 우리는 이미 User.cs와 동일하게, IsDead, Name, Health 라는 3가지 옵션을 정의했습니다. 하지만 몹은 종류가 다양하죠. 그래서 몹이라는 동일 카테고리 안에 3가지 유형의 몹을 만들어보고자 합니다. 그리고 3가지 몹은 각기 다른 성향을 가지고 있을 겁니다. 하지만 모두가 공통된 "몹(Monster)" 속성을 가지고 있을 겁니다. 세가지 몹이 몹이라는 공통 속성을 가지기 위해 우리는 "상속"이란 개념을 배우게 될겁니다. 상속은 어떤 물건이나 특징을 다른 것에게 물려주는 개념이에요. 예를 들어, 우리가 가족에서 누군가로부터 물려받는 것을 생각해 볼 수 있어요. 상속을 프로그래밍에 적용하면, 새로운 것을 만들 때 이미 있는 것..

C# 프로그램 예제연습 - 텍스트게임만들기 - 02

오늘은 먼저 User.cs 파일을 열어서 코드를 수정해 보겠습니다. 바로 엔티티(Entity)를 어떻게 정의해 나가는지 같이 보겠습니다. 자 플레이어가 있고, 몹을 잡을 겁니다. 플레이어는 게임이 시작되면 던전에 들어갈거고, 그곳에서 만나는 몹들을 하나씩 처치해서 최종 보스를 처치하면 게임이 클리어 되는 형태가 될 것입니다. 그럼 플레이어에게는 상태라는게 존재하게 되죠. 즉, 살았냐, 죽었냐 라는 걸 판별해야 합니다. 죽었다면 게임은 종료되겠죠. 죽는 과정은 플레이어의 생명력이 감소하기 시작해 0에 도달하면 죽는 거라고 할 수 있겠습니다. 그럼 생명력과 상태라는 두가지 지표가 필요해집니다. 이것을 속성, 즉 어트리뷰트(Attribute)라고 할 수 있습니다. 또한 플레이어에게는 이름을 입력받도록 하겠습니..

C# 프로그램 예제연습 - 텍스트게임만들기 - 01

우리는 지난 10개의 포스트를 통해, C# 이라는 언어를 함께 공부해 왔습니다. 이를 통해 프로그래밍이라고 불리우는 것에 대한 전체적인 개념 또한 함께 학습했습니다. 하지만 그건 프로그래밍이라고 불리우는 거대한 산에 초입에 불과합니다. 프로그래밍이란 것을 하기 위해, 앞으로 알아야할 것도 많고, 해야할 것도 많겠지만 때로는 많은 것들을 뒤로 하고 실제적인 것을 먼저 하는 것이 전체를 이해하는데 더 빠른 길이 되기도 합니다. 이제부터는 간단한 콘솔 프로그램을 하나 만들면서 Class의 개념을 이해하고, 전체적인 프로그램을 연습하는 시간을 가져볼까 합니다. 프로그램의 그 많은 개념들을 모두 이해하고 만들려고 하면, 여러분은 꽤 오랜 시간을 개념과 용어를 암기하는데 써야할 것입니다. 하지만 일단 만들어 봅시다..

C# 프로그램 기초 - 10

지난 수업에 우리는 for문과 함께 초기화에 대해서 공부해 보았습니다. for문은 여러 프로그램의 반복문에 있어서 가장 원시적인 형태를 가진 명령문으로, 현재까지도 종종 사용되지만, 근래에는 다양한 기능들이 등장하며 for문의 역할을 대신하고 있기도 합니다. C#에서 가장 대표적인 대체 명령어는 바로 foreach 입니다. foreach란 배열의 구성 요소 만큼 배열이 반복되는 형태입니다. 만약 여러분이 for문을 돌리는데, 조건을 잘못 쓰거나, 그 안에 요소가 지정한 크기만큼 존재하지 않게 되면, 프로그램은 오류를 출력하게 됩니다. 위 그림은 먼저 숫자배열 arr을 선언하고, 거기에 10과 20 이란 값을 넣어서 배열을 초기화 하고 있습니다. 배열의 초기화 방법은 다양한데 가장 기본적인 개념이 바로 위..

C# 프로그램 기초 - 09

오늘은 for 문에 대해서 설명 드리겠습니다. for문의 기본 규칙은 for (조건) { 코드블럭 } 형태를 가집니다. 이때 조건은 (시작값; 종료값, 증가규칙) 이렇게 됩니다. 가장 기본적인 구조는 다음과 같습니다. for (int i = 0; i < 10; i++) { Console.WriteLine($"이번 행은 {i+1}번째 입니다."); } int는 숫자를 나타내는 자료형이라고 앞서 말씀드렸죠. i 라는 자료형을 선언하여, i 라고 명명된 저장공간을 사용하게 되는 겁니다. 숫자형인 int로 선언했으니 오직 숫자만 이 저장공간에 저장될 수 있습니다. int i = 0; 이라고 선언과 동시에 0 이라는 값을 "대입"시켰습니다. 우리는 이와 같은 행위를 "초기화" 라고 합니다. 특히 숫자같은 자료형 ..

C# 프로그램 기초 - 08

오늘은 함수를 만들어 볼 겁니다. 이전에 연습하던 프로젝트를 불러옵니다. 먼저 if문과 switch 문을 연습했었죠. 온전히 이해하지 못했다 하더라도 괜찮습니다. 프로그램은 머리로 이해하는게 아니라 손으로 이해한다고 생각하세요. 충분히 반복적으로 사용하다보면 어느 순간 자연스럽게 이해하는 순간이 올겁니다. 반드시 코드는 직접 타이핑 하셔야 합니다. 자주 반복적으로 연습할 수록 프로그램을 더 빨리 이해하게 되요. 이제 우리는 먼저 번에 인사를 하는 코드를 하나의 함수로 분리시킬 겁니다. 코드를 다음과 같이 수정해 주세요. internal class Program { static void Main(string[] args) { Console.WriteLine("안녕, 나는 컴퓨터야. 너는 이름이 뭐니?");..

반응형