Другие языки программирования и технологии
Пишу шашки...
Пишу шашки на C++. Игра в консоли. Когда приходит черед играть, нужно ввести какую шашку на какой координате, перевести на какую координату. Вопрос в коде. http:// codepaste.ru/3674/ Прошу не кидать помидорами. Учить только начал.
сейчас вас какашками закидают за goto
Ух Каспаров полюбому проиграет твоему алгоритму, не буду сильно ругаться... .
слабенький алгоритм выливается в следующий код:
Пока ЕщёНеКонецИгры (проверяем не наступила ли чья-то победа)
{
ПолучитьХодЧеловека ()
СходитьШашкой ()
ЗапомнитьПозициюНаДоске ()
ПолучитьКлеткуКудаМожноСходить ()
СходитьШашкой ()
ЗапомнитьПозициюНаДоске ()
}
Для каждой шашки вычесляешь ее ценность на поле, а дальше рекурсивно ищешь возможные ходы, и находишь оптимальный или любой из равноценных. Почитай литературу по теории игр.
слабенький алгоритм выливается в следующий код:
Пока ЕщёНеКонецИгры (проверяем не наступила ли чья-то победа)
{
ПолучитьХодЧеловека ()
СходитьШашкой ()
ЗапомнитьПозициюНаДоске ()
ПолучитьКлеткуКудаМожноСходить ()
СходитьШашкой ()
ЗапомнитьПозициюНаДоске ()
}
Для каждой шашки вычесляешь ее ценность на поле, а дальше рекурсивно ищешь возможные ходы, и находишь оптимальный или любой из равноценных. Почитай литературу по теории игр.
Эээм.. .
Ну вопервых. Если ты пишешь на С++ то каждая шашка должна быть экземпляром класса Шашака. Если ты и дальше будешь представлять шашку в виде hy,hx то на 20 килобайте логики тебе станет плохо.
Во вторых goto - это капец. Более того в маленьком кусочке кода я вижу 2 метки. Похоже на то что функции у тебя не маленькие. А должны такими быть! Чем более сложная задача - тем меньше функции.
Далее.. . if (ty==hy--) - это что? ? ты имел ввиду if (ty==(hy - 1)) ?
И не важно ошибся ты здесь или нет. Важно что бы каждая строка не вызывала у других проггеров вопросов. Эта - вызывает.
Что до твоего вопроса:
if ( (ty==hy--) || (ty==hy++) )
{
...
}
Не забудь про пробелы между ==. Это должно выглядеть так:
if ( (ty == hy--) || (ty == hy++) )
В любом случае молодец что взялся за шашки.
Ну вопервых. Если ты пишешь на С++ то каждая шашка должна быть экземпляром класса Шашака. Если ты и дальше будешь представлять шашку в виде hy,hx то на 20 килобайте логики тебе станет плохо.
Во вторых goto - это капец. Более того в маленьком кусочке кода я вижу 2 метки. Похоже на то что функции у тебя не маленькие. А должны такими быть! Чем более сложная задача - тем меньше функции.
Далее.. . if (ty==hy--) - это что? ? ты имел ввиду if (ty==(hy - 1)) ?
И не важно ошибся ты здесь или нет. Важно что бы каждая строка не вызывала у других проггеров вопросов. Эта - вызывает.
Что до твоего вопроса:
if ( (ty==hy--) || (ty==hy++) )
{
...
}
Не забудь про пробелы между ==. Это должно выглядеть так:
if ( (ty == hy--) || (ty == hy++) )
В любом случае молодец что взялся за шашки.
Напишите эпилог повести "Нержавеющая сабля "(предисловие), в которой кратко расскажите о дальнейшей судьбе героев.
Нержавеющая сабля эпилог повести
Нержавеющая сабля эпилог повести
Похожие вопросы
- На каком уровне будет играть суперкомпьютер в шашки, если в него заложить программу перебора вариантов?
- Как написать код для консольной игры шашки?
- ИСХОДНЫЙ КОД ШАШКИ С++
- Изучил несколько простых алгоритмов сортировки, осталось изучить быструю и слияние, нужно ли вообще писать эти алгоритмы
- Есть тут такие, кто сам научился писать программы и теперь пишет =) Ну не заканчивал ВУЗ и т.д. И на чём пишете, если да
- Не могу писать большой код. Что посоветуете?
- Ищу человека,умеющего писать вирусы
- Что конкретно пишут на языке Java? Над чем работают ?
- опрос по языкам програмирования кто работает програмистами и пишет программа ответьте на вопрос внутри
- На каком языке программирования проще всего писать программы?