0

二次元配列内に char を含めようとしていますが、問題は、要素の位置を書き込むと、コードがそれを無視するように見え、位置がデフォルトで 0, 0 になることです。メソッドのコードは次のとおりです。

public boolean placePiece(int row, int col, char piece)
{
    setPos(x, y);
    setPiece(piece);
    if (piece != 'K' && piece != 'C')
        return false;   
    else {
        board[x][y] = piece;
        return true;
    }
}

メソッド setPos() のコード

private void setPos(int x, int y)
{
    this.x = x;
    this.y = y;

    if (x >= size && y >= size)
    {
        System.out.println("Out of range.");
    }


}

起こっている奇妙なこととは別に、別のメソッドを実行すると無限ループも発生します。このメソッドは、選択した行のすべての「K」をカウントし、結果をユーザーに出力します。

    this.line = line;
    this.number = number;
    int counter = 0;
    if (line == 'r' || line == 'R')
        for (int j = 0; j < size; j++) {
            while (board[number][j] == 'K')
            {
                counter += 1;
                System.out.println("You've found " + counter + " keys!");
            }
            if (board[number][j] != 'K')
            {
                System.out.println("Try again, you haven't found any key yet.");
            }
        }

while を取り除き、代わりに別の構造を導入する方法がわかりません。

よろしくお願いします。よろしくお願いします。

4

1 に答える 1

0

whileで置き換えますif

for (int j = 0; j < size; j++) {
   if( board[number][j] == 'K') {
      ++counter;
   }
}
System.out.println("You've found " + counter + " keys!");
于 2013-02-16T21:55:31.523 に答える