Язык Wolfram Language

Расширенный доступ к базе знаний Wolfram Knowledgebase

Генерирование интернет-викторин

Mathematica позволяет легко создавать и развертывать онлайн-формы, используя новые встроенные функции. Такие формы могут быть развернуты в облачной системе файлов, что обеспечивает постоянное хранение кода, данных, и вычислений, а также мгновенный доступ к данным с помощью активных документов и приложений. Эти возможности показаны здесь за счет создания двух онлайн-викторин, в которых пользователи отгадывают крупные города и популярные фильмы.

Создадим викторину о крупных городах США в облачной системе файлов.

In[1]:=
Click for copyable input
CloudDeploy[ FormFunction[{"city", "How many of the 10 most populous US cities can you name?"} -> RepeatingElement[ Restricted[ "City", {"Country" -> Entity["Country", "UnitedStates"], "Population" -> TakeLargest[10]}], {1, {1, 10}}], GeoListPlot[{#city, Complement[ EntityList@ Entity["City", {"Country" -> Entity["Country", "UnitedStates"], "Population" -> TakeLargest[10]}], #city]}, GeoLabels -> True, PlotLegends -> {"OK", "Missed"}] &, "PNG"]]
Out[1]=

Просмотрим созданную форму для данной викторины.

Если хотя бы одно из полей ввода не содержит название города, входящего в десятку крупнейших городов США, форма будет отображать сообщение об ошибке.

Теперь создадим викторину о популярных фильмах в облачной системе файлов.

In[2]:=
Click for copyable input
CloudDeploy[ FormFunction[{"movies", "How many of the 10 top grossing movies by Steven Spielberg can \ you name?"} -> RepeatingElement[ Restricted[ "Movie", {"Director" -> Entity["Person", "StevenSpielberg::76z25"], "DomesticBoxOfficeGross" -> TakeLargest[10]}], {1, {1, 10}}], With[{images = EntityValue[ EntityClass[ "Movie", {"Director" -> Entity["Person", "StevenSpielberg::76z25"], "DomesticBoxOfficeGross" -> TakeLargest[10]}], "Image", "EntityAssociation"]}, Grid[{ {"you guessed", Length[#movies], ImageCollage[Values[KeyTake[images, #movies]]]}, {"you missed", 10 - Length[#movies], ImageCollage[Values[KeyDrop[images, #movies]]]} }, Frame -> All, Alignment -> Left]] &]]
Out[2]=

Перейдем на созданную страницу, чтобы протестировать форму с вопросами викторины.

Родственные примеры

de en es fr ja ko pt-br zh