頁:
[1]
如何將亂數演算法分成四個人
請問各位大大,如何將已經亂數的A~Z 分給四個人,懇請求解程式碼如下:
<html>
<head>
<title>Shuffle Demo</title>
<script>
function run() {
var d = document.getElementById("display");
var a = "abcdefghijklmnopqrstuvwxyz".split("", 26);
var i = a.length;
while (i) {
var j = parseInt(Math.random() * i);
var k = a[--i];
a = a;
a = k;
}
d.innerHTML += a;
}
</script>
</head>
<body onload="run()">
<div id="display"></div>
</body>
</html>...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div> [ 本帖最後由 snowflying 於 2015-12-18 03:24 AM 編輯 ]
要不要先用 包起來呀?
被詮釋成斜體了
而且分給四個人是怎麼個分法?
有什麼地方存放個別拿到的部分嗎?
分配規則沒講清楚
假設依撲克牌發牌, 從一號輪流到四號循環
<html>
<head>
<title>Shuffle Demo</title>
<script>
function run() {
var d1 = document.getElementById("display1");
var d2 = document.getElementById("display2");
var d3 = document.getElementById("display3");
var d4 = document.getElementById("display4");
var d = ;
var a = "abcdefghijklmnopqrstuvwxyz";
var step = 0;
while (a.length > 0) {
// Pick a random character
var i = parseInt(Math.random() * a.length);
d.innerHTML += a;
// Remove character that is assigned to player
a = a.substr(0, i) + a.substr(i + 1);
// Next player
step++;
if (step >= d.length)
{
step = 0;
}
}
}
</script>
</head>
<body onload="run()">
<div id="display1">#1: </div>
<div id="display2">#2: </div>
<div id="display3">#3: </div>
<div id="display4">#4: </div>
</body>
</html>...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div> 本帖最後由 Semisphere 於 2017-2-1 10:27 PM 編輯
原po code中a = a;會複寫a原本的內容,後面會有機會沒辦法亂數再取a內元素出來,得先確認一下。
同樓上也覺得需要先定好分配規則,若隨機排序後直接分4組,那可參考如下code。另我使用Lodash.js處理隨機取出與分組。
<!DOCTYPE html>
<html>
<head>
<title>Shuffle Demo</title>
<script src="使用Lodash.js的cdn連結"></script>
<script>
function run() {
var d = document.getElementById("display");
var a = "abcdefghijklmnopqrstuvwxyz".split("", 26);
var r = _.shuffle(a);
var b = _.chunk(r, 7);
var c = _.join(b,'<br>')
d.innerHTML = c;
}
</script>
</head>
<body onload="run()">
<div id="display"></div>
</body>
</html>
可能結果如下:
b,q,n,l,d,t,c
m,v,u,k,o,y,h
w,g,s,p,j,e,z
x,f,i,a,r
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁:
[1]