
-Visual Studio 2022를 실행하여 준 후, 새 프로젝트 만들기를 눌러줍니다.

-드롭다운 리스트에서 각각 C#, Windows, 콘솔을 눌러주신 후 나오는 두 개의 옵션 중, 닷넷 프레임워크가 적힌것을 클릭 후 ‘다음’을 눌러줍니다.

-솔루션 및 프로젝트를 같은 디렉터리에 배치를 체크!

-제대로 준비가 되었다면 현재 화면이 출력됩니다.

// 주석 : 소스 코드에서 의도를 설명하기 위한 용도의 작성글
/* 범위 주석 : 시작(/*)에서 끝(* /) 까지 주석으로 취급
프로그램은 위에서 부터 차례로 실행한다.
오타를 알아서 수정하지 않는다.
명령의 마지막은 ; 으로 표시해야 한다.
*/
Console.WriteLine("안녕하세요.");
Console.Write("이름 : ");
Console.WriteLine("이세준");
//Console.WriteLine("아직 만들고 있는 중인 코드인데 실행되면 안되는데....");
Console.WriteLine(""); //줄바꿈을 위한 빈줄 작성
// 여러열을 Alt 드래그 하면 동시에 작성 및 수정 가능
Console.WriteLine("내용작성");
Console.WriteLine("내용작성");
Console.WriteLine("내용작성");
Console.WriteLine("내용작성");
Console.WriteLine("");
// \ : 이스케이프 시퀸스
// 나는 "경고"를 했다.
**역슬레쉬가 안될때는 도구->옵션->글꼴 에서 Consolas로 변경!!**
Console.WriteLine("나는 다섯줄 뒤에 \n\n\n\n\n \"경고\"를 했다.");
Console.WriteLine("");
// 프로그램은 0부터 시작한다. 0,1,2,3,4
//자리표시자 0 : 몬스터 이름, 1: 공격력 2: 방어력
Console.WriteLine("{0}는/은 공격력 {1}을 가지고, 공격을 하면 {0}이/가 {1}의 데미지를 주며, {1}이 띄워집니다.", "오크", 10, 20);
Console.WriteLine("{0}는/은 공격력 {1}을 가지고, 공격을 하면 {0}이/가 {1}의 데미지를 주며, {1}이 띄워집니다.", "슬라임", 3, 30);
Console.WriteLine("{0}는/은 공격력 {1}을 가지고, 공격을 하면 {0}이/가 {1}의 데미지를 주며, {1}이 띄워집니다.", "드래곤", 100, 50);
Console.WriteLine("");
//Console.WriteLine("오크는 공격력 10을 가지고, 공격을 하면 오크가 10의 데미지를 주며, 10이라고 하는 데미지 숫자를 표현해 줍니다.");
//Console.WriteLine("슬라임는 공격력 3을 가지고, 공격을 하면 슬라임가 3의 데미지를 주며, 3이라고 하는 데미지 숫자를 표현해 줍니다.");
//Console.WriteLine("드래곤는 공격력 10을 가지고, 공격을 하면 드래곤가 100의 데미지를 주며, 100이라고 하는 데미지 숫자를 표현해 줍니다.");
/*********************************************************************************
<변수 (variable)>
1. 데이터를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간
2. 데이터를 저장할 수 있는 메모리 공간을 의미하며, 저장된 값은 변경 가능
*********************************************************************************/
//정수(integer) : 0, 1, 2, -10, -30, 80
int attack = 0; //공격력
int defense = 200; //방어력
attack = 100;
Console.WriteLine("공격력 {0}으로 공격합니다", attack);
Console.WriteLine("");
/*********************************************************************************
<변수 선언 및 초기화>
1. 자료형의 선언하고 빈칸 뒤에 변수이름을 작성하여 변수 선언
2. 선언한 변수에 값을 처음 할당하는 과정을 초기화라고 함
3. 변수 선언과 초기화 과정을 동시에 진행할 수 있음
*********************************************************************************/
int iValue = 10; // int 자료형의 이름이 intValue인 변수에 10의 데이터를 초기화
float fValue; // float 자료형의 이름이 floatValue인 변수를 선안하지만 값을 초기화하지 않음
// int iValue; // error : 같은 이름의 변수는 사용 불가
// Console.WriteLine(floatCalue); // error : 선언한 변수에 값을 초기화가기 전까지 사용 불가
/*********************************************************************************
<변수명 규칙>
1. 변수명은 유의미한 단어를 쓰자!
2. 띄어쓰기 불가능 (카멜표기법 : 띄어쓰기 대신 단어의 시작마다 대문자로 표현을 해줌)
3. 특수문자 불가능
4. 숫자부터 시작 불가능
*********************************************************************************/
int attackDelayTime = 20; //카멜표기법
int level = 1;
Console.WriteLine("게임 시작시 레벨은 {0}입니다.", level);
Console.WriteLine("플레이어가 전투에서 승리했습니다.");
Console.WriteLine("레벨이 올랐습니다!!");
level = 2;
Console.WriteLine("레벨은 {0}입니다.", level);
Console.WriteLine("");
/*********************************************************************
<상수 (Constant)>
1. 프로그램이 실행되는 동안 변경할 수 없는 데이터
2. 프로그램에서 값이 변경되기를 원하지 않는 데이터가 있을 경우 사용
3. 저장된 값은 프로그램 종료시까지 변경 불가능
**********************************************************************/
const string gameName = "레전드 RPG"; // const = 바꿀 수 없는 값
int maxPlayer = 8;
// gameName = "다른 게임 이름"; //변경 불가능
maxPlayer = 7; //변경가능
Console.WriteLine("{0} 시작!", gameName);
/*********************************************************************
<자료형 (Data Type)>
1. 자료(데이터)의 형태를 지정
2. 데이터가 메모리에 저장되는 형태와 처리되는 방식을 명시하는 역할
3. 0과 1만으로 구성된 컴퓨터에게 여러 형태의 자료를 저장하기 위함
**********************************************************************/
// 자료형의 종류
// - 논리형 -
bool connect = false; // 참, 거짓
// - 정수형 -
// byte, sbyte 부호없는 정수형
// short, int, long 부호있는 정수형 - +
// ushort, uint, ulong 부호없는 정수형 0~65,535 0~4,294,967,295
// **int가 기본!!**
// - 실수형 -
// float, double 부동소수점 실수 -> 소수점 7자리, 15자리
// **게임 개발에서는 float를 많이 씀!!**
float rate = 0.25f; // **소수점 쓸때는 항상 f를 붙여!!**
// - 문자형 -
// char, string 유니코드 문자형, 문자열 -> 'a' '한' , "안녕" "abcde"
char key = 'd';
string name = "안녕하세요";
이스케이프 시퀀스는 역슬래시() 기호와 특정 문자의 조합으로 이뤄진다. 이를 통해 특수문자를 문자열에 포함시킬 수 있으며, 특별한 기능을 제공하기도 한다.
| 이스케이프 시퀀스 | 이름 | 설명 |
|---|---|---|
\n | 개행(New Line) | 새로운 줄로 이동 |
\r | 복귀(Carriage Return) | 커서를 현재 줄의 처음으로 이동 |
\t | 탭(Tab) | 일정한 간격의 공백 삽입 |
\b | 백스페이스(Backspace) | 이전 문자 삭제 |
\f | 폼 피드(Form Feed) | 프린터에서 새로운 페이지로 이동 |
\v | 수직 탭(Vertical Tab) | 수직 탭 삽입 (일반적으로 사용되지 않음) |
\\ | 역슬래시(Backslash) | \ 문자 자체를 출력 |
\' | 작은 따옴표(Single Quote) | ' 문자 자체를 출력 |
\" | 큰 따옴표(Double Quote) | " 문자 자체를 출력 |
\0 | 널 문자(Null Character) | 널(Null) 문자 삽입 |
\uXXXX | 유니코드 문자(Unicode Character) | 16진수 코드 XXXX에 해당하는 유니코드 문자 삽입 |
\xXX | 유니코드 문자(Unicode Character) | 16진수 코드 XX에 해당하는 유니코드 문자 삽입 (길이 가변) |
다만 역슬래시를 많이 작성해야 하는 코드의 경우 이스케이프 시퀀스와 중복될 수 있어 역슬래시를 두번씩 쓰곤 한다. 이로 인한 피로감 때문에 리터럴 문자열을 사용하는 편이 좋다. 리터럴 문자열을 사용하면 역슬래시를 여러번 작성하지 않아도 된다. 주로 파일 경로 등을 출력해야 할 때 자주 사용된다.