对于制作《危险边缘》游戏有什么建议吗?

对于制作《危险边缘》游戏有什么建议吗?

我一直在寻找用 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 布局;)

相关内容