Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/22: Рейтинг темы: голосов - 22, средняя оценка - 4.68
 Аватар для Ego-Delu
0 / 0 / 0
Регистрация: 23.10.2011
Сообщений: 25

Может ли шахматный конь перейти в указанную клетку доски?

28.03.2012, 13:49. Показов 4992. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно условие такое, задаются начальные и конечные координаты от 1 до 8 (шахматная доска). И если шахматная фигура конь может так пойти, значит вывести тру, иначе фолс. Если кто не знаком с шахматами конь ходит буквой Г две клетки в одну сторону и загибает одну клетку в другую.
Проблема с ифом, не нравится ему

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdio.h>
using namespace std;
void main ()
 
   {
       int x1, x2, y1, y2;
        cout<<"Введите начальные координаты, где стоит фигура";
        cin>>x1;
        cin>>y1;
        cout<<"Введите конечные координаты, где стоит фигура";
        cin>>x2;
        cin>>y2;
 
        if (((x1==x2+2) | (x1==x2-2) & (y1==y2+1) | (y1==y2-1)) | ((x1==x2+1) | (x1=x2-1) & (y1==y2+2) | (y1==y2-2))) & (x1>0) (x1<9) (x2>0) (x2<9) (y1>0) (y1<9) (y2>0) (y2<9)
            cout<<"Конь согласен на такое";
        else
            cout<<"Конь говорит, что он никуда не пойдёт!";
        getch ();
}
заранее благодарю, и подскажите пожалуйста после какой строки русский язык подключать
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.03.2012, 13:49
Ответы с готовыми решениями:

Может ли шахматный ферзь за один ход перейти с клетки в клетку
Заданы координаты клетки шахматной доски (х; у) - целые числа. Выяснить, может ли шахматный ферзь за один ход перейти с этой клетки в...

Определить может ли конь перейти с одной шахматной доски на другую
Даны координаты (как целые от 1 до 8) двух различных полей шахматной доски. Если конь за один ход может перейти с одной доски на другую то...

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

20
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
28.03.2012, 14:04
Цитата Сообщение от Ego-Delu Посмотреть сообщение
if (((x1==x2+2) | (x1==x2-2) & (y1==y2+1) | (y1==y2-1)) | ((x1==x2+1) | (x1=x2-1) & (y1==y2+2) | (y1==y2-2))) & (x1>0) (x1<9) (x2>0) (x2<9) (y1>0) (y1<9) (y2>0) (y2<9)
Что это вообще такое?

Цитата Сообщение от Ego-Delu Посмотреть сообщение
заранее благодарю, и подскажите пожалуйста после какой строки русский язык подключать
C++
1
2
3
4
5
void main ()
{
       setlocale(0, "");
           int x1, x2, y1, y2;
                cout<<"Введите начальные координаты,.................

Цитата Сообщение от Ego-Delu Посмотреть сообщение
void main ()
главная функция должна возвращать целочисленное значение!

то есть
C++
1
2
3
4
int main()
{
     return 0;
}
0
 Аватар для Ego-Delu
0 / 0 / 0
Регистрация: 23.10.2011
Сообщений: 25
28.03.2012, 14:11  [ТС]
Цитата Сообщение от Infinity3000 Посмотреть сообщение
Что это вообще такое?
Условие при котором программа должна писать тру
0
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
28.03.2012, 14:14
Цитата Сообщение от Ego-Delu Посмотреть сообщение
Условие при котором программа должна писать тру
ну тогда разбиритесь с синтаксисом условного оперетора if

а также почитайте и поймите разницу между

C++
1
|
и
C++
1
||
а также

C++
1
&
и
C++
1
&&
0
 Аватар для Ego-Delu
0 / 0 / 0
Регистрация: 23.10.2011
Сообщений: 25
28.03.2012, 14:15  [ТС]
Цитата Сообщение от Infinity3000 Посмотреть сообщение
ну тогда разбиритесь с синтаксисом условного оперетора if

а также почитайте и поймите разницу между

C++
1
|
и
C++
1
||
а также

C++
1
&
и
C++
1
&&
я изначально ставил как раз || он ругался, на две
0
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
28.03.2012, 14:18
Цитата Сообщение от Ego-Delu Посмотреть сообщение
я изначально ставил как раз || он ругался, на две
C++
1
if ( x1 == x2+2 || x1 == x2 - 2 && y1 == y2 + 1 || y1 == y2-1  || x1 == x2+1)
и так далее
0
 Аватар для Ego-Delu
0 / 0 / 0
Регистрация: 23.10.2011
Сообщений: 25
28.03.2012, 14:24  [ТС]
ему всё равно не нравится

error C2143: syntax error : missing ';' before '||'
0
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
28.03.2012, 14:29
Цитата Сообщение от Ego-Delu Посмотреть сообщение
ему всё равно не нравится
error C2143: syntax error : missing ';' before '||'
со скобками разберитесь.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdio.h>
using namespace std;
int main ()
   {
       setlocale(0, "");
           int x1, x2, y1, y2;
                cout<<"Введите начальные координаты, где стоит фигура ";
                cin>>x1;
                cin>>y1;
                cout<<"Введите конечные координаты, где стоит фигура ";
                cin>>x2;
                cin>>y2;
 
                if (x1 == x2 + 2 || x1 == x2 - 2 && y1 == y2 + 1 || y1 == y2 - 1 || x1 == x2 + 1) 
                        cout<<"Конь согласен на такое";
                else
                        cout<<"Конь говорит, что он никуда не пойдёт!";
                getch ();
                return 0;
}
Миниатюры
Может ли шахматный конь перейти в указанную клетку доски?  
0
 Аватар для Ego-Delu
0 / 0 / 0
Регистрация: 23.10.2011
Сообщений: 25
28.03.2012, 14:39  [ТС]
ну с математической точки зрения они у меня правильно расставлены, если я оставлю, только первые скобки, как у вас - у меня тоже заработает
0
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
28.03.2012, 14:42
Цитата Сообщение от Ego-Delu Посмотреть сообщение
ну с математической точки зрения они у меня правильно расставлены
это как?

вот так?

C++
1
 if ((x1 == x2 + 2) || (x1 == x2 - 2) && (y1 == y2 + 1) || (y1 == y2 - 1) || (x1 == x2 + 1))
Миниатюры
Может ли шахматный конь перейти в указанную клетку доски?  
0
 Аватар для Ego-Delu
0 / 0 / 0
Регистрация: 23.10.2011
Сообщений: 25
28.03.2012, 14:45  [ТС]
if (x1==x2+2 || x1==x2-2 && y1==y2+1 || y1==y2-1) || (x1==x2+1 || x1==x2-1 && y1==y2+2 || y1==y2-2) && (x1>0) (x1<9) (x2>0) (x2<9) (y1>0) (y1<9) (y2>0) (y2<9) а вот тут уже никак в одной скобке не выйдет
0
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
28.03.2012, 14:49
Цитата Сообщение от Ego-Delu Посмотреть сообщение
(x1>0) (x1<9) (x2>0) (x2<9) (y1>0) (y1<9) (y2>0) (y2<9) а вот тут уже никак в одной скобке не выйдет
Где вы же такое увидели?

да тут дело уже не скобках, тут уже по синтаксису не правильно!

должно быть тоже на подобии этого, разбирайтесь

C++
1
(x1>0) && (x1<9) || (x2>0) && (x2<9) || (y1>0)  && (y1<9) || (y2>0) && (y2<9)
так нельзя писать как вы пишете!
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
28.03.2012, 14:59
Если используются только логические выражения, то | тоже можно ставить, результат будет такой же, как и при ||. Но будут с приоритетами проблемы.
1
 Аватар для Ego-Delu
0 / 0 / 0
Регистрация: 23.10.2011
Сообщений: 25
28.03.2012, 14:59  [ТС]
Цитата Сообщение от Infinity3000 Посмотреть сообщение
Где вы же такое увидели?

да тут дело уже не скобках, тут уже по синтаксису не правильно!

должно быть тоже на подобии этого, разбирайтесь

C++
1
(x1>0) && (x1<9) || (x2>0) && (x2<9) || (y1>0)  && (y1<9) || (y2>0) && (y2<9)
так нельзя писать как вы пишете!
не работает, и почему вы или между скобками поставили?
0
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
28.03.2012, 15:12
Цитата Сообщение от Ego-Delu Посмотреть сообщение
не работает, и почему вы или между скобками поставили?


В полне рабочая строка только разберитесь в правильно растановки || && я ставил наугад
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
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdio.h>
using namespace std;
int main ()
   {
       setlocale(0, "");
           int x1, x2, y1, y2;
                cout<<"Введите начальные координаты, где стоит фигура ";
                cin>>x1;
                cin>>y1;
                cout<<"Введите конечные координаты, где стоит фигура ";
                cin>>x2;
                cin>>y2;
 
    if ((x1 == x2 + 2) || (x1 == x2 - 2) && (y1 == y2 + 1) || (y1 == y2 - 1) || (x1 == x2 + 1) || 
        (x1 = x2 - 1) && (y1 == y2 + 2) || (y1 == y2 - 2) && (x1 > 0) || 
        (x1 < 9) && (x2 > 0) || (x2 < 9) && (y1 > 0) || (y1  < 9) && (y2 > 0) || (y2 < 9))
                        cout<<"Конь согласен на такое";
                else
                        cout<<"Конь говорит, что он никуда не пойдёт!";
                getch ();
                return 0;
}
Миниатюры
Может ли шахматный конь перейти в указанную клетку доски?  
1
 Аватар для Ego-Delu
0 / 0 / 0
Регистрация: 23.10.2011
Сообщений: 25
28.03.2012, 15:18  [ТС]
я понял в чём моя ошибка была, спасибо
0
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
28.03.2012, 15:20
Цитата Сообщение от Ego-Delu Посмотреть сообщение
я понял в чём моя ошибка была, спасибо

Не по теме:

свершилось

0
0 / 0 / 0
Регистрация: 04.08.2012
Сообщений: 16
31.08.2012, 13:31
А нас заставили через рекурсию, при этом конь не должен попасть в одну клетку 2-жды...сижу рожаю
0
1406 / 648 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
31.08.2012, 15:59
ovli, это вообще не та задача.
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
01.09.2012, 13:24
Задача называется "Тур коня", легко гуглится. Для решения используется backtracking (перебор с возвратом).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.09.2012, 13:24
Помогаю со студенческими работами здесь

Описать логическую функцию ХодКонем(н1,н2), проверяющую может ли конь за один ход перейти с поля н1 шахматной доски на поле н2
Для описания клетки шахматного поля определить тип запись Type Position = record Vert:’a’..’h’; ...

Может ли шахматный конь за один ход попасть из одного поля в другое?
Заданы координаты двух полей на шахматной доске: px1 py1 и px2 py2. Гарантируется (т.е. не надо это в программе проверять), что все ...

Может ли шахматный конь за один ход попасть из одного поля в другое?
5.Заданы координаты двух полей на шахматной доске: px1 py1 и px2 py2. Гарантируется (т.е. не надо это в программе проверять), что все...

Шахматный конь за один ход может переместиться с одного заданного поля на другое
Шахматный конь за один ход может переместиться с одного заданного поля на другое (каждое поле задано двумя координатами - целыми числами от...

Может ли шахматный король пойти из текущей позиции в указанную
Определить,Может ли шахматный король пойти из текущей позиции в указанную,если известно,что на некоторой позиции располагается одна из...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru