Задачи
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