Arrays 绘图框与相邻框颜色不同的问题
我正在制作一个程序,绘制一个方框网格,方框的颜色必须与方框相邻的颜色不同 我的代码将当前框的颜色与左侧和顶部的颜色进行比较。如果其中任何一个匹配,它会选择另一个随机数(作为颜色)。对于第一行/列上的平铺,我将网格的数组索引设置为负数-1,以便它不匹配 我所拥有的:Arrays 绘图框与相邻框颜色不同的问题,arrays,actionscript-3,multidimensional-array,Arrays,Actionscript 3,Multidimensional Array,我正在制作一个程序,绘制一个方框网格,方框的颜色必须与方框相邻的颜色不同 我的代码将当前框的颜色与左侧和顶部的颜色进行比较。如果其中任何一个匹配,它会选择另一个随机数(作为颜色)。对于第一行/列上的平铺,我将网格的数组索引设置为负数-1,以便它不匹配 我所拥有的: private function fillArray():void { grid = new Array(); grid[-1] = new Array(-1,-1,-1,-1,-1); //p
private function fillArray():void {
grid = new Array();
grid[-1] = new Array(-1,-1,-1,-1,-1); //paddles the grid[-1][0 to 4] with -1
for (var i = 0; i < HEIGHT; i++) {
grid[i] = new Array();
grid[i][-1] = -1; // paddles the -1 row with -1
for (var j = 0; j < WIDTH; j++) {
while (grid[i-1][j] == grid[i][j] || grid[i][-j] == grid[i][j]) { //while the current box is the same as those to the left or top
grid[i][j] = Math.floor(Math.random() * COLORS) + 1; //random number time!
}
}
}
}
私有函数fillArray():void{
网格=新数组();
网格[-1]=新数组(-1,-1,-1,-1,-1);//用-1划动网格[-1][0到4]
对于(变量i=0;i
这有一个超时错误,网格全部为-1。我不知道我做错了什么。谢谢你的帮助 这一行应该是:
while (grid[i-1][j] == grid[i][j] || grid[i][j-1] == grid[i][j])
编辑:
我真的不明白为什么要从负索引开始。它只是无缘无故地让人困惑。我重写了你的脚本,只是改变了一些你应该能够调整自己的小事情(随机颜色只是红色的随机变化,而不是实际上的随机)
var randomNum:Number=0;
变量高度:数值=10;
变量宽度:数字=10;
var网格:数组;
函数fillArray():void{
网格=新数组();
对于(变量i=0;i0)?网格[i-1][j]:0;
var-prevCol:Number=(j>0)?grid[i][j-1]:0;
如果(prevRow!=0&&prevCol!=0){
randomNum=Math.floor(Math.random()*256)+1;
while(randomNum==prevRow | | randomNum==prevCol){
randomNum=Math.floor(Math.random()*256)+1;
}
this.graphics.beginll(randomNum*0xFF0000,1);
this.graphics.drawRect(i*10,j*10,10,10);
}
}
}
}
fillArray();
var randomNum:Number = 0;
var HEIGHT:Number = 10;
var WIDTH:Number = 10;
var grid:Array;
function fillArray():void {
grid = new Array();
for (var i = 0; i < HEIGHT; i++) {
grid.push(new Array());
for (var j = 0; j < WIDTH; j++) {
var prevRow:Number = (i > 0) ? grid[i -1][j]: 0;
var prevCol:Number = (j > 0) ? grid[i][j -1]: 0;
if(prevRow != 0 && prevCol != 0){
randomNum = Math.floor(Math.random() * 256) + 1;
while(randomNum == prevRow || randomNum == prevCol){
randomNum = Math.floor(Math.random() * 256) + 1;
}
this.graphics.beginFill(randomNum * 0xFF0000,1);
this.graphics.drawRect(i*10,j*10,10,10);
}
}
}
}
fillArray();