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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.79
Ego-Delu
0 / 0 / 0
Регистрация: 23.10.2011
Сообщений: 25
#1

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

28.03.2012, 13:49. Просмотров 1917. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2012, 13:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Может ли шахматный конь перейти в указанную клетку доски? (C++):

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

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

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

Шахматный конь за один ход может переместиться с одного заданного поля на другое(каждое поле задано двумя коо - C++
Напишите понятным языком.:cry: Шахматный конь за один ход может переместиться с одного заданного поля на другое(каждое поле задано...

Определить, может ли конь за один ход перейти с одного поля на другое - C++
С++ Даны координаты (целые от 1 до 8) двух полей шахматной доски. Определить, может ли конь за один ход перейти с одного из этих полей на...

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

20
Ego-Delu
0 / 0 / 0
Регистрация: 23.10.2011
Сообщений: 25
28.03.2012, 15:18  [ТС] #16
я понял в чём моя ошибка была, спасибо
0
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
28.03.2012, 15:20 #17
Цитата Сообщение от Ego-Delu Посмотреть сообщение
я понял в чём моя ошибка была, спасибо

Не по теме:

свершилось

0
ovli
0 / 0 / 0
Регистрация: 04.08.2012
Сообщений: 16
31.08.2012, 13:31 #18
А нас заставили через рекурсию, при этом конь не должен попасть в одну клетку 2-жды...сижу рожаю
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
31.08.2012, 15:59 #19
ovli, это вообще не та задача.
0
Kastaneda
Нарушитель
Эксперт С++
4676 / 2880 / 234
Регистрация: 12.12.2009
Сообщений: 7,314
Записей в блоге: 2
Завершенные тесты: 1
01.09.2012, 13:24 #20
Задача называется "Тур коня", легко гуглится. Для решения используется backtracking (перебор с возвратом).
0
AGPro
5 / 5 / 0
Регистрация: 03.04.2016
Сообщений: 90
04.04.2016, 12:49 #21
Добрый день. Какое все-таки решение правильное?
Поправьте, здесь не хватает ограничения для выхода за границы?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <cmath>
using namespace std;
int main() {
      int x1, x2, y1, y2;
    cin >> x1 >> x2 >> y1 >> y2;
    if (abs(x1-y1)==1 && abs(x2-y2)==2) 
        cout << "YES";
    if   (abs(x1-y1)==2 && abs(x2-y2)==1)
         cout << "YES";
    else cout << "NO";
  return 0;
}
0
04.04.2016, 12:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.04.2016, 12:49
Привет! Вот еще темы с ответами:

Какую наибольшую стоимость может иметь путь из клетки (1, 1) в клетку (n, m), если передвигаться за 1 шаг можно только на правую или нижнюю клетку. - C++
кому не трудно помогите сделать. если не трудно вам написать код. Дана прямоугольная таблица nxn клеток. В каждой клетке содержится...

Какое наименьшее количество ходов должен сделать конь, чтобы попасть на заданную клетку - C++
На шахматной доске NxN в клетке (x1, y1) стоит голодный шахматный конь. Он хочет попасть в клетку (x2, y2), где растет вкусная шахматная...

Количество обходов шахматной доски конём (с возвратом в начальную клетку) - C++
Всем добрый день, нужна помощь. Нужно найти на доске n*m количество обходов доски. n,m &lt;=6. С последней клетки нужно обязательно вернуться...

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


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

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

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