Написать игру в которой имитируется бросание кубиков игроком. Игра должна представлять собой консольное приложение. В игре 2 кубика и на каждом из них может выпасть от 1 до 6 очков. Пользователь загадывает число от 2 до 12, затем бросает кости. После броска показать, нарисованные символами кубики и количество очков, выпавших на них.
Конечное число выигранных очков будет высчитываться по формуле:
x - Math.Abs(x-y)*2, где:
x - количество очков выпавшее на костях
y - загаданное число очков
То есть конечным количеством очков будет количество выпавших на костях очков минус удвоенная ошибка в догадке.
Пользователь выигрывает, если в результате выходит количество очков больше нуля. В конце нужно отобразить формулу расчета очков, конечное количество очков с вычетом удвоенной ошибки в догадке и вынести вердикт - выиграл пользователь или проиграл.
Ответы
Ответ:
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Добро пожаловать в игру 'Брось кости'!");
Console.WriteLine("Загадайте число от 2 до 12:");
// Получаем число, которое загадал пользователь
int загаданное_число = ПолучитьЦелоеЧисло(2, 12);
// Бросаем кости
Random случай = new Random();
int кость1 = случай.Next(1, 7);
int кость2 = случай.Next(1, 7);
// Выводим результат броска костей
ВывестиКости(кость1, кость2);
// Рассчитываем количество очков
int выпавшие_очки = кость1 + кость2;
int удвоенная_ошибка = Math.Abs(выпавшие_очки - загаданное_число) * 2;
int конечные_очки = выпавшие_очки - удвоенная_ошибка;
// Выводим формулу и результат
Console.WriteLine($"Формула: {выпавшие_очки} - Math.Abs({выпавшие_очки} - {загаданное_число})*2");
Console.WriteLine($"Конечное количество очков: {конечные_очки}");
// Проверяем, выиграл пользователь или проиграл
if (конечные_очки > 0)
{
Console.WriteLine("Вы выиграли!");
}
else
{
Console.WriteLine("Вы проиграли.");
}
}
// Метод для получения целого числа в заданном диапазоне
static int ПолучитьЦелоеЧисло(int мин, int макс)
{
int число;
while (true)
{
if (int.TryParse(Console.ReadLine(), out число) && число >= мин && число <= макс)
{
return число;
}
else
{
Console.WriteLine($"Пожалуйста, введите целое число от {мин} до {макс}:");
}
}
}
// Метод для вывода символов костей
static void ВывестиКости(int кость1, int кость2)
{
Console.WriteLine("Бросок костей:");
Console.WriteLine($"Кость 1: {ВернутьСимволКости(кость1)}");
Console.WriteLine($"Кость 2: {ВернутьСимволКости(кость2)}");
}
// Метод для получения символа, представляющего кость
static string ВернутьСимволКости(int значение)
{
switch (значение)
{
case 1: return "⚀";
case 2: return "⚁";
case 3: return "⚂";
case 4: return "⚃";
case 5: return "⚄";
case 6: return "⚅";
default: return "?";
}
}
}
Объяснение: