learnr
个checkr
包引用了learnr
个包裹:
exercise tutorial包目前提供与学习者兼容的代码检查功能。
(请注意,此引用不指向CRAN包checkr。不幸的是,包名称重复。)
但在checkr
教程中,没有建议如何与checkr
一起使用它。另一方面,learnr
中的插图仍然是草稿版本,讨论了高级问题,并且缺少与two-plus-two
相关的简单示例。
我正在寻找的是模型示例的具体过程。例如:如何使用learnr
R Markdown模板“交互式教程”提供的learnr
示例检查学生输入。
所以我的问题是:如何使用checkr
检查learnr
使用checkr
包添加两加二所需的R代码?
也许这些问题应该使用新标签($ (document) .on ("click", "#register_in", function () all $().val()
和$(document).on("click", "#register_in", function() {
var error = "";
if ($("username").val() == "" || $("password").val() == "" || $("name").val() == "" ||
$("lastname").val() == "" || $("jmbg").val() == "" || $("tel").val() == "" || $("email").val() == "") {
error += "Sva polja moraju da budu popunjena";
}
var n = $("jmbg").length;
if (n != 13) {
error += "\nJMBG mora da ima 13 cifara";
}
$("#error1").text(error);
});
$("#register").click(function() {
var text = "<div class=\"Centar\"><div id= \"error1\" class=\"Red\" ></div >";
text += "Korisnicko ime: <br /> <input type=\"text\" id=\"username\" /> <br />";
text += "Lozinka: <br /> <input type=\"password\" id=\"password\" /> <br />";
text += "Ime:<br /> <input type=\"text\" id=\"name\" /> <br />";
text += "Prezime:<br /> <input type=\"text\" id=\"lastname\" /> <br />";
text += "Pol: <br /> <select id=\"pol\"><option value=\"M\">Musko</option><option value=\"Z\">Zensko</option></select><br />";
text += "JMBG:<br /> <input type=\"text\" id=\"jmbg\" /> <br />";
text += "Kontakt telefon:<br /> <input type=\"text\" id=\"tel\" /> <br />";
text += "Email:<br /> <input type=\"text\" id=\"email\" /> <br />";
text += "<input type=\"submit\" id=\"register_in\" value=\"Register\" /> </div >";
$("#screen").html(text);
});
),但我没有权限这样做。
答案 0 :(得分:1)
经过多次实验后,以下程序对我有用:
tutorial_options(exercise.checker =
checkr::check_for_learnr)
添加到我的设置块中
&#34; 01-Exercises.Rmd&#34;文件。two-and-two-check
的新R块。 (=与学生任务的块名称相同,但添加了-check
。)check_two_and_two(USER_CODE)
,这将成为我的测试功能。check_two_and_two
&#34; check_test.R&#34;并保存在文件夹&#34; www&#34;。 rmarkdown::run("01-Exercises/01-Exercises.Rmd")
。这是我的测试功能:
check_two_and_two <- function(USER_CODE) {
code <- for_checkr(USER_CODE)
t1 <- line_where(code, insist(all(F == "+"), "Your operator is {{F}}. This is not the assigned task."))
if (failed(t1)) return(t1)
t2 <- line_where(code, insist(all(V == 4), "Your solution is {{V}}. This is not the result (= 4) asked for."))
if (failed(t2)) return(t2)
line_binding(code, 2 + 2, failif(FALSE, "The pattern did not match."), message = "The result is correct, but I was looking for 2 + 2.")
}
即使这对我有用:也许有更好(更有效)的解决方案?