字轮游戏-用Javascript随机化字母

字轮游戏-用Javascript随机化字母,javascript,random,split,words,letters,Javascript,Random,Split,Words,Letters,感谢Adrian与我分享一些代码。不幸的是,我无法将它整合到我的项目中(新手!),但它确实让我走上了正确的道路。经过一番反思,我加入了一个函数,可以将字母洗牌到相当好的效果。唯一的问题是我的代码在CodePen领域之外无法工作。我认为一些错误已经从我的弗兰肯斯坦编码方法中潜入!不管怎么说,我离这里很近,有人能帮忙吗?还是太混乱了,没人管 //GET RANDOM 9 LETTER WORD var wordlist = ["aardvarks", "aasvogels", "abamperes

感谢Adrian与我分享一些代码。不幸的是,我无法将它整合到我的项目中(新手!),但它确实让我走上了正确的道路。经过一番反思,我加入了一个函数,可以将字母洗牌到相当好的效果。唯一的问题是我的代码在CodePen领域之外无法工作。我认为一些错误已经从我的弗兰肯斯坦编码方法中潜入!不管怎么说,我离这里很近,有人能帮忙吗?还是太混乱了,没人管

//GET RANDOM 9 LETTER WORD

var wordlist = ["aardvarks", "aasvogels", "abamperes", "abandoned"
];

var randomNumber = parseInt(Math.random() * wordlist.length);
var name = wordlist[randomNumber];          

if(document.getElementById("resultRandomWord")){
document.getElementById("placeholderRandomWord").removeChild(document.getElementById("resultRandomWord"));
}
var element = document.createElement("div");
element.setAttribute("id", "resultRandomWord");
element.appendChild(document.createTextNode(name));
document.getElementById("placeholderRandomWord").appendChild(element);

//START This function shuffles list items
(function($){
$.fn.shuffle = function() {
    return this.each(function(){
        var items = $(this).children().clone(true);
        return (items.length) ? $(this).html($.shuffle(items)) : this;
    });
}

$.shuffle = function(arr) {
    for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);
    return arr;
}
})(jQuery);
//END This function shuffles list items

//SPLIT 9 LETTER WORD 
var str = $('#resultRandomWord').html();
var spl = str.split('');
var len = spl.length;
var i = 0;
setInterval(function(){

if(i < len)
{
    if(spl[i] != " "){
    $('.letters').append('<li>'+spl[i]+'</li>')//DISPLAY WORD AS SEPARATE LETTER AND AS LIST ITEMS
    $('.letters').shuffle();//Call shuffle function
    }
}
i++;
},200)


//REVEAL ANSWER (JQUERY)
$(document).ready(function(){
$(".reveal").click(function(){
$("#placeholderRandomWord").slideToggle();
   });
});
//随机获取9个字母的单词
var wordlist=[“aardvarks”、“aasvogels”、“abamperes”、“弃置”
];
var randomNumber=parseInt(Math.random()*wordlist.length);
var name=wordlist[randomNumber];
if(document.getElementById(“resultRandomWord”)){
document.getElementById(“占位符随机词”).removeChild(document.getElementById(“结果域词”);
}
var元素=document.createElement(“div”);
setAttribute(“id”、“resultRandomWord”);
元素.appendChild(document.createTextNode(name));
document.getElementById(“占位符随机词”).appendChild(元素);
//启动此函数可洗牌列表项
(函数($){
$.fn.shuffle=函数(){
返回此值。每个(函数(){
var items=$(this.children().clone(true);
return(items.length)?$(this.html($.shuffle(items)):this;
});
}
$.shuffle=函数(arr){
对于(var j,x,i=arr.length;i;j=parseInt(Math.random()*i),x=arr[--i],arr[i]=arr[j],arr[j]=x);
返回arr;
}
})(jQuery);
//结束此函数将洗牌列表项
//拆分9个字母的单词
var str=$('#resultRandomWord').html();
var spl=str.split(“”);
var len=spl.length;
var i=0;
setInterval(函数(){
如果(i'+spl[i]+'')//将单词显示为单独的字母和列表项
$('.letters').shuffle();//调用shuffle函数
}
}
i++;
},200)
//显示答案(JQUERY)
$(文档).ready(函数(){
$(“.reveal”)。单击(函数(){
$(“#单词”).slideToggle();
});
});
和HTML:

<div id="outer_circle">
<ul class="lines">
<li></li><!--nth(1)-->
<li></li><!--nth(2)-->
<li></li><!--nth(3)-->
<li></li><!--nth(4)-->
</ul>
<ul class="letters">
<!--This is where the letters go, they are wrapped in <li> tags-->
</ul>
<div id="inner_circle">
</div><!--letters-->
</div><!--outer_circle-->


<div id="answer-wrapper">
<button type="button" class="reveal" onclick>Reveal/Hide Answer</button>
<div id="placeholderRandomWord">

</div><!--answer-->
</div><!--answer-wrapper-->

显示/隐藏答案
通常我会要求查看您自己的尝试,但您在其他方面已经取得了很大的进展,看起来这只是一个小小的绊脚石。因此,它没有经过破坏性测试,但以下函数应该满足您的需要:

function randomise(word) {
    var result = "";
    while (word != "") {
        var pos =  Math.floor(Math.random () * word.length);
        result += word[pos];
        word = word.substring(0, pos) + word.substring(pos+1);
    }
    return result;
}

它只需选择一个介于0和(单词长度-1)之间的随机数,将该字母从原始单词中删除,然后重复,直到原始单词为空。

感谢您对我的项目感兴趣。我真的有点不知所措,但我经常发现这是学习一门新语言的最好方法。我将尝试将此整合到我的脚本中。再次感谢Adrian的建议。不幸的是,我无法将它融入到游戏中,我还有很多东西要学!经过重新思考后,我设法按要求将字母洗牌,但我的代码是如此的科学怪人,以至于在代码笔之外无法工作。如果您对我的进度感兴趣,我已经更新了我的问题。您可以更改
var name=wordlist[randomNumber]
into
var name=randomise(单词列表[randomNumber])。非常感谢阿德里安。这是一个变量名问题。我已经清理了我的Javascript,现在它可以完美地工作了。这不是最漂亮的剧本,但它看起来很可靠。