IPB
ЛогинПароль:

> Шашки, Проблема с ходом черных
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Здравствуйте Уважаемые Форумчани!
Я делаю курсовую «Шашки». У меня возникла одна проблема: ход белыми совершается по всем правилам, а вот черные совсем не ходят (функция не разрешает ходить, а все вроде сделано, так же как и для белых). Я отметил место, в коде, где возникает ошибка, помогите исправить smile.gif



Прикрепленные файлы
Прикрепленный файл  KRECTIKI4b.pas ( 29.45 килобайт ) Кол-во скачиваний: 385
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Denc2005, ну ты там наворотил.. smile.gif
Если сам сделал - уважаю твое усердие, но только так программировать не надо. Зачем делать два набора практически одинаковых процедур? Зачем доску делать в два раза больше?.. Как ты сам там не путаешься - ума не приложу..

Теперь по делу. В отмеченной тобой строке ты вызываешь MoveFrom2 с параметром Player, и это правильно. Но дальше во всех процедурах по цепочке ты почему-то передаешь Player2 (непонятно, зачем он вообще нужен). Я исправил все вызовы и смог поиграть даже (интерфейс красивый, респект! smile.gif) - сходил, съел пару белых..

Вот исправленный код, на всяк случай. Форматирование в нем не ахти, но спасибо, что хоть такое есть, иначе бы я вообще утоп.. smile.gif. И еще одно: для циклов используй локальные переменные.
Успехов тебе!
ps
а почему называется "крестики"? blink.gif

Прикрепленный файл  checkers.pas ( 29.48 килобайт ) Кол-во скачиваний: 992


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



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Lapp, Спасибо тебе большое, даже огромное! good.gif Как я мог этого не заметить, глупая ошибка(из-за которой я перерыл пол программы), Player2 (это второй игрок, а когда он передается в процедуру, становится просто Player). smile.gif
С практически одинаковыми процедурами сделать было быстрее…А вы советуете сделать в одной процедуре или функции две? Так же как сделаны Analise и Play?(опять же это простое копирование кода с небольшими поправками)! На счет поля: Оно не в два раза больше, а просто 10х10, у меня такое условие.
А вот форматировать текст я не умею, вы не могли бы подсказать правила форматирования?
А какие переменные надо сделать локальными ?

Еще раз спасибо! yes2.gif

PS
Кодовое имя "крестики"! Сначала я хотел сделать их lol.gif

Сообщение отредактировано: Denc2005 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


> Как я мог этого не заметить, глупая ошибка
> (из-за которой я перерыл пол программы),
А ты дебаггером пользушься? С ним такие вещи отлавливаются легко.

> С практически одинаковыми процедурами сделать было быстрее…
Сначала - быстрее, а потом - запутаешься, и получится медленнее..

> А вы советуете сделать в одной процедуре или функции две?
Нет, ну процедуры для разных игроков отличаются знаком по y. Передавай множитель (1 или -1) в параметрах - вот и все!

> На счет поля: Оно не в два раза больше, а просто 10х10, у меня такое условие.
Шашки стоклеточные, это понятно. А зачем тебе края? у тебя же массив от -3 до 14. Я не вдавался, зачем это нужно, но уверен, что этого можно избежать, одновременно упростив программу..

> А вот форматировать текст я не умею,
> вы не могли бы подсказать правила форматирования?
Как-нить в следующий раз smile.gif

> А какие переменные надо сделать локальными ?
У тебя счетчики циклов for в процедурах являются полями записей, объявленных в головной программе.. Это совершенно ненормально. Для этих целей нужно объявлять обычные целые переменные в самой процедуре.

Успехов! smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






чувак просто перебил чей-то курсач, там еще была игра против компьютера, вот оттуда и вылез player2 smile.gif
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 26.10.2020 20:56
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name