当前位置: 代码迷 >> Android >> 想做一个家务骰子的android应用,数组的随机组合有点小疑点()
  详细解决方案

想做一个家务骰子的android应用,数组的随机组合有点小疑点()

热度:49   发布时间:2016-05-01 21:06:28.0
想做一个家务骰子的android应用,数组的随机组合有点小问题(在线等)
程序代码如下:想实现checkebox_s数组和s数组的内容的随机组合并放到f数组当中,可是如果我的s数组人数小于3人时候则会出现bug,程序被中断,而且奇怪的是我的checkbox的信息被保存了下来,即使我没有选中该复选框,也能够得到该复选框的内容,求高手解救
String[] s=new String[100];
String[] checkebox_s=new String[100];
String[] g=new String[100];
String[] f=new String[100];
for(int i=0;i<=info.length();i++)
{
s=info.split(",");

}
for(int j=0;j<=u5.length();j++)
{
checkebox_s=u5.split(",");

}
String r=null;
Random ran=new Random();
int index;//=(int)ran.nextInt(s.length);
try{for(int d=0;d< f.length;d++)
{
index=(int)ran.nextInt(s.length);
r=s[index];
this.show4.append(r) ;
for(int k=0;k<checkebox_s.length;k++)
{
if(g[k]==r )
{
k--;
//d--;
break;
}else if(k==d )
{
g[k]=r;
if(checkebox_s[k]==null)
{
checkebox_s[k]="睡觉休息";
}
f[k]= "判处 "+g[k]+" 负责 "+checkebox_s[k];
this.show3.append(f[k]) ;
//this.show4.append(f[k]) ;
break;
}
}
}
}catch( Exception e)
{
e.printStackTrace();

}


------解决方案--------------------
代码比较乱。
其实你可以换个思路,算法和代码会更清晰

对于s和checkebox_s分别用随机数进行打乱
然后让s[0]负责checkebox_s[0]
s[1]负责checkebox_s[1]
s[2]负责checkebox_s[2]
....
s[n]负责checkebox_s[n]

如果s数组较长,则超出checkebox_s个数的部分,什么事都不干,也就是睡觉休息就是了
  相关解决方案