Показать сообщение отдельно
  #1 (permalink)  
Старый 14.04.2020, 18:13
Новичок на форуме
Отправить личное сообщение для Nicanor13 Посмотреть профиль Найти все сообщения от Nicanor13
 
Регистрация: 18.03.2020
Сообщений: 9

Свобоные ходи короля
В стандартной доске ферзь может двигаться в произвольном направлении и произвольному шагами.
https://javascript.ru/forum/attachme...d=158687706 1
А король может двигаться в произвольном направлении, но только одним единичным расстоянием.
https://javascript.ru/forum/attachme...d=158687711 2
У нас есть массив x = [x0, x1, x2]. Где x0 показывает изначальную позицию короля а x1, x2 изначальные позиции двух ферзей.
Нужно написать функцию которая получает массив x и возвращает массив тех позиций где король может двигаться не попав под удар ферзьей. Если нет свободных ходов вернуть -1.
Например в первом рисунке
https://javascript.ru/forum/attachme...d=158687716 8

x = ["D2", "A4", "E4"]
у короля есть два свободных поля "C1", "C3" означает что должен получаться ["C1", "C3"]

function kingFree(x) {}


console.log(kingFree(["D2", "A4", "E4"]));    // ["C1", "C3"]
console.log(kingFree(["D2", "A1", "F3"]));    // ["C2"]
console.log(kingFree(["E5", "A6", "F8"]));    // ["D4", "D5", "E4"]
console.log(kingFree(["G5", "E6", "H2"]));    // -1
console.log(kingFree(["A3", "C6", "E2"]));    // ["B3", "B4"]
console.log(kingFree(["D4", "A8", "B1"]));    // ["C3", "C4", "C5", "E3", "E5"]
console.log(kingFree(["A1", "B8", "C5"]));    // ["A2"]
console.log(kingFree(["C2", "B4", "F1"]));    // -1
console.log(kingFree(["C2", "A3", "H1"]));    // ["D2"]
console.log(kingFree(["F3", "C7", "D8"]));    // ["E2", "E3", "E4", "F2", "G2", "G4"]

Поможете решить задачу?
Изображения:
Тип файла: png 1.png (38.5 Кб, 4 просмотров)
Тип файла: png 2.png (50.2 Кб, 2 просмотров)
Тип файла: png 3.png (25.1 Кб, 3 просмотров)

Последний раз редактировалось Nicanor13, 14.04.2020 в 18:16.
Ответить с цитированием