Hangman implementation
情况
我开始在客户端机器上只使用javascript和HTML来实现游戏"hangman"。我已经完成了所有的逻辑工作。现在只剩下美学了。我被卡住了,因为我们不能用JS编写字符串。
我所做的
代码我尝试过的代码不起作用:
请看这里
我现在有以下三个数组:
我需要做的是
我需要生成一个输出来显示字母,以防用户猜测到它在单词中(数组
我想要什么
将返回所需输出的函数,如以下示例中所述。
例子
让我们猜中这个词:
埃多克斯1〔10〕
用户进入
函数应返回:
然后用户进入
用户进入
函数应返回:
等等……
希望你能明白!
万一你不明白(因为我的解释不好或其他原因)!)
你可以在这里玩绞刑人游戏:绞刑人
只需观看屏幕底部的输出…这就是我想要这个函数生成的。
请帮我解决这个问题!
阅读问题的开头(因为没有提供其他代码),有一个问题可以使用本机JavaScript函数解决。
1 2 3 | var strarr ="Hello world!".split(''); // this will give you an array of characters to be manipulated strarr[6] ="X"; // so you can do this console.dir(strarr.join('')); // test it! |
作为一个想法(不是我的,它来自注释),我们甚至可以将这个简单的代码包装为一个缺少的tochararray()函数并使用它。
另一件事是,这种方法速度足够快,即使对于较大的文本量也是如此。在测试中,我用了1000个单词的lorem ipsum。在我相当旧的dev机器上,操作以毫秒为单位执行。
有关详细信息,请参阅本讨论。
还可以使用此函数在指定的字符串索引处设置char:
1 2 3 4 | function setCharAt(str,index,chr) { if(index > str.length-1) return str; return str.substr(0,index) + chr + str.substr(index+1); } |
号
你可以使用regex来屏蔽单词中的字母,使用
1 2 3 4 5 6 7 8 9 | var word ="together" , correct =""; function guess(c) { if (word.indexOf(c) > -1) { correct += c; } console.log(word.replace(new RegExp("[^" + correct +"]","g"),"_")); } |