공부/부트캠프
[멋쟁이사자처럼부트캠프 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