函数解析2个单独的整数,而是使用2个不同的未引用整数

时间:2018-07-23 05:39:28

标签: javascript jquery css grid rgba

https://jsfiddle.net/The95Chaps/2L4t9saq/231/是我的代码

var createGrid=function(s,i,a,e){for(var r=1;r<i+1;r++){for(var c="<span class='inline'>",n=1;n<s+1;n++){c=c+"<div class='pixels' x='"+n+"' y='"+r+"'></div>"}c+="</span>",$("#main").append(c)}$(".pixels").css("background-color","gray"),$(".pixels").css("width",a),$(".pixels").css("height",e)};
var modGrid = function(code){
    var arr = code
    for(var n=1;n<gridx+1;n++){
        for(var i = 1; i<gridy+1; i++){
        var garbledMess = "[x="+i+"][y="+n+"]"

      var idea = arr[0]
      arr.shift()
      $(garbledMess).css("background-color",idea)
    }
    }
}

var baseConverter=function(r,e,n){var o="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";if(e<=0||e>o.length||n<=0||n>o.length)return console.log("Base unallowed"),null;var l,t=0;if(10!=e){var a=r.length;for(l=0;l<a;l++){var u,f=-1;for(u=0;u<o.length;u++)if(r[l]==o[u]){f=1;break}if(u>=e)return console.log("Symbol unallowed in baseform"),null;if(-1==f)return console.log("Symbol not found"),null;var s=a-l-1;t+=0==s?u:u*Math.pow(e,s)}}else t=parseInt(r);if(10!=n){for(var g=[];t>0;){var i=t%n;if(i<0||i>=o.length)return console.log("Out of bounds error"),null;g.push(o[i]),t=parseInt(t/n)}return g.reverse().toString().replace(/,/g,"")}return t.toString()}
var b36torgba = function(input){
    var endres = ""
    for(var i = 1;i<(input.length/8)+1;i++){
    var arr = input
    var r = arr.charAt(0+(i-1)*8)+""+arr.charAt(1+(i-1)*8)
    var g = arr.charAt(2+(i-1)*8)+""+arr.charAt(3+(i-1)*8)
    var b = arr.charAt(4+(i-1)*8)+""+arr.charAt(5+(i-1)*8)
    var a = arr.charAt(6+(i-1)*8)+""+arr.charAt(7+(i-1)*8)
    var rrgba = baseConverter(r,36,10)
    var grgba = baseConverter(g,36,10)
    var brgba = baseConverter(b,36,10)
    var argba = baseConverter(a,36,10)
    argba=argba/100
    var bigMessOfAVariable = "'rgba("+rrgba+","+grgba+","+brgba+","+argba+")',"
    endres = endres+bigMessOfAVariable
  }

  return endres
}
var thing = [b36torgba("7300002S0073002S")]
var code =[2,1];
var code = thing+code
console.log(code)
var gridx = code[code.length-3]
console.log(gridx)
var gridy = code[code.length-1]
console.log(gridy)
var x = gridx
var y = gridy

createGrid(x,y,10,10)
console.log(code)
modGrid(code);

这里有很多事情要做

creategrid函数解析4个值,即网格的宽度和高度以及像素的宽度和高度,默认情况下将其着色为灰色,直到使用modGrid函数对其进行修改

modGrid函数采用一个rgba数组,例如[“ rgba(255,0,0)”],它将使按读取顺序rgb的第一个像素变为红色。

baseConverter函数接受3个值,第一个是输入,第二个是输入的底数,第三个是您希望输入的底数

b36torgba函数接受一个特殊的base36字符串,然后将其转换为modGrid可以读取的rgba数组,例如b36torgba("7300002S0073002S")将输出rgba(255,0,0,100),rgba(0,255,0,100),将“ 100”除以正确的数字语法(例如0.7或0.45)

当前在底部执行以下操作:

将[b36torgba(“ 7300002S0073002S”)]分配给变量

//note this will output an array, being rgba(255,0,0,1),rgba(0,255,0,1)

将[2,1]分配给另一个变量

//again, another array

为2个数组放在一起分配一个变量

//outputting rgba(255,0,0,1),rgba(0,255,0,1),2,1

设置网格的x和y

/*the assigner gets the last charcter from the string for the height, and the 
third last character for the width*/

然后将x和y的输出插入creategrid

最后,它使用变量code

修改网格。

现在,如果您不使用变量就手动将其放入

ie:代替了modGrid(code),您做了modGrid(“ rgba(255,0,0,1)”,“ rgba(0,255,0,1)”)

否则如果arr.shift是一个函数,有时会中断

/////////// \

另一个问题是.shift()不起作用

////////////

非常感谢

编辑:忘了提到x和y的当前工作原理,您输入任何内容都会输出20 * 10的网格,不知道为什么

0 个答案:

没有答案