我一直在寻找用 LaTeX 制作 Jeopardy 类型的游戏。经过一番谷歌搜索和修改后,我还没有找到任何令人满意的东西(我查看了以下链接:危险边缘评论,加拿大运输安全局,特克斯, 和这个)。
我自己对 TeX 的掌握不够好,无法完成这项工作,而且似乎有这样的东西在某个地方,但我找不到。我找到了很多不错的 Jeopardy 游戏,但没有一款游戏需要数学代码(例如,BYOJeopardy 非常适合 Jeopardy,但不适合数学,而我链接的其他东西非常适合数学,但不适合 Jeopardy)。我怀疑这可以用 beamer 来完成(我对它有丰富的经验)。
为了清晰起见进行编辑:我正在寻找某种方法(也许是一个新的文档类?),它可以让我制作危险边缘类型的游戏。
据我所知,这是您从上面第二个链接中的 jeopardy.sty 获得的东西,我不觉得它与 Jeopardy 有什么相似之处。
答案1
好的,这里有一些代码,可以在 Beamer 中重新创建 BYOjeopardy 布局,以帮助您入门。
Gif 模型
代码:
\documentclass{beamer}
\setbeamertemplate{navigation symbols}{}
\setbeamersize{text margin left=0cm, text margin right=0cm}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\usepackage{ocgx}
\newtcolorbox{InnerSubjectBox}{
enhanced,
nobeforeafter,
arc=0pt,
width=.2\paperwidth,
boxrule=.4pt,
colframe=white,
center upper,
interior style={
top color=blue,
bottom color=black
},
colupper=white,
}
\newcommand{\subjects}[5]{×
\begin{InnerSubjectBox}
#1
\end{InnerSubjectBox}%
\begin{InnerSubjectBox}
#2
\end{InnerSubjectBox}%
\begin{InnerSubjectBox}
#3
\end{InnerSubjectBox}%
\begin{InnerSubjectBox}
#4
\end{InnerSubjectBox}%
\begin{InnerSubjectBox}
#5
\end{InnerSubjectBox}
}
\newtcolorbox{InnerPrizeBox}{
enhanced,
nobeforeafter,
arc=0pt,
width=.2\paperwidth,
boxrule=.4pt,
colframe=white,
center upper,
interior style={
top color=blue,
bottom color=black
},
colupper=white,
valign=center,
fontupper=\LARGE\bfseries,
height=.176\paperheight
}
\newcommand{\prizes}{%
\foreach \i in {1,2,...,5}{%
\begin{InnerPrizeBox}%
\begin{ocg}{s\i-100}{s\i-100}{1}{\hyperlink{s\i-100}{100}}\end{ocg}
\end{InnerPrizeBox}%
}%
\foreach \i in {1,2,...,5}{%
\begin{InnerPrizeBox}%
\begin{ocg}{s\i-200}{s\i-200}{1}{\hyperlink{s\i-200}{200}}\end{ocg}
\end{InnerPrizeBox}%
}%
\foreach \i in {1,2,...,5}{%
\begin{InnerPrizeBox}%
\begin{ocg}{s\i-300}{s\i-300}{1}{\hyperlink{s\i-300}{300}}\end{ocg}
\end{InnerPrizeBox}%
}%
\foreach \i in {1,2,...,5}{%
\begin{InnerPrizeBox}%
\begin{ocg}{s\i-400}{s\i-400}{1}{\hyperlink{s\i-400}{400}}\end{ocg}
\end{InnerPrizeBox}%
}%
\foreach \i in {1,2,...,5}{%
\begin{InnerPrizeBox}%
\begin{ocg}{s\i-500}{s\i-500}{1}{\hyperlink{s\i-500}{500}}\end{ocg}
\end{InnerPrizeBox}%
}%
}
\newtcolorbox{QuestionHeadFoot}[1][]{
enhanced,
before=\vskip-.7ex,
after=,
arc=0pt,
width=\paperwidth,
boxrule=.4pt,
colframe=white,
center upper,
center lower,
interior style={
top color=blue,
bottom color=black
},
colupper=white,
collower=white,
valign=center,
fontupper=\LARGE\bfseries,
fontlower=\LARGE\bfseries,
height=.176\paperheight,
sidebyside,
segmentation style={white,solid,line width=.4pt},
#1
}
\newcommand{\header}[2]{
\begin{QuestionHeadFoot}
Subject #1 \tcblower #2
\end{QuestionHeadFoot}
}
\newcommand{\footer}[1]{
\begin{QuestionHeadFoot}[before=\vskip-2.7ex]
\hyperlink{question#1}{Question} \\ \hyperlink{answer#1}{Answer} \tcblower
\hideocg{#1}{Done!} \\ \hyperlink{home}{Home}
\end{QuestionHeadFoot}
}
\newcommand{\content}[4]{
\begin{frame}
\hypertarget<1>{answer#1}{}
\hypertarget<2>{question#1}{}
\hypertarget{#1}{}
\header{#2}{#3}
#4
\footer{#1}
\end{frame}
}
\newtcolorbox{textarea}[1][]{
nobeforeafter,
height=6.2cm,
boxrule=0pt,
center upper,
valign=center,
#1
}
\begin{document}
\begin{frame}
\hypertarget{home}{}
\vspace*{-.5cm}
\subjects{Subject 1}{Subject 2}{Subject 3}{Subject 4}{Subject 5}
\prizes
\end{frame}
\content % 4 arguments
{s1-100} % question internal identifier
{1} % subject number
{100}{ % question prize
\begin{textarea}[] % question/answer content
\only<1>{ % answer content
$4$
}
\only<2>{ % question content
How much is $2+2$ ?
}
\end{textarea}
}
\end{document}
我不会一步一步地解释一切,但应该清楚的是,我使用了tcolorbox
块包(比标准投影仪块灵活得多)和ocgx
用于实现已访问过的问题的“消失”效果的包。
此代码是完全自动的,您需要做的就是用实际内容填充它。问题的正确链接已经存在。每个问题/答案都将包含在\content
这样的宏中:
\content % 4 arguments
{s1-100} % question internal identifier
{1} % subject number
{100}{ % question prize
\begin{textarea}[] % question/answer content
\only<1>{ % answer content
$4$
}
\only<2>{ % question content
How much is $2+2$ ?
}
\end{textarea}
}
这应该是不言自明的。默认情况下,我将问题/答案内容垂直和水平居中,但可以轻松更改它以自定义环境textarea
。
用户点击“回答”检查答案后,必须点击“完成!”(激活ocg
从主页隐藏奖品的功能),然后点击“主页”返回主页,此时奖品会少一个。
整个前言应该放在一个.sty
文件或任何其他地方,以便实际的.tex
文件只包含一个“主页”框架加上 25 个\content
宏。
限制
- 正如已经指出的那样 在 Beamer 中选择按钮后隐藏按钮 键盘导航会破坏整个游戏。可以通过聘请一名尖刻的主持人来解决这个问题。
- 由于它使用
ocgx
包这只适用于 Acrobat reader/pro/whatever。可以删除ocgx
依赖关系,但是没有简单的方法来隐藏已经访问过的问题。 - 不幸的是,似乎没有办法设置一个按钮来同时隐藏奖品和回家。
- 无论如何,这都不是完美的,应该进行更彻底的测试。
- 我不喜欢这个“危险”游戏,也不喜欢 BYOjeopardy 布局;)