Другие языки программирования и технологии

Пишу шашки...

Пишу шашки на C++. Игра в консоли. Когда приходит черед играть, нужно ввести какую шашку на какой координате, перевести на какую координату. Вопрос в коде. http:// codepaste.ru/3674/ Прошу не кидать помидорами. Учить только начал.
сейчас вас какашками закидают за goto
Administrator Rwn
Administrator Rwn
41 003
Лучший ответ
Ух Каспаров полюбому проиграет твоему алгоритму, не буду сильно ругаться... .
слабенький алгоритм выливается в следующий код:
Пока ЕщёНеКонецИгры (проверяем не наступила ли чья-то победа)
{
ПолучитьХодЧеловека ()
СходитьШашкой ()
ЗапомнитьПозициюНаДоске ()
ПолучитьКлеткуКудаМожноСходить ()
СходитьШашкой ()
ЗапомнитьПозициюНаДоске ()
}
Для каждой шашки вычесляешь ее ценность на поле, а дальше рекурсивно ищешь возможные ходы, и находишь оптимальный или любой из равноценных. Почитай литературу по теории игр.
Miron Mirzaev
Miron Mirzaev
3 323
Эээм.. .
Ну вопервых. Если ты пишешь на С++ то каждая шашка должна быть экземпляром класса Шашака. Если ты и дальше будешь представлять шашку в виде hy,hx то на 20 килобайте логики тебе станет плохо.

Во вторых goto - это капец. Более того в маленьком кусочке кода я вижу 2 метки. Похоже на то что функции у тебя не маленькие. А должны такими быть! Чем более сложная задача - тем меньше функции.

Далее.. . if (ty==hy--) - это что? ? ты имел ввиду if (ty==(hy - 1)) ?
И не важно ошибся ты здесь или нет. Важно что бы каждая строка не вызывала у других проггеров вопросов. Эта - вызывает.

Что до твоего вопроса:
if ( (ty==hy--) || (ty==hy++) )
{
...
}

Не забудь про пробелы между ==. Это должно выглядеть так:
if ( (ty == hy--) || (ty == hy++) )

В любом случае молодец что взялся за шашки.
Напишите эпилог повести "Нержавеющая сабля "(предисловие), в которой кратко расскажите о дальнейшей судьбе героев.
Нержавеющая сабля эпилог повести
DF
Damir From-Ub-
111