使用JavaScript
或jQuery
,我正在尝试创建一个依赖于依赖string
的{{1}}生成器。
例如,如果我第一次生成“医生”,就不会出现其他“医生”。它会转到另一个probability
,就像“皮条客”一样。一旦使用了所有url
名称,它将再次生成一个完全随机的名称,直到接下来的6名没有重复,依此类推。
对于上下文,这是我迄今为止的string
独立概率(只是随机字符串):
code
$("button").click(function() {
var urls = [
"mafia",
"doctor",
"cupid",
"mafioso",
"pimp",
"detective"
];
var url = urls[Math.floor(Math.random() * urls.length)];
$("#log").append(url + "<br>"); // append url to log
var last = $("#log").split("<br>").pop(); // get last part
var text = urls.replace(last, ""); // replace in the array, hopefully
});
任何想法,甚至是实现依赖<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>Generate</button><br>
<div id="log"></div>
的一步,都是我很乐意接受的答案。提前谢谢!
答案 0 :(得分:1)
尝试在拾取时从数组中删除随机选择的项目,如果数组的长度为0,则将其重置为原始数组:
var origURLs = [
"mafia",
"doctor",
"cupid",
"mafioso",
"pimp",
"detective"
];
var currURLs;
$("button").click(function() {
if (!currURLs || currURLs.length === 0) currURLs = [...origURLs];
const randIndex = Math.floor(Math.random() * currURLs.length);
const url = currURLs.splice(randIndex, 1)[0];
$("#log").append(url + "<br>");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Generate</button><br>
<div id="log"></div>