Всем Хай! Сегодня мы добавим цвета в нашу жизнь. А точнее в нашу консоль. Задание у нас будет не сложное, но визуально будет выглядеть прикольно. Сделаем мы отображение жизней и манны, как у персонажа в игре. Ну, там где красной полоской отображается жизнь, а синей мана. В общем, не буду затягивать. Смотрим код.
static void Stat(int value, int maxValue, ConsoleColor color, int position, char simvol)
{
ConsoleColor defoltColor = Console.BackgroundColor;
Console.SetCursorPosition(0, position);
Console.Write("[");
Console.BackgroundColor = color;
for (int i = 0; i < value; i++)
{
Console.Write(simvol);
}
Console.BackgroundColor = defoltColor;
maxValue -= value;
for (int i = 0; i < maxValue; i++)
{
Console.Write("#");
}
Console.Write("]\n");
}
static void Main(string[] args)
{
int health = 5;
int maxHealth = 10;
int mana = 5;
int maxMana = 10;
while (true)
{
Console.WriteLine("Параметры игрока");
Stat(health, maxHealth, ConsoleColor.Red, 2, '_');
Stat(mana, maxMana, ConsoleColor.Blue, 3, '_');
Console.Write("\nЖизней у игрока осталось: ");
health = Convert.ToInt32(Console.ReadLine());
Console.Write("Маны у игрока осталось: ");
mana = Convert.ToInt32(Console.ReadLine());
Console.Clear();
}
}
Пишем функцию.
Так как тема у нас функции то и делаем с начала функцию с основным кодом. И назову я её «Stat», от слова ”статистика”. Функция у нас обычная, никаких значений не возвращает, а это значит, используем переменную «void». В скобках пишем с какими значениями у нас будет работать функция.
Просто возьмите за правила, что всё, что вы будите использовать в функции нужно записать в круглых скобках.
В нашем случае нужно записать следующее.
- Цифровое значение чего-либо - «int value».
- По какому максимальному значению будет отображаться шкала параматров – «int maxValue».
- Цвет нашей шкалы – «ConsoleColor color».
- Где будет отображаться в консоли – «int position».
- И для красоты, какие символы мы можем в неё засунуть – «char simvol»
Сразу запоминаем, какой цвет заливки текста по умолчанию в консоли.
ConsoleColor defoltColor = Console.BackgroundColor
Потом ставим курсор на указанную нами позицию. Менять мы будем только вертикальные координаты. Поэтому вместо них ставим переменную «position».
Console.SetCursorPosition(0, position)
Ставим начальный символ по указанным координатам.
Console.Write("[")
Задаём, каким цветом будет закрашиваться наша полоска.
Console.BackgroundColor = color
И прописываем цикл, где указываем сколько «value» должно закраситься символов «simvol» в нашей строке состояния.
for (int i = 0; i < value; i++)
{
Console.Write(simvol);
}
Опять возвращаем цвет заливки в исходное состояние, чтобы не закрасилось всё остальное.
Console.BackgroundColor = defoltColor
Определяем сколько у нас осталось не закрашенного по простой формуле. От максимального значения отнимаем закрашенные символы.
maxValue -= value
И опять циклом забиваем не закрашенное место символами в нашей строке. И после выводим закрывающую скобку.
for (int i = 0; i < maxValue; i++)
{
Console.Write("#");
}
Console.Write("]\n");
Всё. Наша функция написана. Можем использовать её в коде.
Пишем основной код программы.
Вся программа будет работать в цикле, чтобы она не закрывалась после ввода значении. Но перед циклом нам нужно ввести переменные, с которыми будем работать.
- int health = 5 - жизни по умолчанию.
- int maxHealth = 10 – максимальная отображаемая шкала жизни.
- int mana = 5 – мана по умолчанию.
- int maxMana = 10 - максимальная отображаемая шкала жизни.
Теперь в цикле "while" сразу выводим наши строки состояния игрока, подключая ранее созданую нами функцию "Stat". А в скобках пишем то, что хотим отображать, цвет, координаты и символ.
Console.WriteLine("Параметры игрока\n");
Stat(health, maxHealth, ConsoleColor.Red, 2, '_');
Stat(mana, maxMana, ConsoleColor.Blue, 3, '_');
И просто делаем возможность менять нужные нам параметры через консоль.
Console.Write("Жизней у игрока осталось: ");
health = Convert.ToInt32(Console.ReadLine());
Console.Write("Маны у игрока осталось: ");
mana = Convert.ToInt32(Console.ReadLine());
Последней строчкой очищаем введённые данные на экране.
Console.Clear()
Всё. Программа готова. Видео работы программы ниже.
Смотреть видео работы кода.
Сама программа не сложная. Мы даже массивы не использовали. Главная задача была практика в написании функции. Думаю, мы справились. Если остались вопросы, то пишите их в комментариях. По функциям у нас будет ещё 3 статьи. И это не просто статьи. Будем писать игру «Pacman».
Кода много, сложность для меня высокая. Поэтому разбиваю на три статьи. И если не хотите пропустить, то обязательно подписывайтесь на канал. Ну а я с вами прощаюсь до послезавтра. Пока!
#it #разработкаигр #программированиеснуля #программированиедляначинающих #какстатьпрограммистом #csharp #сишарп