플레이어에게 4개의 스킬이 있고, 각각 쿨타임이 존재. 매 턴마다 쿨타임이 줄어드는 기능 제작
엔터 한번 입력 받을때마다 혹은 특정 키 한번 입력 할때마다 한 턴이 흐름
- 길이가 4인 int 배열 skillCooldowns를 만들기
- 초기값은 [5, 3, 10, 7]
- 매 턴마다 배열의 모든 값을 1씩 줄임
- 쿨타임이 0 이하가 되면 "스킬 X 사용 가능!"을 출력하고, 값을 그대로 0으로 유지
- 매 턴마다 배열의 상태를 출력
string[] skills = { "꿰뚫는 빛(Piercing Light)",
"타는 불길(Ardent Blaze)",
"끈질긴 추격(Relentless Pursuit)",
"빛의 심판(The Culling)"
};
int[] skillCooldowns = { 5, 3, 10, 7 };
bool[] cooldowns = { false, false, false, false };
while (true)
{
//foreach (var skill in skills)
//{
// Console.Write(skill);
// Console.Write("\t");
//}
Console.WriteLine();
//스킬 쿨 되면 됬다고 표시
for (int i = 0; i < skillCooldowns.Length; i++)
{
if (skillCooldowns[i] > 0)
{
skillCooldowns[i] -= 1;//1씩줄임
}
if (skillCooldowns[i] == 0)
{
cooldowns[i] = true;
}
}
for (int i = 0; i < skills.Length; i++)
{
if (cooldowns[i] == true)
{
Console.WriteLine();
Console.WriteLine($"{skills[i]} 사용 가능!\t");
}
else
{
Console.WriteLine();
Console.WriteLine($"{skills[i]} 사용 불가!\t");
}
Console.WriteLine($"{skillCooldowns[i]} 턴 남음!\t");
}
Console.ReadLine();
Console.Clear();
}
나름 볼만하게 들여쓰기와 줄바꾸기 기능을 열심히 썻다.
스킬 이름들은 리그 오브 레전드의 루시안 스킬 이름들이다 ㅎㅎ 그냥 그런갑다 하고 넘어가 주시길.
우선 이 코드의 주제는
어떤 캐릭터가 4개의 스킬을 가지고 있는데, 스킬 마다 쿨타임이 다르고 그 쿨타임별로 사용가능하게 설정 하는 코드이다.
즉 드디어 게임코딩같은 느낌의 코드가 첫발을 내딛은 기분이다.
skills 배열은 스킬명
skillCooldowns 배열은 스킬 쿨타임
cooldowns 배열은 스킬이 현재 사용가능한가
이렇게 세개의 배열로 나누었고, 각 인덱스가 같은걸 공유
즉, 0번스킬 의 쿨타임이 0번 쿨이고, 0번 상태라는 걸로 정해놓고 시작했다.
프로그램을 언제 끝내란 소린없어서 그냥 while(true)로 고정해서 사용했다.
이렇게 되면 보통 무한 루프에 걸리지만
Console.ReadLine(); 을 입력해서 입력하는 동안에는 멈추므로 우리눈에는 멀쩡해 보일것이다.
뭐 강제로 끄게만든 프로그램이니 다음부턴 지문에 없어도 한번 만들어는 놔야겠다.
어차피 while 문이라 break 하나만 추가해서 if 조건을 걸면 되니깐 말이다.
턴 넘기는건 어차피 어떤걸 입력받아도 사용하는 코딩은 아니므로 관상용! 즉 아무런키나 눌러도 되길래 그냥...
받아도 평소대로 돌아가게 만들었다.
오늘은 배열이 추가되서 말이 많아졌는데, 아무튼 게임다워서 꽤나 재밌었다. ㅎㅎ
'프로그래밍 언어 > C#' 카테고리의 다른 글
인벤토리 같은 배열 초기화 (1) | 2024.11.29 |
---|---|
2차 배열과 그 안의 값을 교환해보기 (1) | 2024.11.28 |
사용자에게 순서대로 값 입력을 받아 순서대로 배열에 담기 (1) | 2024.11.28 |
숫자 야구 게임 제작 (1) | 2024.11.27 |
원하는 다이아몬드 크기 출력하기! (0) | 2024.11.27 |