Pontiac_OnFree
@Pontiac_OnFree
JS Developer

Как добавить генератор символа в строке, через каждые N символов?

результат должен быть таким:
..Q.......
...Q......
Q.........
.......Q..
..Q.......
.........Q
....Q.....
......Q...
...Q......
.....Q....

К примеру, чтобы через каждые N символов строка начиналась с новой строки, и плюс добавлялся один символ случайно в этой строке
Я до такого дошёл:
const chessBoard = (function (size) {
  // Сюда изначально size = 10
  // Формирует Шахматную доску 10 / 10
  let hash = 'Q';
  let space = '.';
  for (let i = 0; i < size; i++) {
    if (i <= 8 && i >= 0) {
      // При этом тут где то должна быть проверка типа if hash.length > 8 or random Number add to one of element this number.lenght random Q
      hash += 'Q';
    }
    hash += '\n';
    for (let j = 0; j < size; j++) {
      if ((i + j) % 2 == 0) {
        // если вместо 0 будет 8 все строки будут из Q
        hash += space;
      } else {
        hash += '.';
      }
    }
  }
  console.log(hash);
})(10);
  • Вопрос задан
  • 102 просмотра
Решения вопроса 2
Seasle
@Seasle Куратор тега JavaScript
Что-то не особо понял задумку. Вы хотите сделать так, чтобы в каждой строке 1 символ менялся на Q?

UPD:
const magic = size => {
  const rows = [];
  const template = '.'.repeat(size);
  for (let row = 0; row < size; row++) {
    const index = Math.floor(Math.random() * size);
    const value = `${template.slice(0, index)}Q${template.slice(index + 1)}`;
    rows.push(value);
  }
  return rows.join('\n');
};

console.log(magic(10));
/*
...Q......
......Q...
Q.........
.........Q
....Q.....
......Q...
.Q........
.....Q....
..Q.......
....Q.....
*/
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
const getStr = length => Array
  .from({ length }, n => (
    n = Array(length).fill('.'),
    n[Math.random() * length | 0] = 'Q',
    n.join('')
  ))
  .join('\n');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
20 нояб. 2024, в 17:49
5000 руб./за проект
20 нояб. 2024, в 17:34
20000 руб./за проект