Alex17841
?>

На шахматной доске в клетке (x1, y1) находится шахматный ферзь. определите, бьет ли он клетку (x2, y2 на вход программе четыре целых числа x1, y1, x2, y2 (1≤x1, y1, x2, y2≤8) — координаты двух полей на шахматной доске размера 8×8. требуется вывести 1, если ферзь бьет клетку, или 0, если нет.с++

Информатика

Ответы

arnika-ooo1
Ферзь, стоящий в точке (x_1;y_1), может бить фигуры, у которых:
    1) x = x_1
    2) y = y_1
    3) координаты находятся по диагонали от ферзя.

Имеем не самую лучшую и чистую, но рабочую программку:

#include <cstdio>

int main() {
  int x1, x2, y1, y2, x_d1, y_d1, x_d2, y_d2;
  printf("x1=");
  scanf("%d", &x1);
  printf("y1=");
  scanf("%d", &y1);
  printf("x2=");
  scanf("%d", &x2);
  printf("y2=");
  scanf("%d", &y2);

  /* Проверка на линейные совпадения */
  if ( (x1 == x2) or (y1 == y2) ) {
    printf("1");
    return 1;
  }

  /* Поиск пересечения с диагональю 1 */
  x_d1 = x1;
  y_d1 = y1;
  while ( (x_d1 > 1) and (y_d1 > 1) ) {
    x_d1--;
    y_d1--;
    if ( (x2 == x_d1) and (y2 == y_d1) ) {
      printf("1");
      return 1;
    }
  }
  while ( (x_d1 < 8) and (y_d1 < 8) ) {
    x_d1++;
    y_d1++;
    if ( (x2 == x_d1) and (y2 == y_d1) ) {
      printf("1");
      return 1;
    }
  }

  /* Поиск пересечения с диагональю 2 */
  x_d2 = x1;
  y_d2 = y1;
  while ( (x_d2 < 8) and (y_d1 > 1) ) {
    x_d1++;
    y_d1--;
    if ( (x2 == x_d2) and (y2 == y_d2) ) {
      printf("1");
      return 1;
    }
  }
  while ( (x_d1 > 1) and (y_d1 < 8) ) {
    x_d1--;
    y_d1++;
    if ( (x2 == x_d2) and (y2 == y_d2) ) {
      printf("1");
      return 1;
    }
  }
 
  printf("0");
  return 0;
}
Olga_Vyacheslavovich1054

У маркірованих списках кожний абзац починається з жирної цятки. У нумерованих списках кожний абзац починається з виразу, який включає до себе номер або букву, а також роздільний знак, такий, як точка або дужки. Цифри у нумерованих списках оновлюються автоматично при додаванні або видаленні абзаців списку. Ви можете змінити тип стилю нумерації або маркерів, роздільний знак, атрибути шрифту та стилі символів, а також текст та величину відступів.

Ви не можете використовувати інструмент «Текст» для зміни маркерів або цифр у списку. Тим не менше, ви можете редагувати формат та відступи списків за до діалогового вікна «Маркери та нумерація», панелі «Абзац», розділу «Маркери та нумерація» діалогового вікна «Стилі абзаців» (якщо маркери або номери є частиною стилю).

adminaa

Ну вот примерно такое. Правда игра на 1 человека.

import time

name = raw_input ("Как вас зовут?")

print ("Приветствую, %s.") % name

age = raw_input ("Сколько вам лет?")

print ("Начнём же!")

print ("Приветствую, %s.") % (name)

print ("Сегодня у нас проходит игра Правда Или Действие. Если хотите выбрать правду напишите 't' если же действие, то напишите 'd'.")

truth_or_dare = raw_input ("Что вы выбираете?")

while True:

   if truth_or_dare == "t":

       print ("Расскажите мне свой секрет.")

       truth = raw_input ("Какой ваш секрет?")

       print ("Надо это запостить везде")

       time.sleep(2)

       break

   elif truth_or_dare == "d":

       print ("Загадываю тебе уйти отсюда")

       print ("Прощай")

       time.sleep(2)

       break

   else:

       print ("Так как вы ничего не выбрали игра завершилась")

       break

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

На шахматной доске в клетке (x1, y1) находится шахматный ферзь. определите, бьет ли он клетку (x2, y2 на вход программе четыре целых числа x1, y1, x2, y2 (1≤x1, y1, x2, y2≤8) — координаты двух полей на шахматной доске размера 8×8. требуется вывести 1, если ферзь бьет клетку, или 0, если нет.с++
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

samsludmila
alexander4590
Nazaruk_Kodochigov
Ярослав
kobzev-e
Alyona744
Latsukirina
владимировнаКлютко
vera2job7
kolefe22171
IInessa44478
moskvabelarus
Dato24043846
gusinica23
Морозов