javascript - JavaScript 中的随机数学游戏
问题描述
我正在尝试用 JS 做一个数学游戏,如下所示:
简单级别:此级别包含 5 个问题,包含三个数字,例如 1 + 2;每题计算2分。如果学生得了 7 分,他会通过动人的动画和成功的音乐向他表示祝贺,如果他没有得到及格分数,则会听到失落的声音。
我想展示他从正确答案中得到的分数。
像这个示例输出:你输了,得到了 0/5,类似的东西。
我已经这样做了,但没有得到我想要的输出,我认为 if 语句中有错误。
这是我的 HTML 代码
<section>
<h1>Math Addition Quiz Game</h1>
<div class="centerdiv">
<div class="insertBox">
<div class="box1">
<p id="v1"> </p>
<p class="text-center justify-content-center" id="final"></p>
<p class="text-center justify-content-center" id="final1"></p>
</div>
<div class="box1">
<p id="operator">+</p>
</div>
<div class="box1">
<p type="text" id="v2"></p>
</div>
</div>
<div class="middleBox">
<input type="text" id="answ">
</div>
<div class="sentBox">
<button onclick="jsGame()" class="mb-3" id="submit"> Check Answer</button> <br>
<button onclick="Restart()" class="mb-3"id="restart" > Restart </button>
<button onclick="Main()" id="Main"> Back To Main Menu</button>
</div>
</div>
</section>
这是 Java 脚本代码
let n1 = Math.floor(Math.random()*10+1)
let n2 = Math.floor(Math.random() * 10 + 1)
document.getElementById('v1').innerHTML = n1;
document.getElementById('v2').innerHTML = n2;
var count = 0;
var wrong = 0;
var score = 0;
document.getElementById('v1').value = n1;
document.getElementById('v2').value = n2;
document.getElementById('restart').style.visibility = "hidden";
document.getElementById('Main').style.visibility = "hidden";
let ans = n1 + n2;
const jsGame = () => {
var usera = document.getElementById('answ').value;
if (usera == ans) {
audio.play();
wrong = 0; //wrong answers
score++;
count++; //correct answers
GenerateRandom();
}
else {
//sad.play();
wrong = wrong+1;
document.getElementById('answ').value = " ";
alert(`Correct Answer is ${ans} Try Again. `);
}
if (score == 5) {
level.play();
Visible();
var s = 10 - wrong;
if (s >= 5) {
level.play();
document.getElementById("final").innerHTML = `you win and got ${s}/10`
document.getElementsById('submit').style.visibility = "hidden";
document.getElementById('operator').style.visibility = "hidden";
}else{
sad.play();
document.getElementById('answ').value = " ";
document.getElementById("final").innerHTML = `you lose and got ${wrong}/10`
}
}
};
function GenerateRandom() {
document.getElementById('answ').value = " ";
n1 = Math.floor(Math.random() * 10 + 1)
n2 = Math.floor(Math.random() * 10 + 1)
document.getElementById('v1').innerHTML = n1;
document.getElementById('v2').innerHTML = n2;
document.getElementById('v1').value = n1;
document.getElementById('v2').value = n2;
ans = n1 + n2;
}
function Restart() {
window. location. reload();
}
function Main() {
location.href="./game.html";
}
var audio = new Audio('../Congratulations-sound.mp3');
var sad = new Audio('../sad.wav');
var level = new Audio('../level.wav')
function Visible() {
document.getElementById('v1').style.visibility = "hidden";
document.getElementById('v2').style.visibility = "hidden";
document.getElementById('answ').style.visibility = "hidden";
document.getElementById('submit').style.visibility = "hidden";
document.getElementById('operator').style.visibility = "hidden";
document.getElementById('restart').style.visibility = "visible";
document.getElementById('Main').style.visibility = "visible";
}
我希望你能帮助我,任何修改或更好地添加代码请帮助我。谢谢你。
这是我所做的演示。
解决方案
推荐阅读
- testing - 异常 SpecFlow.Plus.Shared.Services.Activation.ActivationException
- macos - iTerm2 日志轮换
- tabs - 有没有办法垂直堆叠“标签”?
- ssl - 客户端通过 ROOT CA 签名的证书进行身份验证
- mysql - 使用 Jenkins 时与 MySQL 服务器 docker 容器的连接丢失
- telerik - Telerik RadTextBox XSS 过滤器问题
- c++ - png 未在 SDL 中正确呈现
- bash - 在 Ubuntu 中使用 bashrc 定义带循环的别名
- c# - .NET XmlSerializer:序列化时如何确保对象属性值中的空白作为重要空白?
- linux-device-driver - tcan4x5x 驱动程序返回 -22 探测失败错误