30 окт. 2010 г.

Задание №2 для группы 136

CAPTCHA своими руками
Второе задание направлено на проверку следующих навыков:
• получение растровых изображений и работа с ними;
• создание GUI.
В принципе, GUI мне не так важен, как сама кэпча. Но всё же без графического интерфейса задание не будет засчитано.

Описание GUI (библиотека Tkinter):
1. Графический интерфейс пользователя представляет собою окошко, в верхней части которого показывается картинка, под ней поле (ENTRY) для ввода ответа, а под ним две кнопки: «check» и «generate».
2. При запуске программы генерируется картинка согласно заданию (см. ниже), поле для ввода ответа пусто.
3. Пользователь вводит в поле предполагаемый ответ.
4. По нажатию кнопки «check» происходит проверка ответа. После этого должно появляться сообщение (WARNING) о том, правильный ли ответ или нет.
5. По нажатию кнопки «generate» генерируется новая картинка, а поле с версией ответа очищается.

Это минимальный требуемый интерфейс. Если вы как-то разнообразите его — вам только в плюс.

Требования к генерируемой картинке:
1. (Зелик) Шесть случайных букв или цифр, каждая имеет свой наклон; на заднем плане текстура в виде волнообразно деформированной сетки со случайно меняющимся вдоль и поперёк картинки периодом.
2. (Нормухаметова) Четыре крупных толстых буквы, каждая разрезана под случайным углом одной прямой, после чего образовавшиеся куски разведены на небольшое (по сравнению с размером букв) расстояние.
3. (Захаров) Восемь случайных букв или цифр, деформированных случайным образом (механизм деформации любой).
4. (Гладышев) Случайная электрическая схема из трёх резисторов, сопротивление каждого из которых задаётся небольшим целым случайным числом в омах. Схема должна быть односвязной и иметь ровно два внешних контакта. Ответом будет являться суммарное сопротивление такой схемы (при необходимости округлённое до одного знака после запятой).
5. (Хегай) Матановая кэпча. Вычислить значение случайного выражения, составленного при помощи операций сложения, вычитания, умножения, деления и вычисления квадратного корня над небольшими случайными целыми числами. Выражение должно включать как минимум одно вычисление корня, одно сложение или вычитание и одно деление. Всего операций не менее четырёх. При необходимости ответ округлять до двух знаков после запятой.
6. (Брусницына) Филологическая кэпча по роману А.С. Пушкина «Евгений Онегин». Из первой главы (в идеале — из любой) случайным образом выбираем одну строфу. Из строфы берём первую строку (в идеале — любую). Из этой строки предлагаем угадать последнее слово. Картинка выглядит следующим образом: угадывающему предлагаются три строки, в одной из которых (в какой — заранее неизвестно) находится наша строка без последнего слова, а в двух других — последние слова из других строк плюс правильный ответ, разделённые пробелами. Желательно, чтобы среди вариантов ответа было слово, рифмованное с правильным ответом. Число слов в строках с вариантами ответа не должно превышать число слов в строке-вопросе.
7. (Бéзруков) «Бегущая строка» — анимированный GIF или PNG с бегущей горизонтально строкой из случайных букв и цифр. Символы бегут непрерывно, начало строки отмечать каким-либо образом (цвет, особая текстура символа и т.п.), о чём предупреждать угадывающего.

Комментариев нет: