Руководство пользователя 42 Сайт конкурса 42 Программная реализация 47 Сайт конкурса 47 Структура каталога задачника кио-2005 48 Функция определения пересечения 2-х отрезков 50 Окна помощи 51 Задача «Шахматы со спящим противником»




НазваниеРуководство пользователя 42 Сайт конкурса 42 Программная реализация 47 Сайт конкурса 47 Структура каталога задачника кио-2005 48 Функция определения пересечения 2-х отрезков 50 Окна помощи 51 Задача «Шахматы со спящим противником»
страница11/11
Дата публикации22.09.2014
Размер0.97 Mb.
ТипРуководство пользователя
literature-edu.ru > Курсовая работа > Руководство пользователя
1   2   3   4   5   6   7   8   9   10   11

Функция определения пересечения 2-х отрезков







Не параллельные отрезки:

=>



Если , то отрезки параллельны.





Теперь сама функция:
function intersection( x1,y1,x2,y2,x3,y3,x4,y4 : extended ):boolean;
var delta,c,d : extended;
begin
delta := -(x2-x1)*(y4-y3)+(y2-y1)*(x4-x3);
// В случае, когда отрезки параллельны, в этой программе мы можем считать,

// что они не пересекаются.
if abs(delta) < eps then begin result:=false; exit; end;

// Если отрезки непараллельные, то ищем коэффициенты при векторах

c := (-(x3-x1)*(y4-y3)+(y3-y1)*(x4-x3))/delta;
d := ((x2-x1)*(y3-y1)-(y2-y1)*(x3-x1))/delta;
result := (eps < c) and (c < 1-eps) and
(eps < d) and (d < 1-eps);
end;


Окна помощи



Для всех задач используется один компонент «Окно помощи» TFHelp. Помощь к конкретной игре помещается в поле Rules. При выводе (метод Show) форма изменяет размеры подстраиваясь под содержимое поля Rules. Поле DontShowOnStart «Не показывать это окно при запуске» обрабатывается в других формах (т.е. внутри этой формы не значение поля не используется).

Задача «Шахматы со спящим противником»



Стоит задача – съесть как можно больше черных фигур белым конём. При данном на конкурс расположении можно съесть все фигуры.

Участник можете передвигать только одну фигуру – белого коня. Передвижение осуществляется при помощи «мыши» с помощью стандартной операции «Drag and drop», то есть: нужно навести курсор мыши на коня, нажать левую кнопку мыши, потом (не отпуская левой кнопки мыши) подвести курсор мыши туда, куда нужно поставить коня и отпустить левую кнопку мыши (перетащить коня).

В начале белый конь стоит в левой нижней клетке поля. Клетки, куда он может ходить, подсвечиваются красными квадратиками. Клетки, которые «бьют» чёрные фигуры, подсвечены зеленым цветом.

Кнопка «Помощь» служит для открытия окна с описанием задания.



Кнопка «Выход» служит для закрытия окна задачи. Если при нажатии на кнопку «Выход» состояние игрового поля не сохранено, выводится предупреждающее окно.



Кнопка «Откат» служит для отмены последнего хода.

В поле «Список ходов» записываются ходы участника. Если при очередном ходе участник «съел» чёрную фигуру, то название фигуры указывается после хода.

В поле «Рекорд» записывается текущее минимальное число ходов, за которые участник смог съесть все фигуры.

Поле «Осталось чёрных фигур» содержит количество оставшихся чёрных фигур.

Группа «Загрузка / сохранение»:

«Начать заново» - отменить все сделанные ходы и начать игру заново;

«Загрузить поле» - загрузить ранее сохранённое состояние игры из файла. При нажатии на кнопку появляется стандартное диалоговое окно, в котором можно выбрать имя файла.

«Сохранить поле» - записать состояние игры в файл. При нажатии на кнопку появляется стандартное диалоговое окно, в котором можно выбрать имя для файла. Расширение для файлов в этой задаче «.map».



Данные рекорда автоматически сохраняются в каталог Olymp. Эти данные используются при сборе данных для отправки на сайт в форме FUpload.

Задача «Меандры»



Задача «Автомат для голосования»


  1. Не допустить пересечение элементов

Список элементов хранится в списке ElementsList. При создании/перетаскивании элемента проверяем, не пересекается ли его прямоугольник с прямоугольниками другх элементов, окружающие элементы (прямоугольники выбираются «с запасом» по краям). Если пересекаются, то не допускаем такое перемещение.

Определить, пересекаются ли прямоугольники можно следующим образом:

Проверить для каждой из 4-х вершин каждого прямоугольника, лежит ли она внутри другого прямоугольника.

Условие, что точка лежит внутри прямоугольника:

,

где - координаты точки,

- координаты верхнего левого угла прямоугольника,

- координаты левого нижнего угла прямоугольника.

Координаты отсчитываются от верхнего левого угла. Ось направлена вправо, ось направлена вниз.

Условие пересечения прямоугольников.

Пусть - параметры первого прямоугольника,

- параметры второго прямоугольника,

Тогда условие пересечения запишется в виде восьми копий условия, что точка лежит внутри прямоугольника:
// Точка внутри прямоугольника
function Point_In_Rect( X,Y:Integer; R:TRect ):boolean;
begin
Result := (R.Left <= X) and (X <= R.Right) and
(R.Top <= Y) and (Y <= R.Right);
end;

// Пересечение двух прямоугольников
function Rect_Intersect( R1,R2 : TRect ):boolean;
begin
Result := Point_In_Rect( R1.Left, R1.Top, R2 ) or
Point_In_Rect( R1.Right, R1.Top, R2 ) or
Point_In_Rect( R1.Left, R1.Bottom, R2 ) or
Point_In_Rect( R1.Right, R1.Bottom, R2 ) or
Point_In_Rect( R2.Left, R2.Top, R1 ) or
Point_In_Rect( R2.Right, R2.Top, R1 ) or
Point_In_Rect( R2.Left, R2.Bottom, R1 ) or
Point_In_Rect( R2.Right, R2.Bottom, R1 );
end;

Загрузка решений на сайт

Отправление из PHP письма с вложением


Как послать письмо в HTML виде? Присоедините к письму аттач с названием message.html и письмо превратиться в HTML-письмо!


// Функции. Можно вынести в дpугой файл.

class html_mime_mail {

var $headers;

var $multipart;

var $mime;

var $html;

var $parts = array();

function html_mime_mail($headers="") {

$this->headers=$headers;

}

function add_html($html="") {

$this->html.=$html;

}

function build_html($orig_boundary,$kod) {

$this->multipart.="--$orig_boundary\n";

if ($kod=='w' || $kod=='win' || $kod=='windows-1251') $kod='windows-1251';

else $kod='koi8-r';

$this->multipart.="Content-Type: text/html; charset=$kod\n";

$this->multipart.="BCC: del@ipo.spb.ru\n";

$this->multipart.="Content-Transfer-Encoding: Quot-Printed\n\n";

$this->multipart.="$this->html\n\n";

}

function add_attachment($path="", $name = "", $c_type="application/octet-stream") {

if (!file_exists($path.$name)) {

print "File $path.$name dosn't exist.";

return;

}

$fp=fopen($path.$name,"r");

if (!$fp) {

print "File $path.$name coudn't be read.";

return;

}

$file=fread($fp, filesize($path.$name));

fclose($fp);

$this->parts[]=array("body"=>$file, "name"=>$name,"c_type"=>$c_type);

}

function build_part($i) {

$message_part="";

$message_part.="Content-Type: ".$this->parts[$i]["c_type"];

if ($this->parts[$i]["name"]!="")

$message_part.="; name = \"".$this->parts[$i]["name"]."\"\n";

else

$message_part.="\n";

$message_part.="Content-Transfer-Encoding: base64\n";

$message_part.="Content-Disposition: attachment; filename = \"".

$this->parts[$i]["name"]."\"\n\n";

$message_part.=chunk_split(base64_encode($this->parts[$i]["body"]))."\n";

return $message_part;

}

function build_message($kod) {

$boundary="=_".md5(uniqid(time()));

$this->headers.="MIME-Version: 1.0\n";

$this->headers.="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";

$this->multipart="";

$this->multipart.="This is a MIME encoded message.\n\n";

$this->build_html($boundary,$kod);

for ($i=(count($this->parts)-1); $i>=0; $i--)

$this->multipart.="--$boundary\n".$this->build_part($i);

$this->mime = "$this->multipart--$boundary--\n";

}

function send($server, $to, $from, $subject="", $headers="") {

$headers="To: $to\nFrom: $from\nSubject: $subject\nX-Mailer: The Mouse!\n$headers";

$fp = fsockopen($server, 25, &$errno, &$errstr, 30);

if (!$fp)

die("Server $server. Connection failed: $errno, $errstr");

fputs($fp,"HELO $server\n");

fputs($fp,"MAIL FROM: $from\n");

fputs($fp,"RCPT TO: $to\n");

fputs($fp,"DATA\n");

fputs($fp,$this->headers);

if (strlen($headers))

fputs($fp,"$headers\n");

fputs($fp,$this->mime);

fputs($fp,"\n.\nQUIT\n");

while(!feof($fp))

$resp.=fgets($fp,1024);

fclose($fp);

}

}

// *************************************************************************

//

// В качестве аттача пpисоединяем html-письмо (открывается автоматически).

// Второй аттач - некоторый файл из каталога.

// Вот так вызывать все то, что написано выше:

//

// *************************************************************************

$mail=new html_mime_mail();

$mail->add_html("

Пpивет!

".

"
Посылаю двоичный файл [/bin/ls] ...".

"

1   2   3   4   5   6   7   8   9   10   11

Похожие:

Руководство пользователя 42 Сайт конкурса 42 Программная реализация 47 Сайт конкурса 47 Структура каталога задачника кио-2005 48 Функция определения пересечения 2-х отрезков 50 Окна помощи 51 Задача «Шахматы со спящим противником» iconКонкурса
Городской конкурс «it- технологии в образовательном процессе» в номинации «Лучший сайт», учителя

Руководство пользователя 42 Сайт конкурса 42 Программная реализация 47 Сайт конкурса 47 Структура каталога задачника кио-2005 48 Функция определения пересечения 2-х отрезков 50 Окна помощи 51 Задача «Шахматы со спящим противником» iconЗадача проекта: «Кулинария это искусство приготовления пищи. И, как...
Каким бы красивым ни был сайт, посетители ищут на нём свежую информацию. Для того, чтобы сайт стал успешным, он обязан быть динамичным....

Руководство пользователя 42 Сайт конкурса 42 Программная реализация 47 Сайт конкурса 47 Структура каталога задачника кио-2005 48 Функция определения пересечения 2-х отрезков 50 Окна помощи 51 Задача «Шахматы со спящим противником» iconЗаказать сайт визитку недорого
Наша компания всего за 1 день сможет изготовить сайт визитку высшего качества! Еще ни один наш клиент не остался недоволен нашей...

Руководство пользователя 42 Сайт конкурса 42 Программная реализация 47 Сайт конкурса 47 Структура каталога задачника кио-2005 48 Функция определения пересечения 2-х отрезков 50 Окна помощи 51 Задача «Шахматы со спящим противником» iconРуководство пользователя 6
Стек структура данных, представляющая собой список элементов, организованных по принципу lifo (англ last in — first out, «последним...

Руководство пользователя 42 Сайт конкурса 42 Программная реализация 47 Сайт конкурса 47 Структура каталога задачника кио-2005 48 Функция определения пересечения 2-х отрезков 50 Окна помощи 51 Задача «Шахматы со спящим противником» iconПоложение о проведении второго Всемирного лингвокультурологического...
Ение устанавливает порядок проведения второго Всемирного лингвокультурологического конкурса по русскому языку и литературе, посвященного...

Руководство пользователя 42 Сайт конкурса 42 Программная реализация 47 Сайт конкурса 47 Структура каталога задачника кио-2005 48 Функция определения пересечения 2-х отрезков 50 Окна помощи 51 Задача «Шахматы со спящим противником» iconПоложение о проведении второго Всемирного лингвокультурологического...
Ение устанавливает порядок проведения второго Всемирного лингвокультурологического конкурса по русскому языку и литературе, посвященного...

Руководство пользователя 42 Сайт конкурса 42 Программная реализация 47 Сайт конкурса 47 Структура каталога задачника кио-2005 48 Функция определения пересечения 2-х отрезков 50 Окна помощи 51 Задача «Шахматы со спящим противником» iconПоложение о муниципальном этапе Всероссийского конкурса чтецов
В рамках Конкурса участникам предлагается прочитать на русском языке отрывок из выбранного ими прозаического произведения, которое...

Руководство пользователя 42 Сайт конкурса 42 Программная реализация 47 Сайт конкурса 47 Структура каталога задачника кио-2005 48 Функция определения пересечения 2-х отрезков 50 Окна помощи 51 Задача «Шахматы со спящим противником» iconПоложение о муниципальном этапе Всероссийского конкурса чтецов
В рамках Конкурса участникам предлагается прочитать на русском языке отрывок из выбранного ими прозаического произведения, которое...

Руководство пользователя 42 Сайт конкурса 42 Программная реализация 47 Сайт конкурса 47 Структура каталога задачника кио-2005 48 Функция определения пересечения 2-х отрезков 50 Окна помощи 51 Задача «Шахматы со спящим противником» iconТехнология использования массовой рассылки электронных материалов...
Причина, на наш взгляд, заключается в том, что текстовые материалы, картинки, видео материалы, простейшие тесты, то есть практически...

Руководство пользователя 42 Сайт конкурса 42 Программная реализация 47 Сайт конкурса 47 Структура каталога задачника кио-2005 48 Функция определения пересечения 2-х отрезков 50 Окна помощи 51 Задача «Шахматы со спящим противником» iconСодержание Введение Преимущества и виды веб-сайтов Подготовительный...
Сегодня у агентств, профессионально занимающихся разработкой интернет-ресурсов, существуют свои классификации сайтов. В их основе...

Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции