공부/부트캠프

[멋쟁이사자처럼부트캠프 Unity게임개발 4기] 2일차 변수와 자료형 & 입출력 + 콘솔 텍스트 게임 실습

knhoo 2025. 2. 21. 17:30
728x90

1. C# 입력과 출력

1-1. 기본 출력

Console.WriteLine("Hello, World!"); //줄바꿈 포함
Console.Write("Hello, World!"); //줄바꿈 미포함

1-2. 데이터 입력받은 뒤 출력하기

Console.Write("이름을 입력하세요 : ");
/string userName = Console.ReadLine();//사용자로부터 입력받기

Console.WriteLine($"안녕하세요, {userName}님!");
Console.WriteLine("안녕하세요, "+ userName +"님!"); //입력받은 값으로 출력

 

1-3. 입력받은 문자열을 정수, 실수로 변환하기

float skilldam;//스킬 피해량
int max_Mana; //최대 마나량


Console.Write("스킬 피해량: ");
skilldam = float.Parse(Console.ReadLine());//실수로 변환

Console.Write("최대 마나량: ");
max_Mana = Int.Parse(Console.ReadLine());//정수로 변환

 

2. 자료형

2-1. 문자 자료형 char

단일 문자를 저장하는 자료형이다.

2바이트 크기

// char 형식: 단일 문자를 표현
char letter = 'A'; // 문자 'A' 저장
char symbol = '#'; // 특수 기호 저장
char number = '9'; // 숫자 형태의 문자 저장 (문자 '9', 숫자 9 아님)
Console.WriteLine(letter); // 출력: A
Console.WriteLine(symbol); // 출력: #
Console.WriteLine(number); // 출력: 9

 

2-2. 문자열 자료형 string

여러개의 문자로 구성된 문자열을 저장한다.

// string 형식: 여러 문자를 저장
string greeting = "Hello, World!"; // 문자열 저장
string name = "Alice"; // 이름 저장
Console.WriteLine(greeting); // 출력: Hello, World!
Console.WriteLine(name); // 출력: Alice

2-3. 논리 자료형 bool

참(true) 또는 거짓(false) 값을 저장한다.

// bool 형식: 참(True) 또는 거짓(False)
bool isRunning = true; // 프로그램 실행 상태
bool isFinished = false; // 프로그램 종료 상태
Console.WriteLine(isRunning); // 출력: True
Console.WriteLine(isFinished); // 출력: False

 

2-4. 상수 const

const 키워드는 값이 변경되지 않는 변수를 선언할 때 사용한다.

상수는 한 번 초기화된 후 값을 변경할 수 없다.

// const: 변하지 않는 값을 정의
const double Pi = 3.14159; // 원주율
const int MaxScore = 100; // 최대 점수
Console.WriteLine(Pi); // 출력: 3.14159
Console.WriteLine(MaxScore); // 출력: 100
// Pi = 3.14; // 오류! 상수 값은 변경할 수 없습니다.

 

 

2-5. 숫자 자료형

정수 자료형 : int, long, byte, sbyte 등

실수 자료형 : float, double, decimal 등

부호가 있는 데이터 : int, sbyte

부호가 없는 데이터 : uint, byte

리터럴 접미사 : 숫자의 데이터 형식을 명시(f, L, m 등)

// 접미사 사용: 숫자의 데이터 형식을 명시
int integerValue = 100; // 4바이트
long longValue = 100L; // 8바이트

float floatValue = 3.14f; // 4바이트
double doubleValue = 3.14; // 8바이트
decimal decimalValue = 3.14m; // 16바이트


Console.WriteLine(integerValue); // 출력: 100
Console.WriteLine(longValue); // 출력: 100
Console.WriteLine(floatValue); // 출력: 3.14
Console.WriteLine(doubleValue); // 출력: 3.14

8비트 == 1바이트

 

 


콘솔을 이용한 텍스트 게임 실습

🔽코드 보기

더보기
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace TodayTask1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(" -----------------\n" +
                                "| 콘솔텍스트노벨 |\n" +
                                " -----------------\n"+
                                "    로딩중 .\n\n□□□□□□□□□□");
            Thread.Sleep(1000);//1000 == 1초(1000밀리초)
            Console.Clear();//콘솔 화면 지우기
            Console.WriteLine(" -----------------\n" +
                                "| 콘솔텍스트노벨 |\n" +
                                " -----------------\n" +
                                "    로딩중 ..\n\n■□□□□□□□□□");
            Thread.Sleep(1000);//1000 == 1초(1000밀리초
            Console.Clear();//콘솔 화면 지우기
            Console.WriteLine(" -----------------\n" +
                                "| 콘솔텍스트노벨 |\n" +
                                " -----------------\n" +
                                "    로딩중 ...\n\n■■□□□□□□□□");
            Thread.Sleep(1000);//1000 == 1초(1000밀리초)
            Console.Clear();//콘솔 화면 지우기
            Console.WriteLine(" -----------------\n" +
                                "| 콘솔텍스트노벨 |\n" +
                                " -----------------\n" +
                                "    로딩중 .\n\n■■■□□□□□□□");
            Thread.Sleep(1000);//1000 == 1초(1000밀리초)
            Console.Clear();//콘솔 화면 지우기
            Console.WriteLine(" -----------------\n" +
                                "| 콘솔텍스트노벨 |\n" +
                                " -----------------\n" +
                                "    로딩중 ..\n\n■■■■□□□□□□");
            Thread.Sleep(1000);//1000 == 1초(1000밀리초)
            Console.Clear();//콘솔 화면 지우기
            Console.WriteLine(" -----------------\n" +
                                "| 콘솔텍스트노벨 |\n" +
                                " -----------------\n" +
                                "    로딩중 ...\n\n■■■■■□□□□□");
            Thread.Sleep(1000);//1000 == 1초(1000밀리초)
            Console.Clear();//콘솔 화면 지우기
            Console.WriteLine(" -----------------\n" +
                                "| 콘솔텍스트노벨 |\n" +
                                " -----------------\n" +
                                "    로딩중 .\n\n■■■■■■□□□□");
            Thread.Sleep(1000);//1000 == 1초(1000밀리초)
            Console.Clear();//콘솔 화면 지우기
            Console.WriteLine(" -----------------\n" +
                                "| 콘솔텍스트노벨 |\n" +
                                " -----------------\n" +
                                "    로딩중 ..\n\n■■■■■■■□□□");
            Thread.Sleep(1000);//1000 == 1초(1000밀리초)
            Console.Clear();//콘솔 화면 지우기
            Console.WriteLine(" -----------------\n" +
                                "| 콘솔텍스트노벨 |\n" +
                                " -----------------\n" +
                                "    로딩중 ...\n\n■■■■■■■■□□");
            Thread.Sleep(1000);//1000 == 1초(1000밀리초)
            Console.Clear();//콘솔 화면 지우기
            Console.WriteLine(" -----------------\n" +
                                "| 콘솔텍스트노벨 |\n" +
                                " -----------------\n" +
                                "    로딩중 .\n\n■■■■■■■■■□");
            Thread.Sleep(1000);//1000 == 1초(1000밀리초)
            Console.Clear();//콘솔 화면 지우기
            Console.WriteLine(" -----------------\n" +
                                "| 콘솔텍스트노벨 |\n" +
                                " -----------------\n" +
                                "    로딩중 ..\n\n■■■■■■■■■■");
            Console.Clear();


            Console.WriteLine(" -----------------\n" +
                                "| 콘솔텍스트노벨 |\n" +
                                " -----------------\n" + 
                                "\n시작하려면 엔터를 누르세요...");
            Console.ReadLine();
            Console.Clear();


            Console.Write("-----------------------------------------------\n");
            Console.Write("당신은 깊은 어둠이 드리운 숲속에서 깨어났습니다..");
            Console.Write("\n-----------------------------------------------");
            Thread.Sleep(500);
            Console.Write("\t ... ▼ ");

            Console.ReadLine();
            Console.Clear();
            Console.Write("-----------------------------------------------\n");
            Console.Write("깨어난 곳 근처에서 낡은 일기장을 발견합니다.");
            Console.Write("\n-----------------------------------------------");

            Thread.Sleep(1000);
            Console.Write("\t ... ▼");

            Console.ReadLine();
            Console.Clear();
            Console.Write("--------------------------------------------------------------------\n");
            Console.Write("일기장에는 -붉은 달이 뜨면 문이 열린다-라는 문장이 쓰여져 있었습니다.");
            Console.Write("\n--------------------------------------------------------------------");
            Thread.Sleep(1000);
            Console.Write("\t ... ▼");

            Console.ReadLine();
            Console.Clear();
            Console.Write("------------------------------------------------------\n");
            Console.Write("당신은 호기심에 붉은 달이 뜨는 날을 기다리기로 했습니다.");
            Console.Write("\n-------------------------------------------------------");
            Thread.Sleep(1000);
            Console.Write("\t ... ▼");

            Console.ReadLine();
            Console.Clear();
            Console.Write("---------------------------------------------------------------\n");
            Console.Write("마침내 붉은 달이 뜨자, 숲속 깊은 곳에서 신비한 문이 나타났습니다.");
            Console.Write("\n---------------------------------------------------------------");
            Thread.Sleep(1000);
            Console.Write("\t ... ▼");

            Console.ReadLine();
            Console.Clear();
            Console.Write("------------------------------------------------------------\n");
            Console.Write("신비한 문을 통과하자, 처음보는 풍경의 마을이 펼쳐집니다.");
            Console.Write("\n------------------------------------------------------------");
            Thread.Sleep(1000);
            Console.Write("\t ... ▼");

            Console.ReadLine();
            Console.Clear();
            Console.Write("--------------------------------------------------------------------\n");
            Console.Write("마을 사람들은 당신을 보며 \"예언된 자가 왔다\"며 술렁이기 시작합니다");
            Console.Write("\n--------------------------------------------------------------------");
            Thread.Sleep(1000);
            Console.Write("\t ... ▼");

            Console.ReadLine();
            Console.Clear();
            Console.Write("--------------------------------------------------------------------\n");
            Console.Write("알고보니 그들은 오래전 사라진 왕이 돌아오기를 기다리고 있었습니다.");
            Console.Write("\n--------------------------------------------------------------------");
            Thread.Sleep(1000);
            Console.Write("\t ... ▼");

            Console.ReadLine();
            Console.Clear();
            Console.Write("--------------------------------------------------------------------\n");
            Console.Write("당신은 낡은 일기장이 왕이 남긴 마지막 기록이라는 사실을 알게됩니다.");
            Console.Write("\n--------------------------------------------------------------------");
            Thread.Sleep(1000);
            Console.Write("\t ... ▼");

            Console.ReadLine();
            Console.Clear();
            Console.Write("--------------------------------------------\n");
            Console.Write("마을의 운명이 당신에게 주어졌습니다.");
            Console.Write("\n--------------------------------------------");
            Thread.Sleep(1000);
            Console.Write("\t ... ▼");

            Console.ReadLine();
            Console.Clear();
            Console.Write("-------------------------------------------------------------------\n");
            Console.Write("-사라진 왕의 행방을 찾을 것인가, 아니면 새로운 길을 열 것인가?-.");
            Console.Write("\n-------------------------------------------------------------------");
            Thread.Sleep(1000);
            Console.Write("\t ... ▼");

            Console.ReadLine();
            Console.Clear();
            Console.Write("-------------------------------\n");
            Console.Write("2편에서 계속...");
            Console.Write("\n-------------------------------");
            Console.Write("\n스토리는 챗지피티를 참고했습니다.");

            Thread.Sleep(1000);




        }
    }
}

 

 


+추가

🔹 닷넷(.NET)이란?

.NET(닷넷)마이크로소프트(Microsoft)에서 개발한 프레임워크 및 런타임 환경으로, 다양한 애플리케이션(웹, 데스크톱, 모바일, 게임 등)을 개발할 수 있도록 지원하는 플랫폼입니다.

닷넷은 단순한 프로그래밍 언어가 아니라 다양한 언어(C#, VB.NET, F# 등)를 지원하며, 강력한 라이브러리와 런타임 환경을 제공하는 통합 개발 플랫폼입니다.

 

🔹 프레임워크(Framework)란?

프레임워크(Framework)개발을 쉽게 할 수 있도록 미리 제공되는 코드와 도구들의 집합입니다.
쉽게 말해, 어떤 프로그램을 만들 때 기본 틀(뼈대)을 제공하는 것이라고 할 수 있습니다.

 

🔹 프레임워크의 예시

1️⃣ 웹 프레임워크

  • ASP.NET Core → C# 기반의 웹 개발 프레임워크
  • Spring → Java 기반의 웹 프레임워크
  • Django → Python 기반의 웹 프레임워크

2️⃣ 게임 프레임워크

  • Unity → C# 기반의 게임 개발 엔진 (프레임워크 역할도 함)
  • Unreal Engine → C++ 기반의 게임 엔진

3️⃣ 모바일 개발 프레임워크

  • .NET MAUI → C# 기반의 모바일 & 데스크톱 앱 프레임워크
  • Flutter → Dart 기반의 모바일 앱 개발 프레임워크

 

- 출처 : ChatGPT

728x90