Задачи
August 29, 2023
Design Bitmap game
Данный алгоритм использует многострочную строку в качестве битовой карты - двумерного изображения с двумя возможными цветами для каждого пикселя - для определения того, как она должна отображать сообщение пользователя.
В этом растровом изображении символы пробела представляют собой пустое пространство, а все остальные символы заменяются символами сообщения пользователя.
Попробуйте поэкспериментировать с различными сообщениями, чтобы увидеть, как выглядят результаты!
Реализация
internal class Bitmap
{
private const string Map =
@"
....................................................................
************** * *** ** * ******************************
********************* ** ** * * ****************************** *
** ***************** ******************************
************* ** * **** ** ************** *
********* ******* **************** * *
******** *************************** *
* * **** *** *************** ****** ** *
**** * *************** *** *** *
****** ************* ** ** *
******** ************* * ** ***
******** ******** * *** ****
********* ****** * **** ** * **
********* ****** * * *** * *
****** ***** ** ***** *
***** **** * ********
***** **** *********
**** ** ******* *
*** * *
** * *
....................................................................
";
public const string Name = "BitMap";
public const string Description = "BitMap Game";
public void Play()
{
Console.WriteLine(Name);
Console.WriteLine(Description);
while (true)
{
Console.WriteLine("\nWanna play?! Let's play !");
Console.WriteLine("Enter the message to display with the bitmap.");
string message = Console.ReadLine();
if (!string.IsNullOrEmpty(message))
{
for (int i = 0; i < Map.Length; i++)
{
if (Map[i] != '*')
{
Console.Write(Map[i]);
}
else
{
Console.Write(message[i % message.Length]);
}
}
}
Console.WriteLine("Wanna play again?!");
var answer = Console.ReadLine();
if (answer == null || !answer.Contains("y", StringComparison.OrdinalIgnoreCase))
{
break;
}
}
Console.WriteLine("Thanks for this game!");
}
}https://github.com/unilecs/ugames/blob/main/games/Bitmap.cs
Play-test
https://dotnetfiddle.net/CQ70vY