2012-03-19 2 views
-1

Я пытаюсь выяснить, кто следующий игрок в пошаговой игре в покер. В Objective C нет никаких проблем, но так как Im новой для PHP, я не совсем уверен, как написать этот цикл:Как бы вы пишете эту цель-c loop в php?

for (int i = 0; i < [match.participants count]; i++) 
    { 
     nextParticipant = [participantsArray objectAtIndex:((currentIndex + 1 + i) % [match.participants count])]; 

    if (nextParticipant.matchOutcome != GKTurnBasedMatchOutcomeQuit) 
    { 
     //NSLog(@"isn't quit %@", nextParticipant); 
     nextPlayer = nextParticipant; 
     break; 
    } 
    else 
    { 
     //NSLog(@"Player not active, continue the for loop to get the next player"); 
    } 
} 

Таким образом, цикл перебора всех участников массива. CurrentIndex - это индекс, в котором находился предыдущий игрок.

Итак, после каждого хода игрок отправляет свою информацию на сервер вместе со своим индексом. Поэтому, если игрок 4 сделал свою очередь, сценарий должен отправить ход игроку 5, но только если он активен (его статус установлен на 4, см. Ниже)

Я могу получить активных игроков с сервера:

$query = "SELECT player1Status, player2Status, player3Status, player4Status,player5Status,player6Status WHERE match_id='$match_id'"; 

     while ($row = mysql_fetch_object($result)) { 

    $player1Status = $row['player1Status']; 
    $player2Status = $row['player2Status']; 
    $player3Status = $row['player3Status']; 
    $player4Status = $row['player4Status']; 
    $player5Status = $row['player5Status']; 
    $player6Status = $row['player6Status']; 

} 

И я также информацию о матче:

$numberOfPlayersInMatch 
$currentPlayerIndex 

Я просто не знаю, как поставить все это вместе в хорошем смысле. Любая помощь очень ценится. Спасибо

ответ

1

Примечание: Это не проверено.

Вы можете изменить вместо того, чтобы статус игрока в $ player1Status, $ player2Status, положить его в массив как

$playerStatus[] = $row['player1Status']; 
$playerStatus[] = $row['player2Status']; 
... 


for ($i = 0; $i < $numberOfPlayersInMatch; $i++) 
{ 
    $nextParticipantStatus = $playerStatus[($currentPlayerIndex + 1) % ($numberOfPlayersInMatch)] 

    if ($nextParticipantStatus != $GKTurnBasedMatchOutcomeQuit) 
    {  
    $nextPlayerIndex = ($currentPlayerIndex + 1) % ($numberOfPlayersInMatch); 
    break; 
    } 

} 

$ nextPlayerIndex диапазоны значений: 0 - 5

+0

удивительным. благодаря – BlackMouse

Смежные вопросы