- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试做一个 child 数学测验,到目前为止我已经能够做到以下几点:让两个介于 0 和 10 之间的随机数出现;使 + 或 - 运算符随机;如果答案错误或正确,请给予反馈;记分;我面临的一个问题是,在某些情况下,运算符将是 - 并且第二个随机数将大于第一个随机数,从而导致 - 数字答案。从下面的代码中可以看出,我尝试在 if 语句中使用 if 语句,并在 if 语句中使用 while 语句。两者都不会产生预期的结果。我很感激任何关于如何解决我的问题的建议。
代码:
document.getElementById("button1").addEventListener("click", question);
var plusMinus = document.getElementById("plusMinus");
var counter = 0;
function question(){
var startButton = document.getElementById("button1");
var number1 = document.getElementById("number1");
var number2 = document.getElementById("number2");
var decider = Math.random();
counter ++;
if(decider<0.5){
plusMinus.textContent = "+"
}
else{plusMinus.textContent = "-"
};
button1.textContent = "Round" + counter;
number1.textContent = Math.floor(Math.random()*11);
number2.textContent = Math.floor(Math.random()*11)
/*Solution No.1 that failed:
if(plusMinus.textContent == "-"){
if(number2.textContent < number1.textContent){
Math.floor(Math.random()*11);
}
}
else{Math.floor(Math.random()*11);
}*/
/*Solution No.2 that also failed:
if(plusMinus.textContent == "-"){
while(number2.textContent < number1.textContent){
Math.floor(Math.random()*11);
}
}
else{Math.floor(Math.random()*11);
}*/
};
document.getElementById("button2").addEventListener("click", answer);
var totalScore = 0;
function answer(){
var num1 = parseInt(document.getElementById("number1").textContent, 10);
var num2 = parseInt(document.getElementById("number2").textContent, 10);
var answer = parseInt(document.getElementById("userAnswer").value, 10);
var feedBack = document.getElementById("feedBack");
var scoreReport = document.getElementById("score");
if (plusMinus.textContent == "+"){
if(answer == num1 + num2) {
feedBack.textContent = "Well Done!";
totalScore = totalScore + 10;
}
else {
feedBack.textContent = "Try again!";
}
}
else {
if(answer == num1 - num2){
feedBack.textContent = "Well Done!";
totalScore = totalScore +10;
}
else {feedBack.textContent = "Try again!"};
}
scoreReport.textContent = totalScore;
};
这是一个 jsfiddle:http://jsfiddle.net/way81/r9vdLkzp/1/
最佳答案
您可以检查它是否为负数。检查 number2
是否大于 number1
然后交换它们。
像这样:
if(plusMinus.textContent == '-' && number2.textContent > number1.textContent) {
var a = number2.textContent;
number2.textContent = number1.textContent;
number1.textContent = a;
}
当您调用 answer()
时,您将再次获得这些值。因此,您交换订单这一事实不会对您的其余逻辑产生任何影响,您也不会得到任何负数。
片段:
document.getElementById("button1").addEventListener("click", question);
var plusMinus = document.getElementById("plusMinus");
function question(){
var startButton = document.getElementById("button1");
var number1 = document.getElementById("number1");
var number2 = document.getElementById("number2");
var decider = Math.random();
button1.textContent = "Again";
number1.textContent = Math.floor(Math.random()*11);
number2.textContent = Math.floor(Math.random()*11);
if(decider<0.5){
plusMinus.textContent = "+"
}
else{plusMinus.textContent = "-"};
if(plusMinus.textContent == '-' && number2.textContent > number1.textContent) {
console.log('swapped')
var a = number2.textContent;
number2.textContent = number1.textContent;
number1.textContent = a;
}
};
document.getElementById("button2").addEventListener("click", answer);
function answer(){
var num1 = parseInt(document.getElementById("number1").textContent, 10);
var num2 = parseInt(document.getElementById("number2").textContent, 10);
var answer = parseInt(document.getElementById("userAnswer").value, 10);
var feedBack = document.getElementById("feedBack");
var scoreReport = document.getElementById("score");
var totalScore = 0;
if (plusMinus.textContent == "+"){
if(answer == num1 + num2) {
feedBack.textContent = "Well Done!";
} else {
feedBack.textContent = "Try again!";
}
}
else {
if(answer == num1 - num2){
feedBack.textContent = "Well Done!";
} else {feedBack.textContent = "Try again!"};
}
for(count=0; count <=10; count++){
if(plusMinus == "+" && answer == num1+num2){
totalScore +1;
}
else if(plusMinus == "-" && answer == num1-num2){
totalScore -1;
}
}
scoreReport.textContent = totalScore;
};
*{
border: 2pt solid black;
}
p {
height: 20px;
width: 50px;
font-family: impact;
size: 16pt;
text-align: center;
}
<body>
<div>
<button id = "button1">Start!</button>
<p id = "number1"></p>
<p id = "plusMinus">+</p>
<p id = "number2"></p>
<input id = "userAnswer" type=text>
<button id = "button2">Answer</button>
<p id = "feedBack"></p>
<p id = "score">Score: 0</p>
</div>
<script src="randomMathsTest.js"></script>
</body>
关于javascript - Vanilla JavaScript : How to make the second number of two random numbers always higher than the first,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34269536/
我收到这些错误... 严重:必须安装 JRE 1.3 或更高版本! 严重:必须安装JDK 1.3或更高版本! ...在 Windows 7 (x64) 上安装 JAI(Java 高级成像)1.1.3
我们在类里面学习高阶函数,我们的教授提到它们对网络编程很有用。我不确定在什么情况下会是这样,并且想知道是否有人在一些常见的 Web 编程任务中有过高阶函数的经验,以及它们在什么情况下会有用。 我看了我
我一直在思考我正在处理的库中的一个设计问题,我意识到使用存在类型可能允许我以一种简化库的许多部分的方式更改我的设计。但是,我似乎无法让它正常工作。 在我看来,myBuilder 符合 MultiSig
以下 Raku 脚本: #!/usr/bin/env raku use v6.d; grammar MyGrammar { rule TOP { '=' } token keywo
根据wiki AND 的优先级高于 OR。 我想知道,是否有一个子句表述为a || b && c 首先应该如何计算? (a||b)还是(b && c)? 最佳答案 由于优先级,它的计算结果为 (a |
有两个类。 B 类派生自 A。 class A { } class B : A { public B() { } public int Number { get
我知道add、get等基本操作的时间复杂度是O(logn)。但是我没有找到lower()和higher()的细节。那么,Java中TreeSet的lower()和higher()的时间复杂度分别是多少
在 this answer我当场编造了一些看起来有点像“高阶Traversable”的东西:比如Traversable但是对于从 Hask 到 Hask 的 endofunctors 类别的仿函数。
我想创建一个包装变异的更高级别的函数。我想为我的函数提供一个表达式参数,并能够在 mutate 中使用该表达式: datas 50) Error in mutate_impl(.data, dots
CLLocationManager 有两种请求权限的方法: requestWhenInUseAuthorization requestAlwaysAuthorization 但是,如果当前授权状态不是
到目前为止,我已经为他们设计了大约5种实验语言和解释器,用于教育,业余爱好和娱乐。 我注意到的一件事:类汇编语言仅包含子例程和条件跳转,因为结构要慢得多,高级语言具有if,while等。我同时开发了它
所以我将 SFML 用于计算机科学项目 - 制作国际象棋游戏。我有一个 Square 类,它是棋盘的一个正方形 - 目前,它包含四个顶点(成员变量 sf 中的四个 sf::Vertex 对象: :Ve
任何人都可以描述 TreeSet 集合的 higher() 方法在按降序排序时的这种行为: 代码: NavigableSet set = new TreeSet<>(); set.add(10); s
来自 Marijn Haverbeke 的Eloquent Javascript一书,有 this example同时引入高阶函数的概念: function greaterThan(n) { re
我有一个 div,它只包含一个高度为 400 像素的图像。 div 没有填充,但它的高度为 406px,导致其 img 下方有一个丑陋的 6px 灰色水平条纹。 灰色 background 的原因是可
我总是使用 System.BitConverter.ToDouble() 将字节转换为 double ,如下所示: double value = BitConverter.ToDouble(flt,
我正在尝试设置一些其他组不应该看到的组维护文件夹。目前,我通过取消单击@@sharing 选项卡中的“从更高级别继承权限”复选框来实现这一点,但我想自动执行此操作。 我在文档或谷歌搜索中找不到任何关于
Data.Array不为 Array 提供折叠类型。 在 Real World Haskell(第 12 章)中,据说原因是 Array s 可以根据程序员的需要以不同的方式折叠: First of
在以下代码中(来自Functional Programming in Scala): trait Functor[F[_]] { def map[A,B](fa: F[A])(f: A => B)
是否可以完全否定子文件夹中的 web.config? 显然,我在根目录中有一个 web.config。 如果我有一个名为“MyApp”的子文件夹,我可以在其中编写一堆代码并让它在不引用根目录下的 we
我是一名优秀的程序员,十分优秀!