1

我正在查看dist3.Rmd此处的示例模板:http ://www.R-exams.org/templates/dist3/ 。解决方案降价是提交后提供的一般反馈。我想创建反馈。

Solution
========
The distance $d$ of $p$ and $q$ is given by
$d^2 = (p_1 - q_1)^2 + (p_2 - q_2)^2$ (Pythagorean formula).

Hence $d = \sqrt{(p_1 - q_1)^2 + (p_2 - q_2)^2} =
  \sqrt{(`r p[1]` - `r q[1]`)^2 + (`r p[2]` - `r q[2]`)^2}
   = `r round(sol, digits = 3)`$.
\
```{r distplot, echo = FALSE, results = "hide", fig.path = "", fig.cap = ""}
par(mar = c(4, 4, 1, 1))
plot(0, type = "n", xlim = c(0, 6), ylim = c(0, 6), xlab = "x", ylab = "y")
grid(col = "slategray")
points(rbind(p, q), pch = 19)
text(rbind(p, q), c("p", "q"), pos = c(2, 4))
lines(rbind(p, q))
lines(c(p[1], p[1], q[1]), c(p[2], q[2], q[2]), lty = 2)
```

如果答案选择正确,我希望弹出一般反馈,如果答案错误,我希望显示毕达哥拉斯公式和图像提示,但不显示计算。我怎样才能做到这一点?

4

1 回答 1

0

鉴于您关于“一般反馈”的行话,我认为这与 Moodle 和exams2moodle()R/exams 中的界面有关。

我试图找出您描述的功能是否可以使用Moodle XML 格式指定,但没有成功。所以目前这在 R/exams 中肯定是不可能的,我不确定在 Moodle XML 中是否可能。如果有人知道 Moodle XML 中的解决方案,我会感兴趣并且可以检查是否可以将其添加到exams2moodle().

更新:在与@ArvindMurali 的评论中讨论之后,我在这里简要讨论如何将图像包含在“解决方案列表”的特定反馈中。但是,我仍然看不到如何在回答问题的不同迭代之间区分具体反馈和一般反馈。

如果你复制dist3.Rmdto,比如说,dist4.Rmd你只需要修改两行。r distplot在第35 行代码块的选项中,添加fig.show = "hide". 并在第r solutionlist46 行的块中将answerlist(...)命令替换为:

answerlist(ifelse(sc$solutions,
  "This is correct!",
  "This is not correct, please consider: <br/> ![](distplot-1.png)"),
  markup = "markdown")

为了为 Moodle 做准备,您需要使用pluginfile = FALSE以便将图像真正直接嵌入到特定的反馈中(而不是通过 Moodle 的插件文件声明)。

set.seed(1)
exams2moodle("dist4.Rmd", pluginfile = FALSE)

然后,每个不正确项目的具体反馈将显示来自该r distplot块的情节。

dist4-moodle

格式不是很好,但它可以工作 - 到目前为止一切都很好。

问题是除了这个特定的反馈之外,一般的反馈也会显示在最后——就我所见,总是。如果有办法在 Moodle 中延迟这一点,那么我可以检查是否可以在 R/exams 中进行接口。

于 2020-07-29T10:59:04.917 回答