|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.09.2018, 11:55 | #1 |
Пользователь
Регистрация: 23.09.2018
Сообщений: 38
|
Отрисованая фигура из массива уходит за границу поля.
http://www.programmersforum.ru/attac...1&d=1538124142
Скрин. Прошу помочь мне разобраться. Если что недосказал на вопросы отвечу . Пишу программу которая выведит от 3 до 6 красных кубиков и один зеленый который можно двигать стрелками. Работать должно так: с каждым ходом зеленого двигаются и красные кубики (меняются их координаты и отрисовываются). Но у меня красные кубики двигаются не правильно: первый остается на месте, а остальные рисуются за границами поля. Процедура поля Код:
Процедура инициации красных кубиков: Код:
Обработчик нажатия клавиши: Код:
Код:
Код:
|
28.09.2018, 12:16 | #2 |
Пользователь
Регистрация: 23.09.2018
Сообщений: 38
|
Каким-то фигом после первого квадрата их координатам назначается 0. Хотя координаты записаны в массив после инициации в главном цикле.
|
28.09.2018, 12:28 | #3 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Цитата:
у Вас, насколько я помню, Pascal ABC.NET ? я попытаюсь повторить ошибку, потом напишу о результатах. |
||
28.09.2018, 13:11 | #4 |
Пользователь
Регистрация: 23.09.2018
Сообщений: 38
|
Да Pascal ABC.NET, спасибо.
|
28.09.2018, 13:44 | #5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
во-первых, Вы забыли выложить секцию с заданием переменных.
во-вторых, я взглянул внимательнее на ваш код. Это же ужас. начнём с начала: Цитата:
всё остальное ЗА ЦИКЛОМ. про begin | end слышали? Догадываетесь, для чего они нужны? дальше. для чего цикл от 1 до n ? что вообще должен сделать этот код? Нарисуйте сначала алгоритм (можно в текстовом виде, можно блок-схему), а потом уже программируйте. p.s. остальное не смотрел. p.p.s. разработка программы должна идти так - ТЗ, алгоритм-решения, кодирование. похоже, что первые два этапа Вы пропустили. а без них трудно. |
|
28.09.2018, 14:13 | #6 |
Пользователь
Регистрация: 23.09.2018
Сообщений: 38
|
Да я все время забываю про эти скобки... Сделал скобки все заработало ;-).
Цикл от одного до n это количество квадратиков которым присваиваются координаты. Код должен выводить квадратики по очереди. |
28.09.2018, 14:43 | #7 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
а зачем тогда нужен ещё один цикл repeat until ?! если его убрать, то что будет? вот так попробуйте: Код:
|
|
29.09.2018, 06:56 | #8 |
Пользователь
Регистрация: 23.09.2018
Сообщений: 38
|
Убрал repeat. Вроде ничего не изменилось.
Вот полный код на текущий момент. С блоком переменных и тд. Посмотрите что происходит при запуске. Вроде бы сейчас без вылетов, но где-то неправильно происходит процесс заливки, от чего соседние с зеленым квадратиком квадратики тоже закрашиваются. Еще не у всех красных квадратиков отображаются цифры из textout, видимо ошибка в цикле for var 1 to n, надо внимательно посмотреть. Код:
Последний раз редактировалось Kukla19; 29.09.2018 в 06:59. Причина: забыл дописать |
30.09.2018, 12:24 | #9 |
Пользователь
Регистрация: 23.09.2018
Сообщений: 38
|
Вчера думал что заливка соседних с активным квадратом происходит изза текстаута, но сегодня проверил заливает соседние даже без слов вверху квадратика.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Уходит текст за блок | V1S | HTML и CSS | 1 | 07.01.2014 21:38 |
Письма уходит в спам Gmail | GriFFoN | PHP | 4 | 08.04.2012 19:08 |
Обработка формы с name = значение поля из массива | WildHunter | PHP | 5 | 22.08.2011 14:03 |
Не установить файрвол - уходит в перезагруз | tre | Софт | 2 | 24.09.2007 21:29 |