All pastes #161181 Raw Edit

Prog 6

public text v1 · immutable
·published 2006-09-05 02:42 UTC
rendered paste body
<html>
<body bgcolor="black">

<script type="text/javascript">
var field = new Array();
field[0] =  "................................................X.......................X...........................";
field[1] =  "...............................................X.......................X............................";
field[2] =  "................................................X.......................X...........................";
field[3] =  "...............................................X.......................X............................";
field[4] =  ".......XX....XX..XXXXXXXX..XXXXXXXX..XX...XXX..XX..XXXXXXXX..XXXXXXXX...X..XXXXXXX...XXXXXXXX.......";
field[5] =  ".......XX....XX..XXXXXXXX..XXXXXXXX..XX..XXX...XX..XXXXXXXX..XXXXXXXX..X...XXXXXXX...XXXXXXXX.......";
field[6] =  ".......XX....XX..XX....XX..XX........XX.XXX....XX.....XX.....XX.........X..XX....XX..XX.............";
field[7] =  ".......XXXXXXXX..XXXXXXXX..XX........XXXXX.....XX.....XX.....XXXXXXXX..X...XX....XX..XXXXXX.........";
field[8] =  ".......XXXXXXXX..XXXXXXXX..XX........XXXXX.....XX.....XX.....XXXXXXXX...X..XX....XX..XXXXXX.........";
field[9] =  ".......XX....XX..XX....XX..XX........XX.XXX....XX.....XX...........XX..X...XX....XX..XX.............";
field[10] = ".......XX....XX..XX....XX..XX........XX...XX...XX.....XX...........XX...X..XX....XX..XX.............";
field[11] = ".......XX....XX..XX....XX..XXXXXXXX..XX...XXX..XX.....XX.....XXXXXXXX..XX..XXXXXXX...XXXXXXXX.......";
field[12] = ".......XX....XX..XX....XX..XXXXXXXX..XX....XX..XX.....XX.....XXXXXXXX..XX..XXXXXXX...XXXXXXXX.......";
field[13] = ".................X......X.............................X.........................X...................";
field[14] = "................X........X...........................X.........................X....................";
field[15] = "...............XXXX..X....X...XX...X......X......XXXXXXXX....X...XXX..XXXXXXX.XXXX..................";
field[16] = "...X..........X....X.X....X..X..X..X......X......X......XX...X.X....X.X......X...............X......";
field[17] = "..X.X.........X......XXXXXX.X....X.X......X......XXXXX..X.X..X.X......XXXX....XXXX..........X.......";
field[18] = ".X...X........X......X....X.XXXXXX.X......X......X......X..X.XXX..XXX.X...........X........X...X....";
field[19] = "..X...X.......X....X.X....X.X....X.X......X......X......X...XX.X....XXX......X....X.......X...X.....";
field[20] = "...X...X.......XXXX..X....X.X....X.XXXXXX.XXXXXX.XXXXXX......X..XXXX..XXXXXX..XXXX.......X...X......";
field[21] = "....X...X.....X....X...................................X................................X...X.......";
field[22] = ".....X...X...X......X...................................X..............................X...X........";
field[23] = "......X...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...X.........";
field[24] = ".......X.........................X...........X.....X.....X...............................X..........";
field[25] = "........X.........................X..X..X...X..X..X..X..X..XX...........................X...........";
field[26] = ".........X...................X.....X..X..X.X..X..X..X..X..X..X.....X...................X............";
field[27] = "........X.X.................X.X.....X..X..X..X..X..X..X..X....X...X.X.................X.X...........";
field[28] = ".......X...X...............X...X.....X..X...X..X..X..X..X..X...X.X...X...............X...X..........";
field[29] = "......X..X..X.............X..X..X.....X..X.X..X..X..X..X..X.....X..X..X.............X..X..X.........";
field[30] = ".....X.X..X..X...........X.X..X..X.....X..X..X..X..X..X..X.....X.X..X..X...........X.X..X..X........";
field[31] = "....X...X..X..X.........X...X..X..X.....X..X...X..X..X..X.....X...X..X..X.........X...X..X..X.......";
field[32] = "...X..X..X..X..X.......X..X..X..X..X.....X..X.X..X..X..X.....X..X..X..X..X.......X..X..X..X..X......";
field[33] = "..X.X..X..X..X..X.....X.X..X..X..X..X.....X..X.....X..X.....X.X..X..X..X..X.....X.X..X..X..X..X.....";
field[34] = ".X...X..X..X..X..X...X...X..X..X..X..X.....X..X...X..X.....X...X..X..X..X..X...X...X..X..X..X..X....";
field[35] = "...X..X..X..X..X..X.X..X..X..X..X..X..X.....X..XXX..X.....X..X..X..X..X..X..X.X..X..X..X..X..X..X...";
field[36] = "..X.X..X..X..X..X..X..X.X..X..X..X..X..X.....X.....X.....X..X.X..X..X..X..X..X..X.X..X..X..X..X..X.X";
field[37] = ".X...X.....X.....X...X...X.....X.....X..X.....X...X..................X.....X...X...X.....X.....X..X.";
field[38] = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...";
field[39] = "...X...X...X...X...X...X...X...X...X..X.X.......................................................X...";
field[40] = "XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X..X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.";
field[41] = ".....X...X...X...X...X...X...X...X....X.X...X...X...X...X...X...X...X...X...X...X...X...XX........X.";
field[42] = ".XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X...X...X...X...X...X...X...X...X...X...X....X...X.X..XXXX..X.";
field[43] = "..................................X.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...XX...XX..X....X.";
field[44] = "..XXX..XXXXX.XX.XX.XXXXX.X..X....X..X...........................................X.X...X.X....X....X.";
field[45] = "..X..X.X.....X.X.X.X...X.XX.X...X...X.XXX.XXXX.X...X.X.XXX.XXXX.XXXX.X.XXX.X..X.X..X...X...X...X..X.";
field[46] = "..X..X.XXX...X...X.X...X.X.XX..X..X.X..X..X..X..X.X..X.X...X....X..X.X..X..X..X.X....X.X...X..X...X.";
field[47] = "..X..X.X.....X...X.X...X.X..X.X..X..X..X..X..X...X...X.X...XXX..XXXX.X..X..XXXX.X...X.XX.X.XXX.XX.X.";
field[48] = "..XXX..XXXXX.X...X.XXXXX.X..XX..X..XX..X..X..X..X.X..X.X...X....X..X.X..X..X..X.X.............X...X.";
field[49] = "...............................X..X.X..X..XXXX.X...X.X.XXX.X....X..X.X..X..X..X.XXXXXXXXXXXXXXXXX.X.";
field[50] = "...........................X..X..X..X.............................................................X.";
field[51] = "....XX.XX.X..X.XXXX.X..X..X..X..X...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.";
field[52] = "....X.X.X.X..X.X....X..X.X..X..X..X.X...X...X...X...X...X...X...X...X...X...X.....X..X.X............";
field[53] = "X...X...X.X..X.XXXX.XXXXX..X..X..X..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX.X.XX..X.X.XXX...";
field[54] = ".X..X...X.X..X....X.X..X..X..X..X...X.X...X...X...X...X...X...X...X...X...X...X...X..XX.....X...X...";
field[55] = "X.X.X...X.XXXX.XXXX.X..X.X..X..X..X.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XX..XX.X........X.";
field[56] = ".X.X....................X..X..X..X..X.........................................X...X..X.....X..X.X...";
field[57] = "X.X.X..................X.....X..X...X.XXXX.XXXX.XXXX.XXX.X.XXXX.XXXX.X.X.XXXX.X.XXXX.....X.......X.X";
field[58] = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXX.X....X..X.X.....X..X.X....X....X.X.X..X.X...X..X.......X......";
field[59] = "................................X...X.XXXX.X..X.XXX...X..X.X....XXX..X.X.XXXX.XXX.X.....X.X.X..X..X.";
field[60] = "XX.X.XXXXX.X..........X.XXXX....XXX.X....X.X..X.X.....X..X.X....X....X.X.X....X...X..XX.X.....XX..X.";
field[61] = "...X.X.....X..........X.X..X....X...X.XXXX.XXXX.X.....X..X.XXXX.XXXX.XXX.X....X.XXXX...........X....";
field[62] = ".XXX.XXX...X..........X.XXXX....X.XXX.........................................X...X.X...X.XXX..XX...";
field[63] = "...X.X.....X..........X.X..X....X...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..XXX.X..X.XX..X.....X..";
field[64] = "XX.X.XXXXX.XXX.XXXX.XXX.X..X....XXX.X.........................................X...X..X.X......X...X.";
field[65] = "...X............................X...X.XXXX.XXXX.XXXX.XXXX.X..X.XXXX.X.X.XXXX..X.XXX.....X..X.XX.XXX.";
field[66] = ".XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XXX.X....X..X.X....X....XX.X.X....X.X.X.....X...X......X.X...X....";
field[67] = "...X..........................X.X...X.X.XX.XXXX.XXX..XX...X.XX.XX...X.X.XXX...XXX..X....XX.XX..X.X..";
field[68] = "XX.X..X.XXXXXXXXXXXXXXXXXXXXXXX.XXX.X.X..X.X.X..X....X....X..X.X.....X..X.....X......X..X.XX.X.X.XX.";
field[69] = "...XX.X.X.....................X.X...X.XXXX.X..X.XXXX.XXXX.X..X.XXXX..X..XXXX..X..X....XX.XX.X.......";
field[70] = ".XXX..X.X.XXXXXXXXXXXXXXXXXXX.X.X.XXX.........................................X.......X.............";
field[71] = "...X.XX...X...................X.X...X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
field[72] = "XX.X..X.XXX.XXXXXXXXXXXXXXXXXXX.XXX.X...X..X.....X.....X.....X.....X..X.....X...X...X........X...X..";
field[73] = "...XX.X.X...X...X.....X.......X.X...X..X..X..X..X..X..X..X..X..X..X..X..X...XXX.XX.XX..XXXXX.X.X.X.X";
field[74] = ".XXX..X.X.XXX.XXX.X.XXXXX.XXX.X.....X.X..X..X..X..X..X..X..X..X..X..X..X..X.X...X.X.X....X.....X....";
field[75] = "...X.XX.X.X.......X...X...X...XXXXXXX...X..X..X..X..X..X..X..X..X..X..X..X..X...XX.XX....X.XXXXXXXXX";
field[76] = "XX.X..X.X.X.XXXXXXXXX.X.XXXXX.X.....X..X..X..X..X..X..X..X..X..X..X..X..X...XXX.X...X..XXX...X...X..";
field[77] = "...X..X.X.X.X.......X...X.....X.X.XXX....X.....X.....X.....X........X..X..X.X...X........X.X.X.X.X..";
field[78] = ".X..X.X.X.X.X.XXXXX.XXXXX.XXX.X.X...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X..X..X..X....X.X.X...X.X.X.X.XXX";
field[79] = "...X..X.X.X.X...X.X...X.....X.X.XXX.XX.X.X.X.X.X.X.X.X.X.X.......XX..X..X...XXX.X...X..XXX.X.X.X.X..";
field[80] = "..X.X.X.X.X.X...X.XXX.X.XXX.X.X.X...X.X.X.X.X.X.X.X.X.X.X..X..X..X..X..X..X.X....X.X.X...X.X.X.X.X..";
field[81] = "...X..X.X.X.X.X.X...X.......X.X.X.XXX............................X.X..X..X..X...X........X.X.X.X.XXX";
field[82] = "..X...X.X.X.XXX.XXX.XXXXXXXXXXX.X...X.XXX..X.X..X.XXX..X...XXXX..XX..X..X...XXX.X...X..XXX.X.X.X.X..";
field[83] = "..X.XXX.X.X.X...X.........X...X.XXX.X.X..X.X.XX.X.X..X.X...X..X..X..X..X..X.X...XX.XX....X.X...X.X..";
field[84] = "..X...X.X.X.X.X.X.XXX.X.XXXX.XX.X...X.X..X.X.X.XX.X..X.X...XXXX..X.X..X..X..X...X...X....X.X...X.XXX";
field[85] = "X..X..X.X.X.X.X.X.X...X.......X.X.XXX.X..X.X.X..X.X..X.X...X..X..XX..X..X...XXX.XX.XX..XXX.XXXXX....";
field[86] = "..X...X.X.X.X.XXX.XXXXXXXXXXX.X.X...X.XXX..X.X..X.XXX..XXX.X..X..X..X..X..X.X...X...X....X..X.....X.";
field[87] = ".X...XX.X.X.X.....X.......X...X.XXX.X............................X.X..X..X..X...X........X...X...X..";
field[88] = "....X.X.X.X.XXX.XXX.XXX.XXXXX.X.X...X............................XX..X..X...XXX..X.X.X.XXX....X.X...";
field[89] = "...X..X.X.X.X...X...X.........X.X.XXX...X.XXX.X.X.........XXX....X..X..X..X.X.......X....X.....X....";
field[90] = ".X....X.X.X.XXXXXXX.XXXXXXXXXXX.X...X...X.X.X.X.X.XXX.X.X.X......X.X..X..X..X....X.X.X...X....X.X...";
field[91] = "......X.X...X...................XXX.X...X.XXX.X.X.X.X.X.X.XX.X.X.XX..X..X...XXX.X......XXX...X...X..";
field[92] = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...X...X.X....X..X.X.X.X.X..X.X.X..X..X..X.X...XX.XX....XXXXXXXXXX.";
field[93] = "....................................X...X.X....X..XXX.XXX.X...X..X.X..X..X..X...X.X.X....X..........";
field[94] = ".XXXX.X..X.XXXX.XXXX.XXXX.XXXX.XXXX.X.........................X..XX..X..X..XXXX.XX.XX..XXX.XXXXXXXXX";
field[95] = ".X....X..X.X....X....X....X..X.X..X.X........................X......X..X..X.X...X.X.X....X..........";
field[96] = ".X.XX.X..X.X.XX.X.XX.XXX..XXXX.X..X.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XX.XX....XXXXXXXXXX.";
field[97] = ".X.SX.X..X.X..X.X..X.X....X.X..X..X.X.X...X...X...X...X...X...X...X...X...X...X.X......XXX..........";
field[98] = ".XXXX.XXXX.XXXX.XXXX.XXXX.X..X.XXXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X..X.X.X...X.XXXXXXXXX";
field[99] = "....................................X...X...X...X...X...X...X...X...X...X...X.X.X...X....X.........E";

var active = new Array();
var checkresult = "";
var checkreturn = 0;
var temp = new Array();
var mover = new Array();
var c = 0;

function tried(coordx,coordy) {
  this.x=coordx;
  this.y=coordy;
}
function check(coordx,coordy) {
  checkreturn = "";
  if(coordy!=0){
    if(field[coordy-1].charAt(coordx)=="."){
      checkreturn = checkreturn + "1";
    }else{
      checkreturn = checkreturn + "2";
    }
    if(field[coordy-1].charAt(coordx)=="E"){
      checkreturn = "end";
    }
  }else{
    checkreturn = checkreturn + "2";
  }
  if(coordy!=field.length-1){
    if(field[coordy+1].charAt(coordx)=="."){
      checkreturn = checkreturn + "1";
    }else{
      checkreturn = checkreturn + "2";
    }
    if(field[coordy+1].charAt(coordx)=="E"){
      checkreturn = "end";
    }
  }else{
    checkreturn = checkreturn + "2";
  }
  if(coordx!=0){
    if(field[coordy].charAt(coordx-1)=="."){
      checkreturn = checkreturn + "1";
    }else{
      checkreturn = checkreturn + "2";
    }
    if(field[coordy].charAt(coordx-1)=="E"){
      checkreturn = "end";
    }
  }else{
    checkreturn = checkreturn + "2";
  }
  if(coordx!=field[coordy].length-1){
    if(field[coordy].charAt(coordx+1)=="."){
      checkreturn = checkreturn + "1";
    }else{
      checkreturn = checkreturn + "2";
    }
    if(field[coordy].charAt(coordx+1)=="E"){
      checkreturn = "end";
    }
  }else{
    checkreturn = checkreturn + "2";
  }
  if (checkreturn.substring(0,3) == "end"){
    checkreturn = "end";
  }
  return checkreturn;
}
function go_up(coordx,coordy) {
  temp = field[coordy-1].split("");
  temp[coordx] = "o";
  field[coordy-1] = temp.join("");
  mover[mover.length] = new tried(coordx,coordy-1);
}
function go_down(coordx,coordy) {
  temp = field[coordy+1].split("");
  temp[coordx] = "o";
  field[coordy+1] = temp.join("");
  mover[mover.length] = new tried(coordx,coordy+1);
}
function go_left(coordx,coordy) {
  temp = field[coordy].split("");
  temp[coordx-1] = "o";
  field[coordy] = temp.join("");
  mover[mover.length] = new tried(coordx-1,coordy);
}
function go_right(coordx,coordy) {
  temp = field[coordy].split("");
  temp[coordx+1] = "o";
  field[coordy] = temp.join("");
  mover[mover.length] = new tried(coordx+1,coordy);
}

function move_active(){
  for(a=0;a<active.length;a++){
    if(active[a].x!="x" && active[a].y!="x"){
      checkresult=check(active[a].x,active[a].y) + "";
      if(checkresult.charAt(0)=="1"){
        go_up(active[a].x,active[a].y);
      }
      if(checkresult.charAt(1)=="1"){
        go_down(active[a].x,active[a].y);
      }
      if(checkresult.charAt(2)=="1"){
        go_left(active[a].x,active[a].y);
      }
      if(checkresult.charAt(3)=="1"){
        go_right(active[a].x,active[a].y);
      }
      if(checkresult == "end"){
        break;
      }
    }
  }
}

function run(startx,starty) {
  mover[0]=new tried(startx,starty);
  var count = 1;
  var checker = "";
  while(checker!="end"){
    active = "";
    active = new Array();
    c=0;
    for(y=0;y<mover.length;y++){
      if(mover[y].x != "x" && mover[y].y != "x"){
        if(check(mover[y].x,mover[y].y)=="end"){
          checker = "end";
          break;
        }else{
          if(check(mover[y].x,mover[y].y)=="2222"){
            mover[y].x = mover[y].y = "x";
          }else{
            active[c]=new tried(mover[y].x,mover[y].y);
            c++;
          }
        }
      }
    }
    count++;
    if(checker!="end"){
      move_active();
    }
  }
  if(checker=="end"){
    for(b=0;b<field.length;b++){
      document.write(field[b].fontsize(1).fixed().fontcolor("Yellow")+"<br \>");
    }
    var end_time = new Date() + "";
    end_time = end_time.split(" ");

    var elapsed_h = start_time[4].substring(0,2) - end_time[4].substring(0,2);
    if(elapsed_h > 0) { elapsed_h = elapsed_h - 24; }
    var elapsed_m = start_time[4].substring(3,5) - end_time[4].substring(3,5);
    if(elapsed_m > 0) { elapsed_m = elapsed_m - 60; elapsed_h++; }
    var elapsed_s = start_time[4].substring(6,8) - end_time[4].substring(6,8);
    if(elapsed_s > 0) { elapsed_s = elapsed_s - 60; elapsed_m++; }
    alert("Success! Moves = " + count + '\n' + "Elapsed time: " + (0-elapsed_h) + " hours, " + (0-elapsed_m) + " minutes, " + (0-elapsed_s) + " seconds.");
  }else{
    for(b=0;b<field.length;b++){
      document.write(field[b]+"<br \>");
    }
  }
}

var start_time = new Date() + "";
start_time = start_time.split(" ");

run(3,97);


</script>

</body>
</html>