gpt4 book ai didi

带有 1++ 参数的 JavaScript 递归

转载 作者:行者123 更新时间:2023-11-28 04:44:06 26 4
gpt4 key购买 nike

这是多米诺骨牌游戏部分,我在递归函数中设置了三个参数,并迭代它们来分配玩家筹码。我想知道这是怎么回事,只显示前两位玩家的筹码 T.T

这是代码:

function messUp() {
fichas=[];
for (i=0;i<7;i++) {
for (e=0;e<=i;e++) {
fichas.push('['+i+','+e+']');
}
}
fichas.sort(function(){return Math.random()-0.5});
document.write(fichas+'<br/><br/>');
}
messUp();

function players(name,hand) {
this.name=name;
this.hand=hand;
}

var main=prompt("Ingrese su nombre","");

function reAsign(h,f,l) {
if (h<4) {
toHand=[];
for (f;f<l;f++) {
toHand.push(fichas[f]);
delete fichas[f];
}
switch (h) {
case 0: {
player1=new players(main,toHand);
l=14;
}
break;
case 1: {
player2=new players("Player 2",toHand);
l=21;
}
break;
case 2: {
player3=new players("Player 3",toHand);
l=28;
}
break;
case 3: {
player4=new players("Player 4",toHand);
}
break;
}
reAsign(h+1,f+7,l+7);
}
}
reAsign(0,0,7);

document.write(player1.name+'<br/>');
document.write(player1.hand+'<br/>');
document.write(player2.name+'<br/>');
document.write(player2.hand+'<br/>');
document.write(player3.name+'<br/>');
document.write(player3.hand+'<br/>');
document.write(player4.name+'<br/>');
document.write(player4.hand+'<br/>');

最佳答案

原因是因为这一行

reAsign(h+1,f+7,l+7);

f 已经是 +7 了,因为您迭代了它。当您最后 +7 时,它会从 7 变为 14,因此它会跳过 - 所以 2 实际上是 3 的数字,然后 4 就没有了。

l相同。

应该是:

reAsign(h+1,f,l);

function messUp() {
fichas=[];
for (i=0;i<7;i++) {
for (e=0;e<=i;e++) {
fichas.push('['+i+','+e+']');
}
}
fichas.sort(function(){return Math.random()-0.5});
document.write(fichas+'<br/><br/>');
}
messUp();

function players(name,hand) {
this.name=name;
this.hand=hand;
}

var main=prompt("Ingrese su nombre","");

function reAsign(h,f,l) {
if (h<4) {
toHand=[];
for (f;f<l;f++) {
toHand.push(fichas[f]);
//delete fichas[f];
}
switch (h) {
case 0: {
player1=new players(main,toHand);
l=14;
}
break;
case 1: {
player2=new players("Player 2",toHand);
l=21;
}
break;
case 2: {
player3=new players("Player 3",toHand);
l=28;
}
break;
case 3: {
player4=new players("Player 4",toHand);
}
break;
}
reAsign(h+1,f,l);
}
}
reAsign(0,0,7);

document.write(player1.name+'<br/>');
document.write(player1.hand+'<br/>');
document.write(player2.name+'<br/>');
document.write(player2.hand+'<br/>');
document.write(player3.name+'<br/>');
document.write(player3.hand+'<br/>');
document.write(player4.name+'<br/>');
document.write(player4.hand+'<br/>');

关于带有 1++ 参数的 JavaScript 递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43536291/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com