1
for (int i = 0; i < NumberOfPlayers; i++)
{
     NextMove = playerPositions[i] + DiceThrow();

     while (RocketInSquare(NextMove) == true)
          playerPositions[i] = NextMove++;

     playerPositions[i] = NextMove;
}

この for ループに問題があります。ラインを作る方法はありますか:

NextMove = playerPositions[i] + DiceThrow();

for ループで 1 回だけ実行しますか?

4

3 に答える 3

2

flagまたはをブロックcounterと組み合わせて含めることができます。if

if (counter == 0)
{
    NextMove = playerPositions[i] + DiceThrow();
    counter++;
}

firstIteration( bool firstIteration)を使用した代替アプローチ、

firstIteration = false; 

....

for (...)
{
    if (firstIteration)
    {
        NextMove = playerPositions[i] + DiceThrow();
        firstIteration = !firstIteration; // Toggle the flag 
    }
}
于 2012-11-02T23:26:23.797 に答える
2

旗を保つ

    bool flag = false;    
    for (int i = 0; i < NumberOfPlayers; i++)
    {
    if(!flag)
    {
        NextMove = playerPositions[i] + DiceThrow();
        flag = true;  
    } 

    while (RocketInSquare(NextMove) == true)
        {
            playerPositions[i] = NextMove++;

        }
        playerPositions[i] = NextMove;

    }
于 2012-11-02T23:28:00.020 に答える
2

その行をループの外に移動するだけです。

NextMove = playerPositions[0] + DiceThrow(); 
for (int i = 0; i < NumberOfPlayers; i++)
{
     while (RocketInSquare(NextMove))
          NextMove++;

     playerPositions[i] = NextMove;
}
于 2012-11-03T02:47:20.890 に答える