/// <summary> /// 2つの座標をセットするコンストラクタ /// <para>指定した座標の大小関係からマップの座標を自動的に決定します。</para> /// </summary> /// <param name="x1">座標1</param> /// <param name="x2">座標2</param> public MapField(Pos x1, Pos x2) { this.param = new FieldParameter(); this.param.leftX = this.param.rightX = x1.x; // 座標をセットしておく this.param.upperY = this.param.lowerY = x1.y; SetPos(x2, ref this.param); // もう一点は判定ののちに追加する return; }
/// <summary> /// 1つの座標をセットするコンストラクタ /// <para>自動的にPos(0, 0)をもう一点として張ります。</para> /// <para>マップのサイズを表すのに便利かと思います。</para> /// </summary> public MapField(Pos pos) { this.param = new FieldParameter(); SetPos(pos, ref this.param); return; }
/// <summary> /// 座標をセットする /// <para>引数で渡された座標を検査して、領域を増やすことができれば拡張が実行されます。</para> /// </summary> /// <param name="pos">追加・検査する座標</param> /// <param name="param">領域のパラメータ(参照渡し)</param> private static void SetPos(Pos pos, ref FieldParameter param) { if (param.upperY > pos.y) param.upperY = pos.y; if (param.lowerY < pos.y) param.lowerY = pos.y; if (param.leftX > pos.x) param.leftX = pos.x; if (param.rightX < pos.y) param.rightX = pos.x; return; }