1. C#의 시나리오: 마법사의 학교
이번 시간에는 C#의 기능을 사용한 마법사 학교의 신입생캐릭터를 만들어 마법 기술을 배우고, 이를 통해 적들을 물리치고 퀘스트를 완수하는 코드를 짜보겠습니다. C#의 기능은 마법의 힘과 같습니다. 다양한 마법(기능을) 배우고 사용해 문제를 해결합니다.
- 예시: Add라는 마법을 배우면, 두 숫자를 더하는 능력을 얻게됨
public class Magic
{
public int Add(int a, int b)
{
return a + b;
}
}
- 예시: Fireball 이라는 기술을 배우면, 적에게 볼의 구슬을 날려 피해를 주는 코드
public void CastFireball()
{
Console.WriteLine("Fireball Created!");
}
- 예시: 패턴일치를 통해 상황에 맞는 마법을 사용함, switch 문이나 if문을 사용해 적절하게 마법 선택
public void CastSpeel(string enemyType)
{
switch(enemyType)
{
case "Goblin":
CastFireball();
break;
case "Dragon":
// 다른 마법 사용
break;
default:
Console.WriteLine("No Speel available");
break;
}
}
- 예시: 튜플을 사용해 여러 가지 정보를 묶어 전달하는 마법의 아이템을 정의할 수 있습니다. 여러 정보를 한 번에 사용할 수 있습니다.
// 아이템의 이름과 가격을 함께 전달
public (string, int) GetItem()
{
return ("Position", 50);
}
- 예시: 기타 형식 분배는 복잡한 마법의 조합을 쉽게 사용하는 방법으로, 튜플의 값을 쉽게 분해해 사용할 수 있습니다. 아이템 정보를 분해해 각각의 값을 사용할 수 있습니다.
전체 코드
using System;
public class Magic
{
public static void Main()
{
// 캐릭터 정보 출력
string characterName = "마법사";
int characterLevel = 1;
Console.WriteLine($"캐릭터 이름: {characterName}");
Console.WriteLine($"레벨: {characterLevel}");
Console.WriteLine("\n배운 마법 기술:");
CastFireball();
CastSpell("고블린");
// 아이템 정보 출력
var item = GetItem();
var (itemName, itemPrice) = item; // 튜플 분해
Console.WriteLine($"\n흭득한 아이템: {itemName}, 가격: {itemPrice}");
}
// 마법 기술 메서드
public static void CastFireball()
{
Console.WriteLine("Fireball Created!");
}
public static void CastSpell(string enemyType)
{
switch(enemyType)
{
case "Goblin":
CastFireball();
break;
case "Dragon":
// 다른 마법 사용
break;
default:
Console.WriteLine("No Speel available");
break;
}
}
// 아이템의 이름과 가격을 함께 전달
// 아이템 정보를 분해해 각각의 값을 사용
public static(string, int) GetItem()
{
return ("포션", 50);
}
}
- 캐릭터 정보:
- 캐릭터의 이름과 레벨을 설정해 출력합니다.
- 마법 기술:
- CastFireball 이라는 메서드를 호출해 "파이어볼" 마법을 시전하는 메시지를 출력합니다.
- CastSpell 메서드를 호출해 적의 타입에 따라 다른 마법을 시전합니다.
- 아이템 정보:
- GetItem 메서드를 사용해 아이템의 이름과 가격을 튜플로 반환하고, 이를 분해해 각각의 값을 출력합니다.
GitHub - Koras02/project
Contribute to Koras02/project development by creating an account on GitHub.
github.com
LIST
'게임 모딩 > C#' 카테고리의 다른 글
[C#] 9장, C# 개체 지향 프로그래밍(OOP) (0) | 2025.02.24 |
---|---|
[C#] 8.C#의 네임스페이스, 클래스, 레코드, 인터페이스, 제네릭, 익명 형식 (0) | 2025.02.03 |
[C#] 7. C#의 형식 시스템 (0) | 2025.01.27 |
[C#] 6. C# 프로그램의 일반적인 구조체 (0) | 2025.01.27 |
[C#] 5.목록 형식을 사용한 데이터 컬렉션 관리 (0) | 2025.01.26 |