Javascript 用于计算不起作用的函数,以及可以';不要超过2分钟?
我正在制作一条克隆蛇,我已经把第二部分的头准备好了。其余的实体检查应自动执行,但它会在第二个部分切断实体,而不执行其余部分,尽管它应该执行。我的代码如下:Javascript 用于计算不起作用的函数,以及可以';不要超过2分钟?,javascript,jquery,Javascript,Jquery,我正在制作一条克隆蛇,我已经把第二部分的头准备好了。其余的实体检查应自动执行,但它会在第二个部分切断实体,而不执行其余部分,尽管它应该执行。我的代码如下: var pixels = document.getElementsByClassName('pixel'); // 0 to 95 var dir = 'right'; var foodEat = true; var dead = true; var snakeLong = 1; var headPos; var foodPix; var f
var pixels = document.getElementsByClassName('pixel'); // 0 to 95
var dir = 'right';
var foodEat = true;
var dead = true;
var snakeLong = 1;
var headPos;
var foodPix;
var foodMake = function(){ // Create Food pixel (Not On Snake)
var tempnum = Math.ceil(Math.random() * (95 - 5) + 5);
var pixstate = window.getComputedStyle(pixels[tempnum]).getPropertyValue('--state');
if (pixstate == 'snake' || pixstate == 'snakeHead' || pixstate == 'snakeEnd'){
console.log('Repeating');
foodMake();
} else {
console.log('Food Made!');
$(pixels[tempnum]).css('--state','food');
}
}
var directSend = function(reference,direction){
if (direction == 'left'){
reference -=1;
return reference;
} else if (direction == 'up'){
reference -=12;
return reference;
} else if (direction == 'right'){
reference +=1;
return reference;
} else if (direction == 'down'){
reference +=12;
return reference;
}
}
var snakeMake = function(refer,tsnakel){ // Continue To Form Snake
if (tsnakel > 0){
var tempdir = $(pixels[refer]).css('--goFrom');
console.log(directSend(refer,tempdir));
if (tsnakel = 1){
$(pixels[directSend(refer,tempdir)]).css('--state','empty');
} else {
refer = directSend(refer,tempdir);
}
tsnakel -= 1;
snakeMake(refer,tsnakel);
}
}
var snakeHEF = function(){ // Form First Sections of Snake
var Pheadpos;
var tdir;
if (dir == 'left'){ // Previous Segment Position
Pheadpos = 1;
tdir = 'right';
} else if (dir == 'up'){
Pheadpos = 12;
tdir = 'down';
} else if (dir == 'right'){
Pheadpos = -1;
tdir = 'left';
} else if (dir == 'down'){
Pheadpos = -12;
tdir = 'up';
}
$(pixels[headPos]).css('--state','snakeHead');
$(pixels[headPos]).css('--snakePos','1');
$(pixels[headPos]).css('--goFrom',tdir);
if (snakeLong == 1){ // No Food Eaten
$(pixels[headPos+Pheadpos]).css('--state','empty');
}
if (snakeLong >= 2){ // One Food Eaten
var send;
$(pixels[headPos+Pheadpos]).css('--state','snake');
$(pixels[headPos+Pheadpos]).css('--snakePos','2');
var temppos = $(pixels[headPos+Pheadpos]).css('--goFrom');
if (temppos == 'left'){
$(pixels[headPos+Pheadpos-1]).css('--state','empty');
send = headPos+Pheadpos-1;
} else if (temppos == 'up'){
$(pixels[headPos+Pheadpos-12]).css('--state','empty');
send = headPos+Pheadpos-12;
} else if (temppos == 'right'){
$(pixels[headPos+Pheadpos+1]).css('--state','empty');
send = headPos+Pheadpos+1;
} else if (temppos == 'down'){
$(pixels[headPos+Pheadpos+12]).css('--state','empty');
send = headPos+Pheadpos+12;
}
if (snakeLong > 2){ // More Than 1 Food Eaten
snakeMake(send,snakeLong-2);
}
}
}
var Game = setInterval(function(){
$(document).keydown(function(keyPressed){
if (keyPressed.keyCode == 88){ // Reset Game [x]
for (s = 0; s < 96; s++){
var pixstate = $(pixels[s]).css('--state');
if (pixstate == 'food'){
$(pixels[s]).css('--state','empty');
}
if (pixstate == 'snake' || pixstate == 'snakeHead' || pixstate == 'snakeEnd'){
$(pixels[s]).css('--state','empty');
$(pixels[s]).css('--snakePos','not');
$(pixels[s]).css('--goFrom','none');
}
}
foodEat = true;
$(pixels[0]).css('--state','snakeHead');
$(pixels[0]).css('--snakePos','1');
$(pixels[0]).css('--goFrom','left');
dead = false;
snakeLong = 1;
headPos = 0;
dir = 'right';
} // Movement Set
if (keyPressed.keyCode == 37 && dir !== 'right'){ // [<-]
dir = 'left';
} else if (keyPressed.keyCode == 38 && dir !== 'down'){ // [^^]
dir = 'up';
} else if (keyPressed.keyCode == 39 && dir !== 'left'){ // [->]
dir = 'right';
} else if (keyPressed.keyCode == 40 && dir !== 'up'){ // [vv]
dir = 'down';
}
});
if (dead == false){ //Dead Check Then Do Game Calculations
if (dir == 'left'){ // Move Head
for (s = 0; s < 8; s++){
if (headPos == 0+(12*s)){
dead = true;
}
}
if (dead == false){
headPos -= 1;
if (foodPix == headPos){
snakeLong += 1;
foodEat = true;
}
snakeHEF();
}
} else if (dir == 'up'){
if (headPos < 12){
dead = true;
}
if (dead == false){
headPos -= 12;
if (foodPix == headPos){
snakeLong += 1;
foodEat = true;
}
snakeHEF();
}
} else if (dir == 'right'){
for (s = 0; s < 8; s++){
if (headPos == 11+(12*s)){
dead = true;
}
}
if (dead == false){
headPos += 1;
if (foodPix == headPos){
snakeLong += 1;
foodEat = true;
}
snakeHEF();
}
} else if (dir == 'down'){
if (headPos > 83){
dead = true;
}
if (dead == false){
headPos += 12;
if (foodPix == headPos){
snakeLong += 1;
foodEat = true;
}
snakeHEF();
}
}
if (foodEat == true){ // Food generator
foodMake();
foodEat = false;
}
for (s = 0; s < 96; s++){
var tpixstate = $(pixels[s]).css('--state');
if (tpixstate == 'food'){
foodPix = s;
}
}
}
for (s = 0; s < 96; s++){ // Pixel Update
var pixstate = $(pixels[s]).css('--state');
if (pixstate == 'snake' || pixstate == 'snakeHead' || pixstate == 'snakeEnd'){
$(pixels[s]).css('background-color','rgb(0,170,0)');
} else if (pixstate == 'food'){
$(pixels[s]).css('background-color','rgb(270,0,0)');
} else if (pixstate == 'empty'){
$(pixels[s]).css('background-color','rgb(68,68,68)');
}
}
},750);
var pixels=document.getElementsByClassName('pixel');//0至95
var dir='右';
var foodEat=真;
var dead=真;
var snakeLong=1;
var-headPos;
var foodPix;
var foodMake=function(){//创建食物像素(不在Snake上)
var tempnum=Math.ceil(Math.random()*(95-5)+5);
var pixstate=window.getComputedStyle(像素[tempnum]).getPropertyValue('--state');
如果(pixstate=='snake'| | pixstate=='snakeHead'| | pixstate=='snakeEnd'){
console.log('Repeating');
食物制作();
}否则{
console.log(“食品制造”);
$(像素[tempnum]).css('--state',food');
}
}
var directSend=函数(参考,方向){
如果(方向=‘左’){
参考-=1;
返回参考;
}否则如果(方向=‘向上’){
参考-=12;
返回参考;
}否则如果(方向=‘右’){
参考值+=1;
返回参考;
}否则(方向==“向下”){
参考值+=12;
返回参考;
}
}
var snakeMake=函数(参见,tsnakel){//继续形成Snake
如果(tsnakel>0){
var tempdir=$(像素[参考]).css('--goFrom');
log(directSend(参见tempdir));
如果(tsnakel=1){
$(像素[directSend(参考,tempdir)]).css('-state',empty');
}否则{
REFERE=直接发送(REFERE,tempdir);
}
tsnakel-=1;
蛇行(参见tsnakel);
}
}
var snakeHEF=function(){//Form Snake的第一部分
var Pheadpos;
var-tdir;
如果(dir=='left'){//上一段位置
Pheados=1;
tdir='右';
}否则如果(dir=='up'){
Pheados=12;
tdir=‘向下’;
}else if(dir=='right'){
Pheados=-1;
tdir=‘左’;
}else if(dir=='down'){
Pheados=-12;
tdir=‘向上’;
}
$(像素[headPos]).css('--state','snakeHead');
$(像素[headPos]).css('--snakePos',1');
$(像素[headPos]).css('--goFrom',tdir);
如果(蛇龙==1){//不吃食物
$(像素[headPos+Pheadpos]).css('--state','empty');
}
如果(蛇龙>=2){//吃一种食物
var发送;
$(像素[headPos+Pheadpos]).css('-state',snake');
$(像素[headPos+Pheadpos]).css('-snakePos','2');
var temppos=$(像素[headPos+Pheadpos]).css('--goFrom');
如果(temppos==‘左’){
$(像素[headPos+Pheadpos-1]).css('--state','empty');
send=headPos+Pheadpos-1;
}否则如果(temppos==‘向上’){
$(像素[headPos+Pheadpos-12]).css('--state','empty');
send=headPos+Pheadpos-12;
}else if(temppos=='right'){
$(像素[headPos+Pheadpos+1]).css('--state','empty');
send=headPos+Pheadpos+1;
}否则如果(temppos==‘向下’){
$(像素[headPos+Pheadpos+12]).css('--state','empty');
send=headPos+Pheadpos+12;
}
如果(蛇龙>2){//吃了1种以上的食物
snakeMake(send,snakeLong-2);
}
}
}
var Game=setInterval(函数(){
$(文档).keydown(功能)(按键){
如果(keyPressed.keyCode==88){//Reset Game[x]
对于(s=0;s<96;s++){
var pixstate=$(像素数)css('--state');
如果(pixstate==‘食物’){
$(像素数)css('--state',empty');
}
如果(pixstate=='snake'| | pixstate=='snakeHead'| | pixstate=='snakeEnd'){
$(像素数)css('--state',empty');
$(像素数)css('--snakePos',not');
$(像素数)css('--goFrom',none');
}
}
foodEat=真;
$(像素[0]).css('--state','snakeHead');
$(像素[0]).css('--snakePos',1');
$(像素[0]).css('--goFrom',left');
死=假;
蛇龙=1;
headPos=0;
dir='右';
}//运动集
如果(keyPressed.keyCode==37&&dir!='right'){/[]
dir='右';
}else if(keyPressed.keyCode==40&&dir!=='up'){/[vv]
dir='down';
}
});
如果(dead==false){//dead检查,则进行游戏计算
如果(dir=='left'){//移动头部
对于(s=0;s<8;s++){
如果(头部位置==0+(12*s)){
死=真;
}
}
如果(死==假){
headPos-=1;
如果(foodPix==headPos){
蛇龙+=1;
foodEat=真;
}
蛇毒();
}
}否则如果(dir=='up'){
如果(头部位置<12){
死=真;
}
如果(死==假){
头部位置-=12;
如果(foodPix==headPos){
蛇龙+=1;
foodEat=真;
}
蛇毒();
}
}else if(dir=='right'){
对于(s=0;s<8;s++){
如果(头部位置==11+(12*s)){
死=真;
}
}
如果(死==假){
headPos+=1;
如果(foodPix==headPos){
蛇龙+=1;
foodEat=真;
}
蛇毒();
}
}else if(dir=='down'){
如果(头部位置>83){
死的=