我正在使用jQuery进行一个刽子手游戏。这是我第一次从头编写自己的代码/程序而没有引用其他人的代码(GitHub)。
我创建了一个“开始游戏”按钮,用于启动Hangman游戏。然后它将从我创建的数组中获取一个随机单词'wordBank'并将其存储到变量'word'中。我使用word.length并将其分配给变量'wordLength'。我不知道如何将wordLength(例如:单词中的6个字符)转换为6个空白下划线:_ _ _ _ _ _
我不确定这是否应该是单独功能的一部分。我对HTML / CSS很不错,但是现在我正在努力学习编程,并且在过去的一天里一直坚持(我昨天开始)。我感谢任何给我建议的人。我的代码如下。感谢。
var wordBank = ['apple', 'orange', 'peanut'];
// grab random word from array when user clicks start
function startGame() {
("#start").click(function(){
var word = wordBank[Math.floor(Math.random()*wordBank.length)];
var wordLength = word.length;
// convert wordLength into an underscore for each character
});
}
startGame();
答案 0 :(得分:0)
首先:我会将它保持在同一个功能中。
第二:我只是做一个for循环并打印一个带有
的类的div.underscore{
border-bottom: 2px solid black;
width:30px;
}
像这样:
var underscores ="";
for(var i=0;i<wordLength;i++){
underscores+= "<div class='underscore'></div>";
}
希望这有帮助!
答案 1 :(得分:0)
我认为您正在寻找一个基本的for循环,例如:
for (i=0;i<(word.length);i++) {
document.write("_ "); //or similar function
}
以上将输出一些等于你的字长的下划线。如果要将它们存储为变量或其他此类函数,请调整此项。我会考虑将字符串中的每个字母分配给一个默认值等于“_”的数组,然后在正确猜测时将值更改为实际字母,或者其他类似方法,但对游戏逻辑的抽象刺激超出了提出问题的范围。
答案 2 :(得分:0)
为什么不在数组中为每个字母存储下划线?这样你就可以通过它的索引访问每个下划线,并决定如何在以后显示它们。
var result = [];
for(var i = 0; i < wordLength; i++){
result.push('_');
}
result.toString(); //returns _,_,_,_,_,_
result[0] //returns the first underscore
result[5] //returns the last underscore
result[2] = 'A'; // Replaces the third underscore with the letter 'A' (zero based)
result.toString(); //returns "_,_,A,_,_,_"
稍后,当您想要显示数组的内容时,您可以再次迭代它。像这样:
for(var i = 0; i < wordLength; i++) {
document.write(result[i] + ' ');
}
答案 3 :(得分:0)
你有几种方法。 (对于每个字母,你得到下划线和空格)
一种是使用replace with regexp:
// Regex way.
var word = "abcd123456";
var userscores = word.replace(/.{1}/g, "_ ");
另一种是从字长构建下划线:
// Build way.
var word = "abcd123456";
var wordLength = word.length;
var underscores = "";
for(i=0; i<wordLength; i++) {
underscores = underscores + "_ "
}
// now variable underscores has the underscores.
快乐游戏:)。