C ++ Tic Tac Toe游戏

时间:2011-07-27 06:44:58

标签: c++ visual-c++ tic-tac-toe

  

可能重复:
  C++ Tic Tac Toe Game

我尽我所能,这就是我到目前为止,请帮助我。这是我需要完成的代码。

  1. 实施displayBoard以显示Tic Tac Toe板。
  2. 提示用户选择棋盘上的方框,即1到9之间的数字,其中1位于左上角。

    使用cin.get(box)获取框号,并使用isdigit来验证它是否为 数; 1 | 2 | 3 4 | 5 | 6 7 | 8 | 9 如果盒子可用,在那里放入适当的X或O并切换球员,即X变为O,反之亦然。 如果该框不可用,则警告用户并获取另一个框,直到他们选择有效的打开框。

  3. 选择所有位置后显示“游戏结束!”;

  4. 编写一个main函数来使用TicTacToe类并测试所有上述功能。

    #include <iostream>
    using namespace std;
    
    
    class TicTacToe {
    public:
    void displayBoard();
    void getMove();
    void playGame();
    private:
    char board[9];
    char player; // Switch after each move.
    };
    
    int main ()
    {
    TicTacToe ttt;
    
    // you need to do the following in a loop 9 times
    ttt.playGame();
    }
    
    void TicTacToe::playGame()
    {
    getMove();
    // Your implementation here...
    }
    
    void TicTacToe::displayBoard()
    {
    // Your implementation here...
    }
    
    void TicTacToe::getMove()
    {
    cout << "Enter Box: ";
    char c;
    cin.get(c);
    if (c > '9' || c < '0')
        // Error message here.
    
    int number = c - '0';
    
    cout << "your number is " << number;
    // Your implementation here...
    }
    

  5. 这是我到目前为止所做的。

    #include <iostream> 
    
    using namespace std;
    
    void displayBoard() ;
    char cSquare1('1');
    char cSquare2('2');
    char cSquare3('3');
    char cSquare4('4');
    char cSquare5('5');
    char cSquare6('6');
    char cSquare7('7');
    char cSquare8('8');
    char cSquare9('9');
    int iPlayerTurn(1);
    bool bGameOver(true);
    
    
    do {
        // Display Board
        std::cout << cSquare1 << "|" << cSquare2 << "|" << cSquare3 << std::endl;
        std::cout << "-+-+-"<< std::endl;
        std::cout << cSquare4 << "|" << cSquare5 << "|" << cSquare6 << std::endl;
        std::cout << "-+-+-"<< std::endl;
        std::cout << cSquare7 << "|" << cSquare8 << "|" << cSquare9 << std::endl;
    
        // Switch After Each Move
        char cPlayerMark;
        if (iPlayerTurn == 1) {
            cPlayerMark = 'X';
        } else {
            cPlayerMark = 'O';
        }
    
        // Play Game
        std::cout << "Player" << iPlayerTurn << "'s move Enter Box: " << std::endl;
        bool bValidMove;
        // Loop until the Move is Valid
        do {
            char cNextMove;
            std::cin >> cNextMove;
            bValidMove = true;
    
            // Check for a valid move
            if (cNextMove == '1' && cSquare1 == '1') {
                cSquare1 = cPlayerMark;
            } else if (cNextMove == '2' && cSquare2 == '2') {
                cSquare2 = cPlayerMark;
            } else if (cNextMove == '3' && cSquare3 == '3') {
                cSquare3 = cPlayerMark;
            } else if (cNextMove == '4' && cSquare4 == '4') {
                cSquare4 = cPlayerMark;
            } else if (cNextMove == '5' && cSquare5 == '5') {
                cSquare5 = cPlayerMark;
            } else if (cNextMove == '6' && cSquare6 == '6') {
                cSquare6 = cPlayerMark;
            } else if (cNextMove == '7' && cSquare7 == '7') {
                cSquare7 = cPlayerMark;
            } else if (cNextMove == '8' && cSquare8 == '8') {
                cSquare8 = cPlayerMark;
            } else if (cNextMove == '9' && cSquare9 == '9') {
                cSquare9 = cPlayerMark;
            } else if (cNextMove > '9' || cNextMove < '0')
    
                std::cout << "error!”." << std::endl;
            return;
                    }
    
                    int number = cNextMove - '0';
              cout << "your number is " << number;
    
        } while (!bValidMove);
    
        bGameOver       = false;
        bool bWinGame   = true;
        // Check for end of game 
        if (cSquare1 != '1') {
            if (cSquare2 == cSquare1 && cSquare3 == cSquare1) {
                bGameOver = true;
            }
            if (cSquare4 == cSquare1 && cSquare7 == cSquare1) {
                bGameOver = true;
            }
        }
        if (cSquare5 != '5') {
            if (cSquare1 == cSquare5 && cSquare9 == cSquare5) {
                bGameOver = true;
            }
            if (cSquare2 == cSquare5 && cSquare8 == cSquare5) {
                bGameOver = true;
            }
            if (cSquare4 == cSquare5 && cSquare6 == cSquare5) {
                bGameOver = true;
            }
            if (cSquare3 == cSquare5 && cSquare7 == cSquare5) {
                bGameOver = true;
            }
        }
        if (cSquare9 != '9') {
            if (cSquare3 == cSquare9 && cSquare6 == cSquare9) {
                bGameOver = true;
            }
            if (cSquare7 == cSquare9 && cSquare8 == cSquare9) {
                bGameOver = true;
            }
        }
        // Check For Tie Game
        if (cSquare1 != '1' && cSquare2 != '2' && cSquare3 != '3' &&
            cSquare4 != '4' && cSquare5 != '5' && cSquare6 != '6' &&
            cSquare7 != '7' && cSquare8 != '8' && cSquare9 != '9' &&        
    
    !bGameOver)
        {
            bGameOver = true;
            bWinGame = false;
        }
    
        if (bGameOver) {
            if (bWinGame) {
                std::cout << "Player" << iPlayerTurn << " wins!" <<   
    std::endl;
            }
            // Display Board
            std::cout << cSquare1 << "|" << cSquare2 << "|" << cSquare3 <<  
    std::endl;
            std::cout << "-+-+-"<< std::endl;
            std::cout << cSquare4 << "|" << cSquare5 << "|" << cSquare6 << 
    std::endl;
            std::cout << "-+-+-"<< std::endl;
            std::cout << cSquare7 << "|" << cSquare8 << "|" << cSquare9 <<   
    std::endl;
    
            std::cout << "Game Over!" << std::endl;
    

1 个答案:

答案 0 :(得分:0)

我假设这是作业或作业问题?

请注意,它要求您填写一些空方法的实现。因此,您需要将您编写的代码工作到第一个列表的框架中。另请注意,该列表中的TicTacToe类使用char数组定义了电路板。

所以,例如:

void TicTacToe::displayBoard(){
    std::cout << board[1] << "|" << board[2]<< "|" << board[3]<< std::endl;
    std::cout << "-+-+-"<< std::endl;
    std::cout << board[4] << "|" << board[5]<< "|" << board[6]<< std::endl;
    std::cout << "-+-+-"<< std::endl;
    std::cout << board[7] << "|" << board[8]<< "|" << board[9]<< std::endl;
}