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*
Комментарий*

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

Дубровская571
Lazar
nuralievelsh
bellaalya13862
Стадник620
zoocenterivanoff51
Татьяна1045
silantyevevgeny
klykovav672
rashad8985
sadkofamily61
amayonova
kengyra
amaraks67
LYuBOV