Con respecto a lo del olfato, pensé en hacer dentro del for en la function mover(), antes del rand() algo así:
Código PHP:
if($array[$ratonx - 1][$ratony] == 2){
echo('Bien! Conseguimos el queso! A comerlo!');
$i = -1; //Cierra el for
}elseif($array[$ratonx + 1][$ratony] == 2){
echo('Bien! Conseguimos el queso! A comerlo!');
$i = -1; //Cierra el for
}elseif($array[$ratonx][$ratony - 1] == 2){
echo('Bien! Conseguimos el queso! A comerlo!');
$i = -1; //Cierra el for
}elseif($array[$ratonx][$ratony + 1] == 2){
echo('Bien! Conseguimos el queso! A comerlo!');
$i = -1; //Cierra el for
}
Eso sería para que no le pase por al lado sin comerlo...
Saludos, ahora me voy a poner a ver los códigos que todavía no tuve tiempo.
PD: Si quieren lo agrego al código pero ahora no lo puedo probar porque está lento el servidor y no sé si es mucho más lento por el script también o solo por el servidor... Pruébenlo ustedes.
EDITO: Lo pude probar, el código hay que ponerlo justo antes de que termine el for, sino podría aparecer dos veces "Bien! Conseguimos el queso! A comerlo!", no es un gran problema, pero también evita que se abra un for innecesario.
EDITO 2: El tema de ponerlo como dije al final es que si empiezan juntos se mueve antes de oler, entonces no lo descubre capaz...
Eso se podría arreglar poniéndolo antes (Arriba de todo, justo después de que empieza el for) y declarar otra variable o con el mismo $i, que controle si ya se llegó al queso que se saltee todo...
Código PHP:
if($mover == 0 && $i <= 0){
...
if($mover == 1 && $i <= 0){
...
if($mover == 2 && $i <= 0){
...
if($mover == 3 && $i <= 0){
Osea, hay que agregar && $i <= 0 en los 4 ifs que se fijan el número que tocó en el random.