@@ -1,8 +1,17 @@
function scarebadguys(){
//bad guys run away
}
function youlose(){
alert("you lose");
}
function youwin(){
alert("YOU WIN YAY");
}
function eatfood(x,y){
game[y][x] = 9;
food_left-=1;
if(food_left == 0){
alert("YOU WIN YAY");
youwin();
}
}

@@ -15,9 +24,9 @@ function step(guy){
guy.dist = 0;
switch(guy.dir){
case dir.N:guy.y-=1;break;
case dir.E:guy.x+=1;break;
case dir.E:guy.x = (guy.x + 1) % 21;break;
case dir.S:guy.y+=1;break;
case dir.W:guy.x-=1;break;
case dir.W:guy.x = ((guy.x - 1) === -1)? 20 : (guy.x - 1) ;break;
}

if(game[guy.y][guy.x] === 7 ){
@@ -27,35 +36,223 @@ function step(guy){
eatsuperfood(guy.x,guy.y);
}
if(guy.wantchange){

//alert("test");
switch(guy.des_dir){
case dir.N:
if(game[guy.y-1][guy.x]==7 || game[guy.y-1][guy.x]==8 || game[guy.y-1][guy.x]==9 ){
guy.dir = dir.N;
guy.wantchange = false;
}
break;
case dir.E:
if(game[guy.y][guy.x+1]==7 || game[guy.y][guy.x+1]==8 || game[guy.y][guy.x+1]==9){
guy.dir = dir.E;
guy.wantchange = false;
}
break;
case dir.S:
if(game[guy.y+1][guy.x]==7 || game[guy.y+1][guy.x]==8 || game[guy.y+1][guy.x]==9){
guy.dir = dir.S;
guy.wantchange = false;
}
break;
case dir.W:
if(game[guy.y][guy.x-1]==7 || game[guy.y][guy.x-1]==8 || game[guy.y][guy.x-1]==9){
guy.dir = dir.W;
guy.wantchange = false;
}
break;
}

}
switch(guy.dir){
case dir.N:
if(game[guy.y-1][guy.x]==6 || game[guy.y-1][guy.x]==10){

guy.canmove = 0;
}
;break;
case dir.E:
if(game[guy.y][guy.x+1]==6 || game[guy.y][guy.x+1]==10){
guy.canmove = 0;
}
;break;
case dir.S:
if(game[guy.y+1][guy.x]==6 || game[guy.y+1][guy.x]==10){
guy.canmove = 0;
}
;break;
case dir.W:
if(game[guy.y][guy.x-1]==6 || game[guy.y][guy.x-1]==10){
guy.canmove = 0;
}
;break;
case dir.E:guy.x+=1;break;
case dir.S:guy.y+=1;break;
case dir.W:guy.x-=1;break;
}
}
function step_bdguy(guy){
var next_step = [];
guy.dist = 0;
if(guy.x == fatman.x && guy.y == fatman.y){
youlose();//losssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
}
switch(guy.dir){
case dir.N:guy.y-=1;break;
case dir.E:guy.x+=1;break;
case dir.E:guy.x = (guy.x + 1) % 21;break;
case dir.S:guy.y+=1;break;
case dir.W:guy.x-=1;break;
case dir.W:guy.x = (guy.x - 1) % 21;break;
}
if(guy.x == fatman.x && guy.y == fatman.y){
youlose();//losssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
}
switch(guy.dir){
case dir.N:
if(game[guy.y-1][guy.x]==7 || game[guy.y-1][guy.x]==8 || game[guy.y-1][guy.x]==9){
next_step.push(dir.N);
}
if(game[guy.y][guy.x+1]==7 || game[guy.y][guy.x+1]==8 || game[guy.y][guy.x+1]==9){
next_step.push(dir.E);
}
if(game[guy.y][guy.x-1]==7 || game[guy.y][guy.x-1]==8 || game[guy.y][guy.x-1]==9){
next_step.push(dir.W);
}
;break;
case dir.E:
if(game[guy.y][guy.x+1]==7 || game[guy.y][guy.x+1]==8 || game[guy.y][guy.x+1]==9){
next_step.push(dir.E);
}
if(game[guy.y+1][guy.x]==7 || game[guy.y+1][guy.x]==8 || game[guy.y+1][guy.x]==9){
next_step.push(dir.S);
}
if(game[guy.y-1][guy.x]==7 || game[guy.y-1][guy.x]==8 || game[guy.y-1][guy.x]==9){
next_step.push(dir.N);
}
;break;
case dir.S:
if(game[guy.y][guy.x+1]==7 || game[guy.y][guy.x+1]==8 || game[guy.y][guy.x+1]==9){
next_step.push(dir.E);
}
if(game[guy.y+1][guy.x]==7 || game[guy.y+1][guy.x]==8 || game[guy.y+1][guy.x]==9){
next_step.push(dir.S);
}
if(game[guy.y][guy.x-1]==7 || game[guy.y][guy.x-1]==8 || game[guy.y][guy.x-1]==9){
next_step.push(dir.W);
}
;break;
case dir.W:
if(game[guy.y+1][guy.x]==7 || game[guy.y+1][guy.x]==8 || game[guy.y+1][guy.x]==9){
next_step.push(dir.S);
}
if(game[guy.y][guy.x-1]==7 || game[guy.y][guy.x-1]==8 || game[guy.y][guy.x-1]==9){
next_step.push(dir.W);
}
if(game[guy.y-1][guy.x]==7 || game[guy.y-1][guy.x]==8 || game[guy.y-1][guy.x]==9){
next_step.push(dir.N);
}
;break;
}
if(next_step.length){
guy.dir = next_step[Math.floor(Math.random()*next_step.length)];
}
else{
guy.dir=(((guy.dir-1)+2)%4)+1;
}

}
function update_state(){

time+=1;
var guy = fatman;
if(fatman.canmove){
if(fatman.dist === 0){
guy = fatman;
switch(guy.dir){
case dir.N:
if(game[guy.y-1][guy.x]==6 || game[guy.y-1][guy.x]==10){
guy.canmove = 0;
}
; break;
case dir.E:
if(game[guy.y][guy.x+1]==6 || game[guy.y][guy.x+1]==10){
guy.canmove = 0;
}
;break;
case dir.S:
if(game[guy.y+1][guy.x]==6 || game[guy.y+1][guy.x]==10){
guy.canmove = 0;
}
;break;
case dir.W:
if(game[guy.y][guy.x-1]==6 || game[guy.y][guy.x-1]==10){
guy.canmove = 0;
}
;break;
}}
if(fatman.canmove){
if(fatman.des_dir === (((fatman.dir-1)+2)%4)+1){
//if(fatman.dist > 0){
fatman.dir = fatman.des_dir;
fatman.dist = -fatman.dist;
//}
switch(guy.dir){
case dir.N:
if(game[guy.y-1][guy.x]==6 || game[guy.y-1][guy.x]==10){
guy.canmove = 0;
}
; break;
case dir.E:
if(game[guy.y][guy.x+1]==6 || game[guy.y][guy.x+1]==10){
guy.canmove = 0;
}
;break;
case dir.S:
if(game[guy.y+1][guy.x]==6 || game[guy.y+1][guy.x]==10){
guy.canmove = 0;
}
;break;
case dir.W:
if(game[guy.y][guy.x-1]==6 || game[guy.y][guy.x-1]==10){
guy.canmove = 0;
}
;break;
}
}

fatman.dist+=fatman.speed;
if(fatman.dist >= UNIT){
step(fatman);
}}
}
else{
if(fatman.wantchange){

//alert("test");
fatman.dir = fatman.des_dir;
fatman.canmove = true;
fatman.wantchange = false;
guy = fatman;
guy.canmove = 1;
switch(guy.dir){
case dir.N:
if(game[guy.y-1][guy.x]==6 || game[guy.y-1][guy.x]==10){
guy.canmove = 0;
}
; break;
case dir.E:
if(game[guy.y][guy.x+1]==6 || game[guy.y][guy.x+1]==10){
guy.canmove = 0;
}
;break;
case dir.S:
if(game[guy.y+1][guy.x]==6 || game[guy.y+1][guy.x]==10){
guy.canmove = 0;
}
;break;
case dir.W:
if(game[guy.y][guy.x-1]==6 || game[guy.y][guy.x-1]==10){
guy.canmove = 0;
}
;break;
}
}

}
if(badguy1.canmove){
badguy1.dist+=badguy1.speed;
@@ -64,19 +261,35 @@ function update_state(){
}
}
if(badguy2.canmove){
if(time/UNIT === 10){
badguy2.dist = 0;
badguy2.x = 10;
badguy2.y = 10;

}
badguy2.dist+=badguy2.speed;
if(badguy2.dist >= UNIT){
step_bdguy(badguy2);
}
}
if(badguy3.canmove){
badguy3.dist+=badguy3.speed;
if(time/UNIT === 20){
badguy3.dist = 0;
badguy3.x = 10;
badguy3.y = 10;
}
if(badguy3.dist >= UNIT){
step_bdguy(badguy3);
}
}
if(badguy4.canmove){
badguy4.dist+=badguy4.speed;
if(time/UNIT === 30){
badguy4.dist = 0;
badguy4.x = 10;
badguy4.y = 10;
}
if(badguy4.dist >= UNIT){
step_bdguy(badguy4);
}
@@ -19,7 +19,8 @@ function get_draw_y(guy){
}
}
function new_game(){
food_left = 197;
food_left = 198;
time = 0;
badguy1 = {
dir : dir.W,
state : badguystate.alive,
@@ -30,37 +31,37 @@ function new_game(){
canmove : true,
};
badguy2 = {
dir : dir.S,
dir : dir.E,
state : badguystate.alive,
x : 9,
y : 12,
speed : 2,
dist : 0,
canmove : false,
canmove : true,
};
badguy3 = {
dir : dir.S,
dir : dir.E,
state : badguystate.alive,
x : 10,
y : 12,
speed : 2,
dist : 0,
canmove : false,
canmove : true,
};
badguy4 = {
dir : dir.S,
dir : dir.W,
state : badguystate.alive,
x : 11,
y : 12,
speed : 2,
dist : 0,
canmove : false,
canmove : true,
};
fatman = {
dir : dir.W,
x : 10,
y : 19,
speed : 2,
speed : 5,
dist : 0,
canmove : true,
wantchange : false,