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

📄 board.h

📁 C++的一些原代码
💻 H
字号:
/* Code for exercise 15.3.
 | 
 | "C++ Solutions--Companion to The C++ Programming Language, Third Edition"
 | by David Vandevoorde; Addison-Wesley 1998; ISBN 0-201-30965-3.
 |
 | Permission to use, copy, modify, distribute and sell this software
 | and its documentation for any purpose is hereby granted without fee.
 | The author makes no representations about the suitability of this
 | software for any purpose.  It is provided "as is" without express or
 | implied warranty.
 `----------------------------------------------------------------------*/

#ifndef BOARD_H
#define BOARD_H

#include <assert.h>

enum MoveResult { kUnsuccessful = 0, kSuccessful };
enum Color { kEmpty = 0, kWhite, kBlack };

inline Color opponent_of(Color color) {
   assert((color==kWhite) or (color==kBlack));
   return color==kWhite? kBlack: kWhite;
}

struct Board {
   Board();
   Color operator()(int r, int c) const { return b_[r][c]; }
   void move(Color, int r, int c);
   MoveResult get_possible_move(Color,
                                int &r, int &c) const;
   MoveResult valid_move(Color, int r, int c) const;
   int score(Color color) const
      { return color==kWhite? white_score_: black_score_; }
   enum { kNRows = 8, kNCols = 8 };
private:
   Color b_[kNRows+2][kNCols+2];
   int black_score_, white_score_;
};
#endif

⌨️ 快捷键说明

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