@d0berr

Как разместить массив из букв в таблицу?

Изучаю 2 месяца C#. И решил сделать простую игру с простым функционалом. Как бы сама таблица построена 10х10 и заполнена рандомными буквами. Сами слова будут хранится в массиве.
63518901d3ad6054462904.png

Так вот, я не как не могу разобраться, как мне спрятать буквы по вертикали или горизонтали в таблице и потом свободные клетки заполнить рандомными буквами?

Например слово которое я хочу спрятать " House" что бы мой конечный результат был что то вроде этого
635189dfbccda438157309.jpeg.

Нужно что бы рандомно выбирался индекс и в то место вставлялось слово если оно помещается
Я еще плохо работаю с вложенными циклами и с 2мерными массивами и просто не могу догнать

Код для рандомных букв. Тут буквы отображаються в консоли
static void Main(string[] args)
    {
        RandomChar();
    }   

    public static void RandomChar()
    {
        Random rchar = new Random();
        char[,] arr = new char[10, 10];
        for (int i = 0; i < arr.GetLength(0); i++)
        {
            for (int x = 0; x < arr.GetLength(1); x++)
            {
                arr[i, x] = (char)(rchar.Next(65, 91));
                Console.Write(arr[i, x] + " ");
            }
            Console.WriteLine();
        }
    }
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ответы на вопрос 1
@oleg_ods
Первое что приходит в голову:
1) Загадываем слово. Например, «house».
2) Считаем кол-во букв. Получается 5.
3) Создаем пустой массив 10х10
4) Определяемся как будем вставлять слово по вертикали/по горизонтали.
5) Генерируем индекс [row, column] с которого будем начинать вставлять слово. К примеру, если решили вставлять по горизонтали, генерируем row в диапазоне от 0 до 10 и column в диапазоне от 0 до 5 (ширина массива минус длина вставляемого слова).
6) Вставляем слово в массив горизонтально начиная с индекса полученного на шаге 5.
7) Проходим по всему массиву и если текущий символ равен значению по умолчанию вставляем случайный символ.
8) Радуемся
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы