Kraz, прошу помочь, если возможно до пятьницы... |
Kraz, прошу помочь, если возможно до пятьницы... |
orgx100 |
14.01.2010 0:23
Сообщение
#1
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: 0 |
Здраствуйте дорогие читатели, возникла каверзная ситуация...вообщем к главному..
Вот нада написать программу, гонки с препятсвиями, возникла ситуация с созданием двумерного масива для создания поля препятсвий, сам накидал чуток но чет аж паскаль начал глючить вобщем вот она сама Оргазм_мозга_34.txt ( 2.65 килобайт ) Кол-во скачиваний: 492 , кто может помагите в течения 1-2 дня, ну или просто на будущие подскажите, и не судите строго по написанию, тока начал учиться .... |
volvo |
14.01.2010 1:52
Сообщение
#2
|
Гость |
Причина отказа программы работать - банальна, обычный Range Check Error - вылет за границу. В данном случае - за границу типа.
Проблема - вот в этом куске кода: Цитата s1:=0; {Зануление с1} Вот именно в последней строке и происходит вылет. Потому что переменная xa1 описана, как Integer - стало быть может хранить значения от -32768 до 32767, а при J = 6 ты пытаешься запихать туда 6000*6=36000. |
orgx100 |
14.01.2010 11:13
Сообщение
#3
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: 0 |
да с этим понятно поменял на лонг, но толку, сама игра прерываеться на создании масива, и даже начальные местоположение непоказывает, мб кто знает или подкинет пример написания масива или как то по другому , чтоб создать это поле помех, появляющихся с правого угла , рандомно в строках появляють помехи, и с дальнейшим появление за этими же помехами нового ряда, я пока еще несообразил.Заране спасибо.
|
volvo |
14.01.2010 11:58
Сообщение
#4
|
Гость |
Цитата да с этим понятно поменял на лонг, но толку ... от этого никакого и не будет. Думать начни. Какими ты значениями оперируешь, подумай! У тебя что хранится во всех этих массивах-то? Координаты точек на экране? Извини, разрешение экрана это 640*480, а не сотни тысяч.А теперь, внимание, маленький эксперимент: меняем типы ВСЕХ переменных и массивов, кроме GD и GM (они должны быть типа Integer) на LongInt, меняем также ВСЕ подпрограммы, чтобы они принимали и возвращали только LongInt, и добавляем в программу одну строку: s1:=0; { Зануление с1 }, чтобы узнать, с какими ты значениями работаешь, насколько они велики... Что видим? А вот что:
Куда это годится? На что тебе такие огромные значения? Они ж ни в какой целочисленный тип не влезают, я уж не говорю о том, что толку от них вообще никакого нет (отображаться на граф экране они точно не будут). Во-первых, имена переменным дай нормальные, чтоб можно было не читая твои сноски, а сразу, читая любой кусок программы, разобраться, что там происходит. Во-вторых - код отформатируй лесенкой, а то глаза ломаются, туда-сюда скакать. И в третьих - все-таки разберись, что у тебя происходит в этом цикле, откуда такие огромные значения... И только потом пытайся исправить что-то и запускать... |
Текстовая версия | 1.10.2024 5:43 |