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

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

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

> Наложение фигур
ТОХА
сообщение 28.03.2011 15:38
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 29.03.2011 19:06
Сообщение #2


Гость






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

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

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

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

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


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

 



- Текстовая версия 1.07.2025 12:59
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"