Приложение: полный код всех проектов
Напишите нам, если не нашли ответ в Справке. Вы можете приложить скриншоты или видео, чтобы ускорить помощь:
Написать в чат Написать в Telegram
Проект 1. Содержит ли фотография определенный объект?
Спецификации
Входные данные: |
Выходные данные: |
|
|
Блок HTML
{{img src=image width="100%" height="400px"}}
<div>Есть ли <b>обувь</b> на картинке?<div>
<div> {{field type="radio" name="result" value="OK" label="Да" hotkey="1"}}
{{field type="radio" name="result" value="BAD" label="Нет" hotkey="2"}}
{{field type="radio" name="result" value="404" label="Ошибка загрузки" hotkey="3"}}</div>
Блок JavaScript
exports.Task = extend(TolokaHandlebarsTask, function(options) {
TolokaHandlebarsTask.call(this, options);
}, {
onRender: function() {
// DOM element for task is formed (available via #getDOMElement())
},
onDestroy: function() {
// Task is completed. Global resources can be released (if used)
}
});
function extend(ParentClass, constructorFunction, prototypeHash) {
constructorFunction = constructorFunction || function() {};
prototypeHash = prototypeHash || {};
if (ParentClass) {
constructorFunction.prototype = Object.create(ParentClass.prototype);
}
for (var i in prototypeHash) {
constructorFunction.prototype[i] = prototypeHash[i];
}
return constructorFunction;
}
Проект 2. Найти похожий объект в интернет-магазине
Спецификации
Входные данные: |
Выходные данные: |
|
|
Блок HTML
{{img src=image width="50%" height="400px"}}
<div class='answers'>
<p>Найти похожую <b>обувь</b> в интернет-магазине ASOS</p>
{{field type="button-clicked" name="button" label="ASOS" href="https://www.asos.com" action=true}}
<p>Обувь должна быть похожа по цвету, материалу, длине и стилю.</p>
<p>Вставьте ссылку</p>
{{field width="100%" type="input" name="found_link"}}
<p>Загрузите изображение</p>
<div>
{{field width="100%" type="file-img" name="found_image" preview=true}}
</div>
</div>
Блок JavaScript
exports.Task = extend(TolokaHandlebarsTask, function(options) {
TolokaHandlebarsTask.call(this, options);
}, {
validate: function(solution) {
if (!solution.output_values.found_image) {
return {
task_id: this.getTask().id,
errors: {
'__TASK__': {
message: 'Upload photo or mark that there is no photo'
}
}
};
} else {
return TolokaHandlebarsTask.prototype.validate.apply(this, arguments);
}
},
onRender: function() {
// DOM element for task is formed (available via #getDOMElement())
},
onDestroy: function() {
// Task is completed. Global resources can be released (if used)
}
});
function extend(ParentClass, constructorFunction, prototypeHash) {
constructorFunction = constructorFunction || function() {};
prototypeHash = prototypeHash || {};
if (ParentClass) {
constructorFunction.prototype = Object.create(ParentClass.prototype);
}
for (var i in prototypeHash) {
constructorFunction.prototype[i] = prototypeHash[i];
}
return constructorFunction;
}
Блок CSS
.task {
display: block;
height: 500px;
width: 800px;
}
.img {
float: left;
width: 50%;
}
.answers {
float: left;
width: 40%;
margin: 5%;
}
Проект 3. Похож ли найденный объект на исходный?
Спецификации
Входные данные: |
Выходные данные: |
|
|
Блок HTML
{{img src=image width="50%" height="400px"}}
{{img src=found_image width="50%" height="400px"}}
<p><b>Похожа ли обувь?</b></p>
<p>1. Сравните две пары обуви и определите, похожи ли они.</p>
<p>2. Убедитесь, что фотографии соответствуют товару из магазина.</p>
{{button label="Перейти на страницу товара" href=found_link action=true}}
<p>Обувь должна быть похожа по цвету, материалу, длине и стилю.</p>
{{field type="radio" name="result" value="Yes" label="Да"}}
{{field type="radio" name="result" value="No" label="Нет"}}
Блок JavaScript
exports.Task = extend(TolokaHandlebarsTask, function(options) {
TolokaHandlebarsTask.call(this, options);
}, {
onRender: function() {
// DOM element for task is formed (available via #getDOMElement())
},
onDestroy: function() {
// Task is completed. Global resources can be released (if used)
}
});
function extend(ParentClass, constructorFunction, prototypeHash) {
constructorFunction = constructorFunction || function() {};
prototypeHash = prototypeHash || {};
if (ParentClass) {
constructorFunction.prototype = Object.create(ParentClass.prototype);
}
for (var i in prototypeHash) {
constructorFunction.prototype[i] = prototypeHash[i];
}
return constructorFunction;
}
Блок CSS
.task {
display: block;
}
.img {
float: left;
width: 50%;
}
Проект 4. Какой из найденных объектов больше похож на исходный?
Спецификации
Входные данные: |
Выходные данные: |
|
|
Блок HTML
<div class="header">
{{img src=image width="50%" height="400px"}}
<p><b>Какая обувь больше похожа на исходную?</b></p>
<p>Перейдите по ссылкам в интернет-магазин и определите, какая пара обуви больше похожа на исходную.</p>
<div class="left caption">
{{ button label="Первый товар" href=first_link size="L"}}
</div>
<div class="right caption">
{{ button label="Второй товар" href=second_link size="L"}}
</div>
</div>
<div class="footer">
{{field type="radio" name="result" label="Первый товар" value=first hotkey="1"}}
{{field type="radio" name="result" label="Второй товар" value=second hotkey="2"}}
</div>
Блок JavaScript
exports.Task = extend(TolokaHandlebarsTask, function(options) {
TolokaHandlebarsTask.call(this, options);
}, {
getTemplateData: function() {
var data = TolokaHandlebarsTask.prototype.getTemplateData.apply(this, arguments),
input = this.getTask().input_values;
var first_link = input.first_link;
var second_link = input.second_link;
var uploaded_link_first = '',
uploaded_link_second = ''
if (Math.floor(Math.random() * 2)) {
uploaded_link_first = first_link
uploaded_link_second = second_link
} else {
uploaded_link_first = second_link
uploaded_link_second = first_link
}
data.uploaded_link_first = uploaded_link_first;
data.uploaded_link_second = uploaded_link_second;
data.result_first = uploaded_link_first;
data.result_second = uploaded_link_second;
return data;
},
onRender: function() {
// DOM element for task is formed (available via #getDOMElement())
},
onDestroy: function() {
// Task is completed. Global resources can be released (if used)
}
});
function extend(ParentClass, constructorFunction, prototypeHash) {
constructorFunction = constructorFunction || function() {};
prototypeHash = prototypeHash || {};
if (ParentClass) {
constructorFunction.prototype = Object.create(ParentClass.prototype);
}
for (var i in prototypeHash) {
constructorFunction.prototype[i] = prototypeHash[i];
}
return constructorFunction;
}
Блок CSS
.task {
display: block;
text-align: center;
}
.header {
overflow: hidden;
}
.left {
float: left;
text-align: left;
}
.right {
float: right;
text-align: right;
}
.caption {
width: 50%;
}