Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Shok777
-29 / 0 / 0
Регистрация: 03.10.2015
Сообщений: 12
#1

Шахматы. Ферзь - C++

20.10.2015, 23:44. Просмотров 535. Ответов 1
Метки нет (Все метки)

Поле шахматной доски определяется парой натуральных чисел, первое из которых задает номер вертикали, а второе — номер горизонтали. Даны натуральные числа k, I, m, n. Требуется выяснить, угрожает ли ферзь, стоящий на поле .(k, l), полю (m, n).

Добавлено через 2 минуты
Есть вариант решения, но где ошибка? И можно ли было сделать попроще?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <stdio.h>
#include <conio.h>
 
 
 
short int Diagonal(int k, int l, int m, int n) { 
 if((k>m) && (l>n)) {
  int i=k;
  int j=l;
  while(i!=m) {
   i--;
   j--;
  }
  if(j==n) return 1;
  else return 0;
 } else if((k<m) && (l>n)) {
  int i=k;
  int j=l;
  while(i!=m) {
   i++;
   j--;
  }
  if(j==n) return 1;
  else return 0;
 } else if((k<m) && (l<n)) {
  int i=k;
  int j=l;
  while(i!=m) {
   i++;
   j++;
  }
  if(j==n) return 1;
  else return 0;
 } else if((k>m) && (l<n)) {
  int i=k;
  int j=l;
  while(i!=m) {
   i--;
   j++;
  }
  if(j==n) return 1;
  else return 0;
 } 
}
 
 
 
int main()
{
 int k, l, m, n;
 printf("\n Vvedite chisla  k, l, m, n : \n");
 scanf("%d %d %d %d", &k, &l, &m, &n);
 if(k==m || l==n) 
 {
  printf("\n Threat\n");
 }
 else if(Diagonal(k,l,m,n))
 {
  printf("\n Threat\n");
 }
 else 
 {
  printf("\n Not Threat\n");
 }
 getch();
 return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2015, 23:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Шахматы. Ферзь (C++):

Шахматы. Каждый ферзь бьет ровного одного ферзя - C++
Всем привет! Помогите решить задачу: Расставить на шахматной доске максимальное число ферзей так, чтобы каждый нападал ровно на одного...

ферзь - C++
Всем доброго времени суток помогите найти ошибку в решений задачи Даны координаты доски 2-х различных полей шахматной доски...

Определить, угрожает ли ферзь фигуре - C++
Привет Всем !!!! Определить,угрожает ли ферзь, расположенный на поле ( n1,m1 ) шахматной доски ,фигуре, расположенной на поле ( n2,m2...

Определить, угрожает ли ферзь полю с заданными координатами - C++
Поле шахматной доски определяется парой натуральных чисел, первое число - номер вертикали, второе - номер горизонтали. Даны натуральные...

Проверить, угрожает ли ферзь фигуре на шахматной доске - C++
Поле шахматной доски определяется парой натуральных чисел, первое число-номер вертикали, второе-номер горизонтали. Даны натуральные числа...

Определить, бьет ли ферзь, находящийся в клетке (xy, y1) клетку (x2, y2) - C++
На шахматной доске в клетке (x1, y1) находится шахматный ферзь. Определите, бьет ли он клетку (x2, y2). #include &lt;iostream&gt; using...

1
ValeryS
Модератор
6746 / 5155 / 493
Регистрация: 14.02.2011
Сообщений: 17,323
20.10.2015, 23:55 #2
вертикаль k==m
горизонталь l==n
дигональ abs(k-l)==abs(m-n)

Добавлено через 1 минуту
Цитата Сообщение от Shok777 Посмотреть сообщение
if(k==m || l==n)
это поле где стоит ферзь
бьет ли ферзь сам себя?

Добавлено через 6 минут
Цитата Сообщение от Shok777 Посмотреть сообщение
if(k==m || l==n)
пардон,оплошал
это вертикали и горизонтали
а где стоит ферзь это
C++
1
if(k==m &&l==n)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.10.2015, 23:55
Привет! Вот еще темы с ответами:

Шахматная доска: угрожает ли ферзь, стоящий на поле (k, l), полю (m, n)? - C++
Собственно,условие вот. Поле шахматной доски определяется парой натуральных чисел, первое из которых задает номер вертикали, а второе —...

Определить класс «Шахматная фигура» и производные классы «Ферзь» - C++
Дело в том, что начал изучать ООП не так давно и тут попалась задачка, которая заинтересовала. Условие таково: &quot;Определить класс «Шахматная...

Необходимо выяснить:если на клетке (a,b) расположен ферзь,угрожает ли он полю (c,d) - C++
Поле шахматной доски имеет размер 8х8.Клетки определяются координатами,первая из которых - номер вертикали(слева направо),а вторая - номер...

Проверить, что ферзь за один ход может перейти с одного поля на другое - C++
Задание: Даны координаты двух различных полей шахматной доски x1, y1, x2, y2(целые числа, лежащие в диапазоне 1-8). Проверить истинность...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.