Skip to content
SenriYoshikawa edited this page Apr 18, 2015 · 4 revisions

敷地クラス

  • クラス名 field_type

###Member variables

  • std::array<std::array<int,40>,40> raw_data; -- 障害物:-1 空き地:0    石:1~int_max
  • std::array<std::array<int,32>,32> placed_order;
  • std::vector<stone_type> placed_stone_list;

###Member function

  • size_t get_score()

    • 現在の状態における得点を返す
  • field_type& put_stone(stone_type const& stone, int y, int x)

    • 石を置く
    • 自身への参照を返す
    • 失敗したら例外を出す
  • bool is_puttable(stone_type const& stone, int y, int x)

    • 指定された場所に指定された石が置けるかどうかを返す
  • field_type& remove_stone(stone_type const& stone)

    • 指定された石を取り除く
    • その石が置かれていない場合, 取り除いた場合に不整合が生じる場合は例外を出す
  • bool is_removable(stone_type const& stone)

    • 指定された石を取り除けるかどうかを返す
  • std::vector<stone_type>& list_of_stones() const

    • 置かれた石の一覧を表す配列を返す
  • point_type where_is(stone_type const& stone)

    • 指定された石が置かれている場合, その石の左上の座標を返す
    • 置かれていない場合は例外を出す
  • placed_stone_type get_stone(int y, int x)

    • 座標を受け取る(Pとする)
    • 次のものが含まれるオブジェクトを返す:
      • 敷地上の点Pに設置されているブロックの所属する石(Sとする)への参照
      • 敷地上における石Sの左上の座標(配置基準マスの座標)
      • 石Sの内部における点Pの座標
    • この型の定義:
      • クラス名 placed_stone_type
      • stone_type& stone
      • point_type p_in_field
      • point_type p_in_stone

enum class Block_State { BLANK, STONE, OBSTACLE }

  • Block_State at(size_t y, size_t x)
    • 指定された座標に何があるかを返す
Clone this wiki locally