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

Шахматы: определение правильности хода конем - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Access violation http://www.cyberforum.ru/cpp-beginners/thread280548.html
Помогите пожалуйста. Не могу разобраться. Нашел в каком месте ругается. Но не понял на что именно.void __fastcall TFormSyncronize::FormCreate(TObject*Sender) { IdTCPClient1->MaxLineAction=maSplit; TIniFile*ini = new TIniFile(ExtractFilePath(Application->ExeName) + "\\!YEAR.ini"); IdTCPClient1->Host = ini->ReadString("crypton", "runserver", "localhost"); ini->Free(); Word...
C++ Чем "operator *=" отличается от "operator *"? снова застряла, не могу понять, чем этот оператор должен отличаться от оператора*.....? вот он, но это работает только в случае оператора*. Matrix Matrix::operator*=(double x) { Matrix rezult(*this); for(int i=0;i<n;i++) for(int j=0;j<m;j++) { rezult.matr*=x; http://www.cyberforum.ru/cpp-beginners/thread280510.html
C++ двухмерный массив
Нужна программа на С Найти для каждой строки сумму элементов нечетных столбцов. М = 3, N = 3
неправильная параллельная конфигурация C++
Добрый день!столкнулся с огромной проблемой,которую не умею решать. Перестала работать vs2008,cmake,paraview и несколько других,хотя вчера все работало.При запуске выдает ошибку: Не удалось запустить приложение,поскольку его параллельная конфигурация неправильна. В журнале приложений ничего подробнее не нашел. Вчера случайно удалил какието файлы из папки Windows.old/Program files,в...
C++ SMTP запросы. http://www.cyberforum.ru/cpp-beginners/thread280485.html
Всем привет. Вопрос не совсем про программирование, но не нашел лучшего места чтобы задать его. Нужно написать простой почтовый клиент. Пробую разобраться с SMTP через telnet: user@ubuntu:~$ telnet smtp.mail.ru 25 Trying 94.100.177.1... Connected to smtp.mail.ru. Escape character is '^]'. 220 smtp13.mail.ru ESMTP ready EHLO \n 250-smtp13.mail.ru
C++ Записать на языке программирования выражение. Линейное!!! подробнее

Показать сообщение отдельно
Temirlan90
 Аватар для Temirlan90
131 / 131 / 8
Регистрация: 30.09.2010
Сообщений: 333
21.04.2011, 09:31     Шахматы: определение правильности хода конем
Шахматы
(Время: 1 сек. Память: 16 Мб Сложность: 18%)

Шахматы Совсем недавно Вася занялся программированием и решил реализовать собственную программу для игры в шахматы. Но у него возникла проблема определения правильности хода конем, который делает пользователь. Т.е. если пользователь вводит значение «C7-D5», то программа должна определить это как правильный ход, если же введено «E2-E4», то ход неверный. Так же нужно проверить корректность записи ввода: если например, введено «D9-N5», то программа должна определить данную запись как ошибочную. Помогите ему осуществить эту проверку!

Входные данные

В единственной строке входного файла INPUT.TXT записан текст хода, который указал пользователь. Пользователь не может ввести строку, длиннее 5 символов.
Выходные данные

В выходной файл OUTPUT.TXT нужно вывести «YES», если указанный ход конем верный, если же запись корректна (в смысле правильности записи координат), но ход невозможен, то нужно вывести «NO». Если же координаты не определены или заданы некорректно, то вывести сообщение «ERROR».
Примеры
INPUT.TXT
1) C7-D5
2) E2-E4
3) BSN
OUTPUT.TXT
1)YES
2)NO
3)ERROR
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
#include <iostream>
using namespace std;
int main() {
    //freopen("input.txt","r",stdin);
    //freopen("output.txt","w",stdout);
    char a,b,z;
    char c,d;
    cin >> a >> c >> z;
    cin >> b >> d;
    if(z != '-' || ((int)a < 64 || (int)a > 73) || ((int)b < 64 || (int)b > 73) 
        || (int)c < 49 || (int)c > 56 || (int)d < 49 || (int)d > 56) {
            cout << "ERROR";
    }
    else {
        a = (int)a;
        b = (int)b;
        c = (int)c;
        d = (int)d;
        if((a - 1 == b && c + 2 == d) || (a - 1 == b && c - 2 == d) || 
            (a + 1 == b && c + 2 == d) || (a + 1 == b && c - 2 ==d )|| 
            (a - 2 == b && c + 1 == d) || (a - 2 == b && c - 1 == d) || 
            (a + 2 == b && c + 1 == d) || (a + 2 == b && b - 1 == d)) {
                cout << "YES";
        }
        else {
            cout << "NO";
        }
    }
    cout << endl;
    system("pause >> void");
    return 0;
}
На 8-м тесте проваливается.
Где может быть ошибка?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru