2012-04-07 50 views
0

我不知道爲什麼,但這似乎不起作用。php比較2個合作社

基本上,我想這是真的,如果PLAYER1 ($playerX, $playerY)是player2 ($rs[x], $rs[y])

if (($rs[x] > $playerX-2 or $rs[x] < $playerX+2) && ($rs[y] > $playerY-2 or $rs[y] < $playerY+2)) { 
    // code 

任何想法,我做錯了一平方內?

+0

取代或和 – hakre 2012-04-07 01:16:44

回答

0

如果你用一些測試值替換,你可能會得到:

if((3 > 5 or 3 < 9) && (13 > 15 or 13 < 19)) 

顯然,這是總是如此。

在這種情況下,您應該使用&&而不是or

+0

IM這樣的針鋒相對,謝謝 – user1022585 2012-04-07 01:19:41

0

這只是將or替換爲and的情況。這裏寫的更合適的方法,如果你的獎勵積分聲明:

if(abs($playerX - $rs[x]) < 2 && abs($playerY - $rs[y]) < 2) { 
    // code 
0

你的條件對真正結束,由於OR操作

if (($rs[x] > $playerX-2 && $rs[x] < $playerX+2) && ($rs[y] > $playerY-2 && $rs[y] < $playerY+2)) { 
    //your code 
}