注册 登录
编程论坛 C++教室

tic tac toe 的问题,请问怎么做?已经花了4小时了,仍然不知道怎么做。

fengzengqqq 发布于 2011-07-29 05:32, 768 次点击
1. Implement displayBoard to display Tic Tac Toe board.
2. Prompt User for a box on the board to select, i.e. a number between 1 and 9 with 1 being the upper left corner.

   use cin.get(box) to get the box number and isdigit to verify it is a
number;
   1 | 2 | 3
   4 | 5 | 6
   7 | 8 | 9
   If the box is available put the appropriate X or O in there and switch players, i.e. X becomes O and vice versa.
   If the box is NOT available warn the user and get another box until they select a valid open box.

3. After all spots have been select Display "Game Over!";
4. Write a main function to use the TicTacToe class and test all of the above functionality.


#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();
 getMove();
 // Your implementation here...
}

void TicTacToe::displayBoard()
{
 // Your implementation here...
}

void TicTacToe::getMove()
{
    cout << "Enter Box: ";
    int c;
    cin >> c;
    if (c > 9 || c < 0) {
        cout << "Invalid #\n";
        return;
    }
        // Error message here.

    cout << "your number is " << c << endl;
}

void junk()
{
char t[1];
cin.get(t,2);
cin.clear();
cin.ignore(1024, '\n');
char c = t[0];
if (c > '9' || c < '0'){
    cout << "Invalid #\n";
    return;
}

[ 本帖最后由 fengzengqqq 于 2011-7-29 05:40 编辑 ]
3 回复
#2
lucky5635912011-07-29 08:52
虽然英文看得懂,但是沉不住气看完。
#3
pangding2011-07-29 18:27
回复 2楼 lucky563591
一共也就四条,看来你的气真的好短呀。
#4
pangding2011-07-29 18:27
回复 2楼 lucky563591
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. 所有的格子都被填满了之后,显示“Game Over!”(这个有点诡异,难道不应该在某一方横竖斜连成一条直线之后显示胜负吗?相信这个游戏大家都玩过吧?)
4. 写一个 main 函数,使用 TicTacToe 这个类,并测试上述述的所有功能。

[ 本帖最后由 pangding 于 2011-7-29 18:43 编辑 ]
1