Допустим есть некий игрок и препятствия и он имеет угол обзора 90 градусов и все, что выпадает за этот угол или закрывается препятствием не должно быть отображено. Допустим неким образом я сумел просчитать координаты этих точек, где кривая тени ломается. Определяю методом перебора:
1. Проверяю доступность для “обзора” каждой из четырех точек препятствия (все объекты – прямоугольники).
2. Если точка оказывается доступной(красные круги) то добавляем ее в список точек а также пробуем спроектировать луч из этой точки с углом из точки обзора, тем самим добавляя спроектированную точку в список(угол показан жёлтым, а спроектированная точка зелёным).
3. Дальше пытаюсь отсортировать эти точки так, чтобы их можно было бы прорисовать одним циклом (для начала просто соединить в ломанную(показано белым), а в дальнейшем хочу зарисовать все, не входящее в эту фигуру чёрным или серым). Но так как все препятствия расположены хаотически то может случится ситуация, когда одно препятствие попадает в список раньше положенного.
Интересная проблема и возможные варианты решения. Смотрим на форуме. Принимаем участие.
Задача о Ханойских башнях. Си.
Каждый студент-программист решает эту задачу. Предоставлен код для упрощения поиска. Возможно, в теме на форуме будет доработан код для псевдографики.
Я пишу программу, и в ней у меня есть треугольник ABC на координатной плоскости (экране), его координаты известны, причем он может быть прямоугольный, остро и тупоугольный. Мне нужно в треугольнике найти координату P, лежащую на медиане BM, причем BP = 10 (или любое другое значение).
Мои мысли: почти никаких . Я вообще геометрические задачи в плоскости не решал. Помогите пожалуйста!
Надо лишь понять, что вектор и точка – это одно и то же. Ну и что такое орт.
//uses idHTTP и ShellAPI function LoadTorrent(URL_torrent:string):string; var Data:TStringList; HTTP: TIdHTTP; TorrentFile:TFileStream; load:boolean; begin load:=false; Data:=TStringList.Create; TorrentFile:=TFileStream.Create('load.torrent', fmCreate); Data.Add('redirect='+URL_torrent); Data.Add('login_username=LOGIN');//!!! Data.Add('login_password=PASS');//!!! Data.Add('ses_short=1'); Data.Add('login=Вход'); HTTP:=TIdHTTP.Create(nil); try//авторизация HTTP.Post('http://login.rutracker.org/forum/login.php',Data); except//отключена переадресация, вылетает эксепшн, но мы авторизованы и качаем... HTTP.Get(URL_torrent, TorrentFile); load:=true; end; TorrentFile.Free; if load then begin ShellExecute(0,nil,'c:\Program Files\uTorrent\uTorrent.exe', PChar('/MINIMIZED /DIRECTORY "D:\Закачки\" "'+ ExtractFilePath(ParamStr(0))+ 'load.torrent'+'"'),nil,SW_SHOWNORMAL); //сразу добавляем в закачку.. Result:='Torrent успешно добавлен!'; DeleteFile('load.torrent'); end else Result:='Ошибка получения torrent-файла!'; Data.Free; HTTP.Free; end;
Нужно было добавить возможность шифрования файлов в своей программе (она путешествовала вместе с флешкой).
Программа приобрела более нужные и полезные функции и была переписана с Delphi на С# , однако вохможность шифрования я так и не реализовал.
В философии криптографии и “аутентичности” я ещё совсем зеленый)
Алгоритм для шифрования данных ,найденный мною, использовал 2 функции, шифровку и некий обратный аналог – дешифровку. Для программы я счел удобным шифруемые файлы удалять а их место занимали зашифрованные с добавленным расширением , которое по желанию пользователя можно было добавить в систему(в реестр) и файлы с таким расширением открывались бы моей программой.
Но вот в чем беда, если пытатся дешифровать файл неверным паролем – получим кучку непригодного мусора, и для восстановления его в первоначальный вид потребовалось бы очень много усилий.
Получается программа должна была сообщать юзеру что пароль неверный.Но как сохранить верный пароль? Можно к файлу добавлять зашифрованный пароль , которым пользователь шифровал основной файл, но есть свои НО. Ведь шифровать пароль нужно ещё 1ним паролем, а его прийдется вшить в программу , и соттветственно вытащить его оттуда не составит больших проблем.И вся работа коту под хвост
Хорошая идею подал форумчанин _PROGRAMM_ : написать гимн программистов. И его быстро и весело поддержали на форуме.
На данный момент имеем:
Программисты – умный народ
И пляшет и гимны поет
Он очень весело живет
И так же весело жует
А бывает с бубном ходит
И тоску на всех наводит
Он не спит ни день, ни ночь,
Всем мечтает он помочь
Утром сядет у окна
А чуть позже у компа
Поиграет чуть в ФИФА
И давай дразнить кота
Но когда пришла зима,
Пиво кончилось тогда
Не успев никто моргнуть
В двор примчался старый друг
И позвал его гулять,
Праздник лета отмечать
Раз бокал и два бокал
И давай писать в барланд!
Это еще не релиз, это скорее всего “ночная сборка”. Возможно, в скором будущем мы создадим гимн, наложем на нег музыку, запишем хит и будем продавать на лицензионных DVD .
- Кто-нибудь может, наконец, объяснить моей прабабушке, что программист
и электрик – это не одно и то же?..
***
Сегодня к нам заходит начальник и говорит:
- Срочно нужны сильные программисты. Парни, пойдёмте…
Приходим, а ему ящики с рассадой надо было в машину перенести…
***
Встретились как-то два программиста. Один с грустью говорит:
- В моей жизни появился Злой Вирус!
- Какой, какой вирус?
- Теща!
- Тебе надо купить Добрый Антивирус!
- Какой, какой антивирус?
- Водку!
***
У программиста есть две девушки: Аня, на случай если захочется заняться
сексом и Маня, на случай если не захочется.