0

私は Android の初心者です。オンライン チュートリアルに従って、TicTacToe ゲームの touchListener のこのコード ブロックで問題が発生しています。

私が取得し続けるエラーは次のとおりです。

演算子 && は、引数の型 boolean、void に対して未定義です

次のコードは MainActivity.java にあります。以下の星で強調表示された行でこのエラーが発生します。

    // Listen for touches on the board
private OnTouchListener mTouchListener = new OnTouchListener() { 
public boolean onTouch(View v, MotionEvent event) { 
// Determine which cell was touched 
int col = (int) event.getX() / mBoardView.getBoardCellWidth(); 
int row = (int) event.getY() / mBoardView.getBoardCellHeight(); 
int pos = row * 3 + col; 
    if (!mGameOver && setMove(TicTacToeGame.HUMAN_PLAYER, pos)) { //*****************


    // If no winner yet, let the computer make a move
    int winner = mGame.checkForWinner();
    if (winner == 0) { 
        mInfoTextView.setText(R.string.turn_computer); 

        setMove(TicTacToeGame.COMPUTER_PLAYER, pos);
        winner = mGame.checkForWinner();
    }   

 } 
return false; 
 } 
};

これは、TicTacToeGame.java で setMove() が無効であるためだと思います。

public void setMove(char player, int location) {
    if (location >= 0 && location < BOARD_SIZE &&
        mBoard[location] == OPEN_SPOT) {
        mBoard[location] = player;

    }

}

私はチュートリアルを正確にフォローしましたhttp://www.harding.edu/fmccown/classes/comp475-s10/tic-tac-toe-graphics.pdf

どんな助けにもとても感謝しています。

どうもありがとう、

ベス・アン

4

1 に答える 1

2

リンク先の PDF にsetMove()は、ブール型の戻り値があります (ページ 5、上部):

private boolean setMove(char player, int location) { 
    if (mGame.setMove(player, location)) { 
        mBoardView.invalidate(); // Redraw the board
        if (player == TicTacToeGame.HUMAN_PLAYER) 
            mHumanMediaPlayer.start(); 
        else
            mComputerMediaPlayer.start(); 
        return true; 
    } 
    return false; 
}
于 2013-03-14T20:41:05.327 に答える