オンラインクイズの生成
新たな組込み機能を使うと簡単にフォームを作って配備することができる.このようなフォームは,クラウドに配備してコードとデータの永久的な保存をシームレスに提供したり,クラウド計算を行ったり,アクティブなドキュメント,API,アプリ等を通した即時の外部配備を提供したりする.ここではこれらの機能について,それぞれ大都市と有名な映画についてユーザにクエリを促す2つの「クイズ」の開発と配備を通して説明する.
アメリカの10大都市についてのクイズをクラウド内に作る.
In[1]:=
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"]]
このフォームを訪れ,実際にインタラクトする.
フィールドの一つがアメリカの10大都市ではない場合,このフォームは失敗メッセージを表示する.
映画についてのクイズをクラウド内に作る.
In[2]:=
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]] &]]
pageを開いてクイズに挑戦する.