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

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Наложение фигур
сообщение
Сообщение #1


Новичок
*

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

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


Здравствуйте!
при написании одного из модулей программы я столкнулся с такой проблемой как наложение фигур друг на друга. Как сделать так чтоб последующая фигура рисовалась на свободном месте экрана и не накладывалась на другие?
 uses Crt, Graph;
const k=100;
var
GraphDriver, GraphMode: Integer;
X1,y1, r: Integer;ch:char;
begin
GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, ' ');
if GraphResult<> grOk then
Halt(1);
repeat
ch:=readkey;
if ch=chr(13) then begin
X1 := Random(640-k)+k;
y1 := Random(480-k)+k;
r:=Random(k)+1;
circle(X1,y1,r);
end;
until ch=chr(27);
CloseGraph;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
Возьми не среднее, а максимальное
Максимальное время различается не больше, чем на 20%. С учетом того, что речь идет о тысячных долях секунды - это не критично. Я тебе уже говорил, где нужна шлифовка тактов. В прикладной программе, которая ожидает реакции пользователя, я этим заниматься не собираюсь. И тебе не советую.

Цитата
А потом возьми другой ГСЧ, для него придётся доказывать всё по новой.
Вот когда мне понадобится другой ГСЧ, и я получу его реализацию - я буду думать над этим. Решаем проблемы по мере поступления. А то ведь теоретически можно придумать такой ГСЧ, что он ЛЮБОЙ алгоритм (вообще любой, не только по этой задаче) запорет. Вот и сиди, и доказывай правильность алгоритма для ВСЕХ ВОЗМОЖНЫХ генераторов. У меня есть более интересные занятия.

А пока - перечитай первый абзац этого сообщения и первый абзац сообщения №9. Вот ты и начал мне рассказывать, что "где-то существует другой ГСЧ, который..." Я не пользуюсь другим. Я использую стандартный Random (который использовал еще в 1987 году, и до сих пор в учебных программах он меня более чем устраивает. В реальных - используются совершенно другие генераторы, и совершенно другие алгоритмы). Если б я написал свою функцию GetRandomNumber (пусть даже в ней был бы вызов того же Random-а) - у тебя был бы повод придраться, ибо я хоть какую-то возможность смены генератора предполагаю. Сейчас у тебя его нет, ибо я однозначно дал понять: использовать другой генератор не собираюсь, в коде жестко прописан тот, что есть. Так что про "другой ГСЧ" - это даже не обсуждается...

Цитата
программа виснет после появления 8 шарика, почему именно 8 я без понятия
Потому что у тебя генерация X, Y, R должна быть внутри repeat/until, а ее там нет. И что получилось? Сгенерированы значения, проверено по формуле, получено Ok = False. Ты опять присваиваешь Ok := True, и для тех же X, Y, R что и прежде, начинаешь проверку. Это неправильно. Надо сгенерировать другие значения для новой окружности, и проверять уже для них...
 К началу страницы 
+ Ответить 

Сообщений в этой теме
ТОХА   Наложение фигур   28.03.2011 19:38
мисс_граффити   фигуры - только круги? а что делать, если свободны…   28.03.2011 20:57
ТОХА   да, только круги это просто часть моей игры на зап…   28.03.2011 21:01
volvo   Если только круги - то можно сделать uses Crt, …   29.03.2011 2:39
ТОХА   uses (sqr(C[i].X - X1) + sqr(C[i].Y - …   29.03.2011 2:55
volvo   Чего ж тут такого особенного? Чистая логика. Когда…   29.03.2011 4:44
ТОХА   точно это ж геометрия за 8 класс :)   29.03.2011 4:49
TarasBer   > repeat random... until ok; Предлагаю п…   29.03.2011 13:13
volvo   Не проблема. Только не надо мне рассказывать ,что …   29.03.2011 13:52
TarasBer   > Random - это генератор, который возвращает ра…   29.03.2011 14:05
ТОХА   смысл игры в том, что нужно запомнить какой шарик …   29.03.2011 15:31
TarasBer   > TarasBer, надеюсь я ответил на твой вопрос Н…   29.03.2011 16:16
volvo   Это твои заморочки. Оно ОБЯЗАНО отработать по изло…   29.03.2011 18:40
ТОХА   небольшой оффтоп как пользоваться коммандой MouseI…   29.03.2011 18:51
TarasBer   > Это твои заморочки. Оно ОБЯЗАНО отработать по…   29.03.2011 19:03
ТОХА   Спасибо )   29.03.2011 19:15
ТОХА   немного запутался и возникло 2 проблемы: мышь полз…   29.03.2011 21:48
hydroxychloroquine sulfate 200 m   Cialis Super Actif Plus   5.12.2021 21:51
volvo   Максимальное время различается не больше, чем на 2…   29.03.2011 23:06
ТОХА   нашел, исправил, а что делать с мышкой?   30.03.2011 1:07
TarasBer   > Максимальное время различается не больше, чем…   30.03.2011 13:30
ТОХА   мышку одолел, вопрос покажется странным но как с…   1.04.2011 2:52
volvo   Вообще самым оптимальным было бы использовать граф…   1.04.2011 21:20
ТОХА   а с помощью комманд getimage и putimage можно сдел…   1.04.2011 22:39
volvo   А ты знаешь, мне тут еще один финт в голову пришел…   1.04.2011 23:08
ТОХА   работает, правда белый цвет поменялся на голубой, …   1.04.2011 23:17
volvo   Ты б прикрепил весь файл полностью (можно в приват…   2.04.2011 0:01
ТОХА   ок в приват скину, а то при защите найдут проект м…   2.04.2011 0:05
volvo   Что-то я не понял, чего ты творишь... Вот тут: все…   2.04.2011 0:55
ТОХА   модуль мыши просто из FAQ брал, как я и предполог…   2.04.2011 1:02
ТОХА   ошибка в buttonpress это 100%, изменил условие нач…   2.04.2011 1:46
volvo   Так... Нашел DosBox с шестым Турбо-Паскалем... Вот…   2.04.2011 1:50
ТОХА   Эврика :) все работает, буду до конца вечера тести…   2.04.2011 2:15
andriano   Действительно, стоит изменить лишь одну константу…   2.04.2011 18:18
volvo   А ты не меняй, и алгоритм бесконечным не будет. Ес…   2.04.2011 18:46
ТОХА   защитил проект сегодня удачно :) всем спасибо за п…   2.04.2011 20:31
Lapp   кому интересно что получилось прикладываю проект, …   3.04.2011 6:09
ТОХА   я не студент :) учусь в 10 классе)   3.04.2011 16:51
is gabapentin a controlled subst   Compro Viagra Poco Prezzo Mexico   6.12.2021 3:44


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

 





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