detro D detro Регистрация 21 Авг 2013 Сообщения 96 Репутация 0 Спасибо 0 Монет 0 5 Ноя 2016 #1 На вход программе даются четыре целых числа x2, y2, x3, y3 (1≤x2,y2,x3,y3≤8) — координаты двух полей на шахматной доске размера 8×8. требуется вывести 1, если ферзь бьет клетку, или 0, если нет. решить в С++
На вход программе даются четыре целых числа x2, y2, x3, y3 (1≤x2,y2,x3,y3≤8) — координаты двух полей на шахматной доске размера 8×8. требуется вывести 1, если ферзь бьет клетку, или 0, если нет. решить в С++
Als Als Регистрация 29 Ноя 2012 Сообщения 152 Репутация 1 Спасибо 1 Монет 0 5 Ноя 2016 #2 bool is_fight(){ //поле 8*8 с индексацией от 1 до 8 if(x2 == x3 || y2 == y3) return true; //проверка на вертикаль и горизонталь for(int i = 0; i < 8; i++){ //проверка на диагональ if(x3 == (x2+i+1) && y3 == (y2+i+1)) return true; if(x3 == (x2+i-1) && y3 == (y2+i-1)) return true; if(x3 == (x2+i-1) && y3 == (y2+i+1)) return true; if(x3 == (x2+i+1) && y3 == (y2+i-1)) return true; } return false; } Позитивный голос 0
bool is_fight(){ //поле 8*8 с индексацией от 1 до 8 if(x2 == x3 || y2 == y3) return true; //проверка на вертикаль и горизонталь for(int i = 0; i < 8; i++){ //проверка на диагональ if(x3 == (x2+i+1) && y3 == (y2+i+1)) return true; if(x3 == (x2+i-1) && y3 == (y2+i-1)) return true; if(x3 == (x2+i-1) && y3 == (y2+i+1)) return true; if(x3 == (x2+i+1) && y3 == (y2+i-1)) return true; } return false; }
gunok G gunok Регистрация 8 Мар 2013 Сообщения 79 Репутация 0 Спасибо 0 Монет 0 5 Ноя 2016 #3 Показывай, что уже сделал. Позитивный голос 0