- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个数组,一个是随机生成的字符串,另一个是通过将用户输入推送到其中生成的。
两者都是空白的。
我需要将用户生成的数组与原始数组的长度和顺序进行比较,然后使用用户生成的数组来匹配原始数组。我研究了几种比较它们的可能性,但到目前为止对我来说还没有成功。
变量(在函数上方声明)
var rightLtrsArr = [];
var randWord;
var randWordArr =[];
// step 1: set variables
// need variables for wins, losses, maxGuessCount, guessCount, wordsArr, wrongLtrsArr, rightLtrsArr,
var wins = 0;
var losses = 0;
var maxGuessCount = 10;
var guessCount = 0;
var words = ["evaluate", "leader", "glory", "thanks", "pit", "sign", "neighborhood", "twist", "beneficiary", "giant", "bargain", "analyst", "embark", "competition", "bench", "impress", "tick",
"elegant", "wing", "spring", "rider", "romantic", "confuse", "arrange", "critic", "quiet", "raise", "paradox", "inject",
"gallery", "scheme", "commerce", "museum", "computer", "fastidious", "impulse", "stand", "story", "pig", "oyster", "grim",
"speaker", "listen", "dense", "mass", "thin", "fat", "keys", "phone", "wallet", "money", "campaign",
"mutter", "butterfly", "salmon", "occupation", "contempt", "landowner", "detector", "kidney", "faux", "require", "glass", "jug",
"plastic", "overwhelm", "blackmail", "headquarters", "assignment", "competence"
];
var rightLtrsArr = [];
var randWord;
var randWordArr =[];
// START GAME FUNCTION
// _______________________________________________
function startGame() {
// setting our win count/loss count box
$('#winCountBox').html(wins);
$('#lossCountBox').html(losses);
// clearing the wrong guesses list box
$('#wrongGuessList').empty();
// disabling user input until a new word is called
$('#userInput').attr('disabled', true);
// clearing out guessCount box
$('#guessesLeftBox').empty();
// guesses alloted box
$('#maxGuessCountBox').html(maxGuessCount);
// clear wordbox
$('#wordBox').empty();
}
// RESET GAME FUNCTION
// _______________________________________________
function resetGame() {
// 2. resets win/loss record
wins = 0;
losses = 0;
// 1. calls start game function
startGame();
}
// GET WORD FUNCTION
// _______________________________________________
function getWord() {
// clears the randWordArr of any previous words
randWordArr.length = 0;
// 2. generates a new word & pushes it into the randWordArray
randWord = words[Math.floor(Math.random() * words.length)];
var randWordLngth = randWord.length;
randWordArr.push(randWord);
console.log(randWordArr);
console.log('The random word is ' + randWord + " and the length is " + randWordLngth);
// 3. generates the blank spaces for the word
var tempSpace = '';
for (var i = 0; i < randWordLngth; i++) {
tempSpace = tempSpace + ' ___ ';
}
$('#wordBox').html(tempSpace);
// 4. resets maxGuessCount & guessCount
guessCount = 0;
maxGuessCount = 10;
$('#guessesLeftBox').html(maxGuessCount);
// 5. empties the list of wrongly guessed characters in html box
$('#wrongGuessList').empty();
// 6. allowing user to enter data into input field
$('#userInput').attr('disabled', false);
}
// START GAME CLICK EVENT
// _______________________________________________
$('#startGameBTN').on('click', function(){
startGame();
});
// NEW WORD CLICK EVENT
// _______________________________________________
$('#getWordBTN').on('click', function(){
getWord();
});
// RESET GAME CLICK EVENT
// _______________________________________________
$('#resetGameBTN').on('click', function(){
resetGame();
});
// GAMEPLAY FUNCTIONALITY
// _______________________________________________
// 1. button click event
$('#inputBTN').on('click', function(){
// startGame();
// 2. get user input
var userInput = $('input').val().toLowerCase();
console.log(userInput);
$('input').val('');
// 3. verify if user entered a single character/if not, throw err msg
function isSingleInput (userInput){
if(userInput.length === 1) {
// 4. verify the char is a string and not a number/if not, throw err msg
function isNumber(x) {
if (isNaN(x)) {
// 5. check if input character is in the randWordArr
var isCharInWord = randWord.indexOf(userInput);
// 6. if char is in the hidden word: print all instances of that letter to the screen surrounded by blank spaces
if (isCharInWord >= 0) {
rightLtrsArr.push(userInput);
// for (var i = 0; i < randWordArr; i++) {
// console.log(randWordArr[i]);
// }
// var myNewArr = randWordArr.split();
// console.log(myNewArr);
// console.log(rightLtrsArr + " : " + rightLtrsArr.length);
// console.log(randWordArr.length);
// if (rightLtrsArr.length === randWordArr.length) {
// console.log('the arrays are equal');
// } else {
// console.log('they are not equal');
// }
// function arraysAreIdentical(rightLtrsArr, randWordArr){
// if(rightLtrsArr.length != randWordArr) {
// console.log("not equal");
// }
// // if (rightLtrsArr.length !== randWordArr.length) return false;
// // for (var i = 0, len = rightLtrsArr.length; i < len; i++){
// // if (rightLtrsArr[i] !== randWordArr[i]){
// // console.log("false");
// // }
// // }
// // console.log("true");
// }
// arraysAreIdentical(randWordArr, randWordArr);
// for (var i = 0; i < rightLtrsArr.length; i++) {
// $('#wordBox').html(rightLtrsArr[i]);
// }
} else {
console.log("nope, can't find it");
// 7. if char is not in the hidden word: create an array with chars that aren't in the word, print to screen as list,
// update guess count variable, update guesscount html output to screen
$('#wrongGuessList').append("<li class='list-group-item'>" + userInput + "</li>");
guessCount ++;
$('#guessesLeftBox').html(guessCount + " / " + maxGuessCount);
// 8. if user is out of guesses, update lost record, alert user, disable input
if (guessCount === maxGuessCount) {
alert("Marty McFly gets shafted :(");
losses ++;
$('#lossCountBox').html(losses);
$('input').attr('disabled', true);
}
}
} else {
alert("What is we're looking for a letter in the English alphabet for 200, Alex.");
}
}
isNumber(userInput)
} else if (userInput.length > 1) {
// if not a single char, prompt user for single char
alert("Overzealous much? Take it one character at a time. Please and thank you.");
// need to break out of the function here
} else {
console.log("the length is less than one");
}
}
isSingleInput(userInput);
});
最佳答案
看起来它现在可以工作了!请参阅下面的代码段。
var randWord, guessWord, userInput = '',
wins = 0,
losses = 0,
maxGuessCount = 10,
guessCount = 0,
words = ["evaluate", "leader", "glory", "thanks", "pit", "sign", "neighborhood", "twist", "beneficiary", "giant", "bargain", "analyst", "embark", "competition", "bench", "impress", "tick", "elegant", "wing", "spring", "rider", "romantic", "confuse", "arrange", "critic", "quiet", "raise", "paradox", "inject", "gallery", "scheme", "commerce", "museum", "computer", "fastidious", "impulse", "stand", "story", "pig", "oyster", "grim", "speaker", "listen", "dense", "mass", "thin", "fat", "keys", "phone", "wallet", "money", "campaign", "mutter", "butterfly", "salmon", "occupation", "contempt", "landowner", "detector", "kidney", "faux", "require", "glass", "jug", "plastic", "overwhelm", "blackmail", "headquarters", "assignment", "competence"];
startGame();
// START GAME FUNCTION
// _______________________________________________
function startGame() {
// setting our win count/loss count box
$('#winCountBox').html(wins);
$('#lossCountBox').html(losses);
$('#maxGuessCountBox').html(maxGuessCount);
// disabling user input until a new word is called
$('#userInput').attr('disabled', true);
// clear wordbox
$('#wordBox').empty();
getWord();
}
function showLetters() {
var tempSpace = [];
for (var i = 0; i < guessWord.length; i++) {
tempSpace.push(userInput === randWord[i] ? userInput : guessWord[i]);
}
guessWord = tempSpace.join('');
$('#wordBox').html(tempSpace.join(' '));
if (guessWord === randWord) {
alert('You win!');
++wins;
startGame();
}
return !!(guessWord.indexOf(userInput) + 1);
}
// GET WORD FUNCTION
// _______________________________________________
function getWord() {
userInput = '';
randWord = words[Math.floor(Math.random() * words.length)];
guessWord = '_'.repeat(randWord.length);
console.log('The random word is ' + randWord + " and the length is " + randWord.length);
showLetters();
// 4. resets maxGuessCount & guessCount
guessCount = 0;
$('#guessesLeftBox').html(maxGuessCount);
// 5. empties the list of wrongly guessed characters in html box
$('#wrongGuessList').empty();
// 6. allowing user to enter data into input field
$('#userInput').attr('disabled', false);
}
// START GAME CLICK EVENT
// _______________________________________________
$('#startGameBTN').on('click', function() {
startGame();
});
// RESEST GAME CLICK EVENT
// _______________________________________________
$('#resetGameBTN').on('click', function() {
wins = 0;
losses = 0;
startGame();
});
// GAMEPLAY FUNCTIONALITY
// _______________________________________________
// 1. button click event
$('#inputBTN').on('click', function() {
// 2. get user input
userInput = $('input').focus().val().trim().toLowerCase();
if (!userInput) return alert("the length is less than one");
if (userInput.length > 1) return alert("One character at a time, please and thank you.");
if (/[^a-z]/.test(userInput)) return alert("Enter an English alphabet letter please.");
$('input').val('');
// 5. check if input character is in the randWordArr
if (!showLetters()) {
console.log("nope, can't find it");
$('#wrongGuessList').append(" " + userInput);
$('#guessesLeftBox').html(maxGuessCount - ++guessCount);
if (guessCount === maxGuessCount) {
alert("Marty McFly gets shafted :(");
++losses;
startGame();
}
}
});
.counter {
display: inline-block;margin: 20px 40px
}
.counter span {
display: inline-block;
min-height: 20px;
width: 30px;
margin: 5px;
padding: 3px 5px;
border: solid 1px;
vertical-align: middle
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="counter">
Count:<br> Wins: <span id="winCountBox"></span> Losses: <span id="lossCountBox"></span>
</div>
<div class="counter">
Guesses: <b id="wrongGuessList"></b><br> Left: <span id="guessesLeftBox"></span> from <span id="maxGuessCountBox"></span>
</div>
<div>
<button id="startGameBTN">Start</button>
<button id="resetGameBTN">Reset</button>
<!-- <button id="getWordBTN">Word</button> -->
</div>
<h1 id="wordBox"></h1>
<div class="counter">
<input id="userInput" maxlength="1" pattern="[a-z]"> <button id="inputBTN">Try Letter</button>
</div>
关于javascript - 尝试比较两个数组并对其中之一重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48554597/
我想使用 NetworkX Graph 对象作为 Python dict 中的键。但是,我不希望默认的比较行为(即通过对象的地址)。相反,我希望同构图是 dict 中相同元素的键。 此行为是否已在某处
这个问题已经有答案了: What is the most effective way for float and double comparison? (33 个回答) 已关闭 7 年前。 在您认为我
我正在学习 C 编程,为了练习,我找到了一个需要解决的任务。这有点像一个游戏,有人选择一个单词,其他人猜测字母。我必须检查有多少给定的单词可能是所选单词的正确答案。 输入: 3 3//数字 n 和 m
我两天前开始学习C,在做作业时遇到了问题。我们的目的是从字符数组中获取字符列表,并通过计算连续字符并将其替换为数字来缩短它。对“a4b5c5”说“aaaabbbbbccccc”。这是我到目前为止的代码
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
为什么我在 if 中的比较不起作用?答案应该是 8 但它返回 0。 function findMissing(missingArray){ var getArray = missing
我想知道为什么以下 JavaScript 比较会给出不同的结果。 (1==true==1) true (2==true==2) false (0==false==0) false (0==false)
我想知道是否有人可以帮助我完成这个程序。编写一个接受两个字符串的函数。该函数应该将这两个字符串与字典顺序上排在第一位的字符串组合起来。两个字符串之间应该有一个空格。在一行上打印结果字符串。在一行上打印
有谁知道一个免费的开源库(实用程序类),它允许您比较一个 Java bean 的两个实例并返回一个属性列表/数组,这两个实例的值不同?请发布一个小样本。 干杯 托马斯 最佳答案 BeanCompara
我是java新手。任何人都可以给出以下类声明的含义 public class ListNode, V> { K key; V value; ListNode next;
我需要用 C 语言计算和比较 3 种不同大小(100 * 100、1000 * 1000 和 10000 * 10000)的 2 个矩阵相乘的执行时间。我编写了以下简单代码来为 1000 * 1000
当我在 ACCESS 2007 中运行以下 SQL 时 Select Location, COUNT(ApartmentBuildings) AS TotalIBuildingsManaged Fro
根据我对互斥锁的了解——它们通常提供对共享资源的锁定功能。因此,如果一个新线程想要访问这个锁定的共享资源——它要么退出,要么必须不断轮询锁(并在等待锁时浪费处理器周期)。 但是,监视器具有条件变量,它
通常在编程中,不应该比较浮点数据类型是否相等,因为存储的值通常是近似值。 由于两个非整数 Oracle NUMBER 值的存储方式不同(以 10 为基数),是否可以可靠地比较它们是否相等? 最佳答案
使用 PowerShell 时,我们偶尔会比较不同类型的对象。一个常见的场景是 $int -eq $bool (即其中 0 -eq $false 、 0 -ne $true 和任何非零值仅等于真,但不
#include #define MAX 1000 void any(char s1[], char s2[], char s3[]); int main() { char string1[
我想比较两个日期。 从这两个日期中,我只使用 ToShortDateString() 获取日期组件, 如下所示。现在的问题是当我比较两个日期时。它的 throw 错误—— "Operator >= c
用户输入一个数字( float 或整数),并且它必须大于下限。 这是从 UITextField 获取数字的代码: NSNumberFormatter * f = [[NSNumberFormatter
我已经摆弄这段代码大约一个小时了,它让我难以置信。我认为解决方案相当简单,但我似乎无法弄清楚。无论如何,这里去。我制作了一个 javascript 函数来检查用户输入的字符,以便它只能接受 7 个字符
我不太明白为什么当我们在不覆盖 equals 的情况下比较具有相同类属性的两个实例时方法,它将给出 false .但它会给出 true当我们比较一个案例类的两个实例时。例如 class A(val
我是一名优秀的程序员,十分优秀!