-
Notifications
You must be signed in to change notification settings - Fork 0
Stoneクラス
furutsuki edited this page May 21, 2015
·
3 revisions
設計とは言いつつも、設計書を書くよりもコードを書いたほうが確実に伝わるので、コードを書きました。現在インタフェースとして必要になりそうな部分だけ書きましたが、ここにメソッドなりを追加していく予定です。
// using RawStone = uint8_t[8]; // 8bitで一行の情報を表す
using RawStone = char[8][8]; // こちらの方が後々便利そう
class Stone {
public:
Stone(RawStone r):
raw(r), rotated(0), reversed(false) {}
uint64_t get_hash() const; // 石情報を16バイトの値で返す。本当に実装できるのか? & uint64_tにしているけれども、面積も一緒に返したほうが嬉しそう。
private:
RawStone raw; // 石本体の情報
uint8_t rotated; // 何回転したか(0-3の値をとる)
bool reversed; // 反転したか(true=反転した, false=してない)
};
/* 問題点
* 8*8以上の大きさの石に対応できない
*/