一个javascript脚本写的俄罗斯方块[2]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 lxx8402 的 blog

   sq[3] = new square(x+1,y+1,3);
   break;
  case 5:
   sq[0] = new square(x,y,6);
   sq[1] = new square(x+1,y,6);
   sq[2] = new square(x+1,y+1,6);
   sq[3] = new square(x+1,y+2,6);
   break;
  case 6:
   sq[0] = new square(x+1,y,4);
   sq[1] = new square(x,y,4);
   sq[2] = new square(x,y+1,4);
   sq[3] = new square(x,y+2,4);
   break;
 }
 return sq;
}

function redraw(name,sq){
 var obj;
 for(var i=0; i<sq.length; i++){
  obj = document.all(name + sq[i].rows + "#" + sq[i].cols);
  obj.style.background = color[sq[i].color];
 }
}
function cleardraw(name,sq){
 var obj;
 for(var i=0; i<sq.length; i++){
  obj = document.all(name + sq[i].rows + "#" + sq[i].cols);
  obj.style.background = color[0];
 }
}

function isbounds(sq){
 for(var i=0; i<sq.length; i++){
  if(sq[i].cols<0 || sq[i].cols>9 || sq[i].rows<0 || sq[i].rows>19)
   return false;
 }
 return true;
}

function sortsquare(sq,name,ismax){
 if(ismax){
  var max = 0;
  if(name=="rows"){
   for(var i=0; i<sq.length; i++){
    if(sq[i].rows>max) max = sq[i].rows;
   }
  }
  else{
   for(var i=0; i<sq.length; i++){
    if(sq[i].cols>max) max = sq[i].cols;
   }   
  }
  return max;
 }
 else{
  var min = 20;
  if(name=="rows"){
   for(var i=0; i<sq.length; i++){
    if(sq[i].rows<min) min = sq[i].rows;
   }
  }
  else{
   for(var i=0; i<sq.length; i++){
    if(sq[i].cols<min) min = sq[i].cols;
   }  
  }
  return min;
 }
}

function startgame(){
 start.disabled = true;
 pause.focus();
 type = parseint(math.random()*7);
 oldtype = type;
 type = parseint(math.random()*7);
 var m = 4/2 -1;
 newsq = choosesquare(type,m,0);
 redraw('forecast',newsq);
 start();
}
function start(){
 if(isover){
  var s = "本次游戏结束! ";
  overgame(s);
 }
 gscore.innertext = score;
 gline.innertext = lines;
 glevel.innertext = level;
 oldtype = type;
 cleardraw('forecast',newsq);
 type = parseint(math.random()*7);
 var m = 4/2 -1;
 newsq = choosesquare(type,m,0);
 redraw('forecast',newsq);
 var mm = cols/2 -1;
 cursq = choosesquare(oldtype,mm,0);
 redraw('main',cursq);
 window.clearinterval(timerid);
 timerid = window.setinterval("run()",delay[level]);
}
function run(){
 if(ispause) return;
 if(movecursq(0,1,false) == false){
  window.clearinterval(timerid);
  if(removelines()==true) {
   dellines();
   lines = lines + delline.length;
   switch(delline.length){
    case 1:
     score = score + 100;
     break;
    case 2:
     score = score + 300;
     break;
    case 3:
     score = score + 700;
     break;
    case 4:
     score = score + 1000;
     break;
   }

   level = parseint(score/10000);
  }
  start();
 }
}

function removelines(){
 var obj,m=0;
 var isremove = true;
 var searchpos = true;
 var del = new array();
 for(var i=19; i>=0; i--){
  for(var j=0; j<10; j++){
   obj = document.all("main" + i + "#" + j);
   if(obj.style.background == color[0]){
    isremove = false;
   }
   else{
    searchpos = false;
   }
  }
  if(searchpos) {
   end = i;
   if(del.length>0){delline=del;return true;}
   else{return false;}
  }

本文关键:javascript,俄罗斯方块
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top