Почему функция выдает false

Печать RSS
180

Автор
Дух
0
Должна дать true.
function chess_peshka($r,$d,$gn,$vn,$gv,$vv){
  $n=$gn.$vn;
  $v=$gv.$vv;
  $r=str_split($r);
if(empty($d)){
     if($gn=='7' && $gv=='5'){
     if($r[$n-20]=='0' && $r[$n-10]=='0' && $v==($n-20))
      {return true;}
      else{return 2;}
      }
  if($n==($v-10)){
  if($r[$v]=='0')
  {return true;}
  else{return 3;}
  }
        if($n==($v-9)){
        if(eregi("[a-f]", $r[$v]))
        {return 4;}
        else{return true;} 
        }
    if($n==($v-11)){
    if(eregi("[a-f]", $r[$v]))
    {return 5;}
    else{return true;} 
    }
}else{
     if($gn=='2' && $gv=='4'){
     if($r[$n+20]=='0' && $r[$n+10]=='0' && $v==($n+20))
      {return true;}
      else{return false;}
      }
  if($n==($v+10)){
  if($r[$v]=='0')
  {return true;}
  else{return false;}
  }
        if($n==($v+9)){
        if(!eregi("[^g-l]", $r[$v]))
        {return false;}
        else{return true;} 
        }
    if($n==($v+11)){
    if(!eregi("[g-l]", $r[$v]))
    {return false;}
    else{return true;} 
    }
}
return false;
}
Изменил: Neformat (08.10.2009 / 15:48)

ツ ツ ツ
0
на последнии строки смотри
return false;
}
P.S пиши код нормально, глаза режет
Изменил: Lugaro (07.10.2009 / 21:55)
Автор
Дух
0
$r='00000000000adadadad00adadadad000000000000000000000000000000000000000000adadadad00adadadad00000000000';
$d='';
$gn=7;
$vn=1;
$gv=6;
$vv=1;

ツ ツ ツ
0
Ы ты про что?
Убери предпоследнюю строку и твои глаза узреют счастье (:
Автор
Дух
0
Разници никакой всеравно пусто а должно быть 1
А

Оранжевые штаны
0
как никакой false и пустота это разница))
Автор
Дух
0
Ну я проверял так if (chess_peshka($r,$d,$gn,$vn,$gv,$vv)){echo 1;}else{echo 'false';}
Автор
Дух
0
Убрал и всеравно.
Автор
Дух
0
Да насколько я знаю функция выводит первое возвращение.
S

Землянин
0
потому че:
$n=$gn.$vn;
$v=$gv.$vv; - строковые переменные,
а тут - if($n==($v-10))
ты пытаешься произвести вычитание числа из строки.
пиши так:
$n=(int)($gn.$vn);
$v=(int)($gv.$vv);
Да и плюс условие, удовлетворяюшее if($n==($v-10)){, с переменными $gn=7 $vn=1; $gv=6; $vv=1;, есть только в блоке функции, где $d равно не пустой строке
Изменил: SD (08.10.2009 / 15:21)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск