Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
Andryuha777
0 / 0 / 0
Регистрация: 03.06.2010
Сообщений: 10
#1

ШАХМАТЫ решить

03.06.2010, 21:22. Просмотров 1239. Ответов 6
Метки нет (Все метки)

Всем кто зашел здрасьте.
Помогите пожалуйста решить задачу про шахматы вот текст:

Условный оператор. Решение задач: Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8: первое число – номер вертикали (при счете слева направо), второе – номер горизонтали (при счете снизу вверх). Даны натуральные числа a, b, c, d, e, f, каждое из которых не превосходит 8. Составить программу проверки условия, при котором белая фигура, расположенная на поле (a, b), может одним ходом пойти на поле (e, f), не попав при этом под удар черной фигуры, находящейся на поле (c, d). Рассмотреть следующий вариант сочетания белой и черной фигур: ферзь и конь

СРОЧНО НАДО
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2010, 21:22
Ответы с готовыми решениями:

Шахматы.
Поле шахматной доски определяется парой чисел, каждое из которых не превосходит...

Конь и шахматы.
Прошу помощи . Дали задание на паскале , как сделать - незнаю . С паскалем не в...

Шахматы. Слон
76 Поле шахматной доски определяется парой натуральных чисел, каждое из которых...

Шахматы (Графика)
Как по проще нарисовать ферзя(через moveto, lineto). Чтобы одна линия выходила...

Записи и множества.Шахматы
Даны координаты n фигур на шахматной доске и координаты ладьи. Определить,...

6
кот Бегемот
Платежеспособный зверь
8449 / 3900 / 1515
Регистрация: 28.10.2009
Сообщений: 10,101
03.06.2010, 22:23 #2
Здесь посмотри, тут куча вариантов
http://www.cyberforum.ru/pascal/thre...297-page2.html
0
Andryuha777
0 / 0 / 0
Регистрация: 03.06.2010
Сообщений: 10
03.06.2010, 22:55  [ТС] #3
нет у Puporev что-то левое
мне надо координаты фигур вводить с клавы НЕ RANDOM'ом
причем первые координаты белого ферзя, вторые черного коня, третьи целевого поля
0
кот Бегемот
Платежеспособный зверь
8449 / 3900 / 1515
Регистрация: 28.10.2009
Сообщений: 10,101
03.06.2010, 23:08 #4
ну, напиши вместо
Pascal
1
2
3
4
5
6
7
randomize;
a:=random(8)+1;
b:=random(8)+1;
c:=random(8)+1;
d:=random(8)+1;
e:=random(8)+1;
f:=random(8)+1;
ручной ввод:
Pascal
1
readln(a,b,c,d,e,f);
остальное-то верно
0
Andryuha777
0 / 0 / 0
Регистрация: 03.06.2010
Сообщений: 10
03.06.2010, 23:34  [ТС] #5
не выходит
мне надо ферзь и конь
а в задаче от Puporev наоборот конь и ферзь
кто Бегемот или Puporev пожалуйста переделайте
0
кот Бегемот
Платежеспособный зверь
8449 / 3900 / 1515
Регистрация: 28.10.2009
Сообщений: 10,101
03.06.2010, 23:51 #6
Всё там правильно или у меня, или у Puporev, потому что мы с ним противоположные задачи решали.
0
Puporev
Модератор
54387 / 41968 / 28988
Регистрация: 18.05.2008
Сообщений: 98,861
05.06.2010, 16:42 #7
Pascal
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
uses crt;
type pole=1..8;
var a,b,c,d,e,f:pole;
    k:integer;
begin
clrscr;
repeat
writeln('Введите координаты белого ферзя(1-8,1-8):');
readln(a,b);
until(a in [1..8])and(b in [1..8]);
repeat
writeln('Введите координаты черного коня(1-8,1-8), не совпадающие с координатами ферзя:');
readln(c,d);
until(c in [1..8])and(d in [1..8])and((c<>a)or(d<>b));
repeat
writeln('Введите координаты поля для хода ферзя(1-8,1-8), не совпадающие с координатами ферзя:');
readln(e,f);
until(e in [1..8])and(f in [1..8])and((e<>a)or(f<>b));
clrscr;
writeln('Белый ферзь        : ',a,' ',b);
writeln('Черный конь        : ',c,' ',d);
writeln('Поле для хода ферзя: ',e,' ',f);
k:=0;
if (((a=e)or(b=f))  {по горизонтали или по вертикали}
or (abs(a-e)=abs(b-f))) then k:=k+1;{или по диагонали, в приципе пойти может}
{если поле бьётся конем, не может}
if ((abs(c-e)=1)and(abs(d-f)=2))or((abs(c-e)=2)and(abs(d-f)=1))then k:=k-1;
{если на одной горизонтали, в конь межжу ферзем и полем}
if (a=c)and(a=e)and(((d>b)and(d<f))or((d<b)and(d>f)))then k:=k-1;
{если на одной вертикали, в конь межжу ферзем и полем}
if (b=d)and(b=f)and(((c>a)and(c<e))or((c<a)and(c>e)))then k:=k-1;
{если на одной диагонали и конь между ферзем и полем}
if (abs(a-e)=abs(b-f))and(((d>b)and(d<f))or((d<b)and(d>f)))then k:=k-1;
if k=1 then write('Yes!')else write('No!');
readln
end.
Добавлено через 48 секунд
Написано с учетом, что ферзь может побить коня.

Добавлено через 1 час 47 минут
То же с уточнением события хода.

Pascal
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
uses crt;
type pole=1..8;
var a,b,c,d,e,f:pole;
    k:integer;
begin
clrscr;
repeat
writeln('Введите координаты белого ферзя(1-8,1-8):');
readln(a,b);
until(a in [1..8])and(b in [1..8]);
repeat
writeln('Введите координаты черного коня(1-8,1-8), не совпадающие с координатами ферзя:');
readln(c,d);
until(c in [1..8])and(d in [1..8])and((c<>a)or(d<>b));
repeat
writeln('Введите координаты поля для хода ферзя(1-8,1-8), не совпадающие с координатами ферзя:');
readln(e,f);
until(e in [1..8])and(f in [1..8])and((e<>a)or(f<>b));
clrscr;
writeln('Белый ферзь        : ',a,' ',b);
writeln('Черный конь        : ',c,' ',d);
writeln('Поле для хода ферзя: ',e,' ',f);
k:=0;
if (((a=e)or(b=f))  {по горизонтали или по вертикали}
or (abs(a-e)=abs(b-f))) then k:=1;{или по диагонали, в приципе пойти может}
{если поле бьётся конем, не может}
if ((abs(c-e)=1)and(abs(d-f)=2))or((abs(c-e)=2)and(abs(d-f)=1))then k:=3;
{если на одной горизонтали, в конь межжу ферзем и полем}
if (a=c)and(a=e)and(((d>b)and(d<f))or((d<b)and(d>f)))then k:=2;
{если на одной вертикали, в конь межжу ферзем и полем}
if (b=d)and(b=f)and(((c>a)and(c<e))or((c<a)and(c>e)))then k:=2;
{если на одной диагонали и конь между ферзем и полем}
if (abs(a-e)=abs(b-f))and(((d>b)and(d<f))or((d<b)and(d>f)))then k:=2;
if k=1 then write('Белый ферзь может сделать ход, не попав под удар')
else if k=2 then write('Белый ферзь не может попасть на поле за 1 ход')
else if k=3 then write('Белый ферзь попадает под удар черного коня');
readln
end.
0
05.06.2010, 16:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2010, 16:42

Программа про шахматы
помогите пожалуйста исправить вот эту программу. Шахматную доску будем ...

Задача про шахматы
Cсылка на изображение с условием: ВОТ ССЫЛКА вот не получается сделать. ну...

Статические и Динамические структуры данных. Шахматы
Задание: Прикладная область: Шахматы. Атрибуты информации:ФИО спортсмена,...


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

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

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