⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tictactoeboard.h

📁 《Symbian S60第3版手机程序开发与实用教程》光盘源代码
💻 H
字号:
/*
* ==============================================================================
*  Name        : TicTacToeBoard.h
*  Part of     : TicTacToe
*  Interface   : 
*  Description : 
*  Version     : 
*
*  Copyright (c) 2005 Nokia Corporation.
* ==============================================================================
*/

#ifndef __TICTACTOE_BOARD_H__
#define __TICTACTOE_BOARD_H__

//  INCLUDES

#include <e32std.h>

// CONSTANTS

const TInt KTicTacToeRows = 3;
const TInt KTicTacToeColumns = 3;
const TInt KTicTacToeCells = KTicTacToeRows * KTicTacToeColumns;

// MACROS

// DATA TYPES

enum TTicTacToePlayer
	{
	ETttPlayerNone, ETttPlayerNought, ETttPlayerCross
	};

// FUNCTION PROTOTYPES

// FORWARD DECLARATIONS

// CLASS DECLARATION

/**
* Maintains the state of the board, allows moves to be made and checks whether
* a player has won.
*/
class TTicTacToeBoard
    {
    public:  // Constructors and destructor

        /**
        * C++ default constructor.
        */
        TTicTacToeBoard();

        /**
        * Destructor.
        */
        virtual ~TTicTacToeBoard();

    public: // New functions

        /**
        * Reset the board to initial state.
        */
        void Reset();

        /**
        * Get the player who has taken a given cell.
        * @param aColumn Zero-based column index.
        * @param aRow Zero-based row index.
        * @return The player.
        */
        TTicTacToePlayer Player(TInt aColumn, TInt aRow) const;
        
        /**
        * Attempt to move a player into a cell.
        * @param aCell Zero-based cell index.
        * @param aPlayer Which player.
        * @return ETrue if the move was made.
        */
        TBool Move(TInt aCell, TTicTacToePlayer aPlayer);

        /**
        * Check whether a player has three in a row.
        * @param aPlayer Which player.
        * @return ETrue if the player has won.
        */
        TBool HasWon(TTicTacToePlayer aPlayer);

        /**
        * Check whether the game is a draw.
        * @return ETrue if it is.
        */
        TBool IsDraw();

    private:    // Data

        // Contents of the grid cells
        TTicTacToePlayer iCells[KTicTacToeCells];
        // Flag indicating whether the game is finished
        TBool iCanMove;
    };

#endif      // __TICTACTOE_BOARD_H__

// End of File

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -