コード例 #1
0
        public override IEnumerable <int> Neighbors(Cells cells, int col, int row)
        {
            yield return(cells[col, cells.WrapRow(row - 1)]);

            yield return(cells[cells.WrapColumn(col + 1), cells.WrapRow(row - 1)]);

            yield return(cells[cells.WrapColumn(col - 1), row]);

            yield return(cells[cells.WrapColumn(col + 1), row]);

            yield return(cells[cells.WrapColumn(col - 1), cells.WrapRow(row + 1)]);

            yield return(cells[col, cells.WrapRow(row + 1)]);

            yield return(cells[cells.WrapColumn(col + 1), cells.WrapRow(row - 2)]);

            yield return(cells[cells.WrapColumn(col - 1), cells.WrapRow(row - 1)]);

            yield return(cells[cells.WrapColumn(col - 2), cells.WrapRow(row + 1)]);

            yield return(cells[cells.WrapColumn(col - 1), cells.WrapRow(row + 2)]);

            yield return(cells[cells.WrapColumn(col + 1), cells.WrapRow(row + 1)]);

            yield return(cells[cells.WrapColumn(col + 2), cells.WrapRow(row - 1)]);
        }
コード例 #2
0
        public override IEnumerable <int> Neighbors(Cells cells, int col, int row)
        {
            bool isRightSideUp = (col + row) % 2 == 0;

            if (isRightSideUp)
            {
                yield return(cells[cells.WrapColumn(col - 1), row]);

                yield return(cells[cells.WrapColumn(col + 1), row]);

                yield return(cells[col, cells.WrapRow(row + 1)]);
            }
            else
            {
                yield return(cells[cells.WrapColumn(col - 1), row]);

                yield return(cells[cells.WrapColumn(col + 1), row]);

                yield return(cells[col, cells.WrapRow(row - 1)]);
            }
        }
コード例 #3
0
        public override IndexPair GetColRowFromXy(Cells cells, int x, int y)
        {
            float fX      = x;
            float fY      = y;
            float fColumn = (fX + (float)TriangleCellPainter.HALF_WD) / (float)TriangleCellPainter.HALF_WD_CEIL;
            float fRow    = fY / (float)TriangleCellPainter.CELL_HGT;

            return(new IndexPair(
                       cells.WrapColumn((int)Math.Round(fColumn)),
                       cells.WrapRow((int)Math.Round(fRow))
                       ));
        }
コード例 #4
0
ファイル: CellStructure.cs プロジェクト: jwezorek/Lifelike
        public override IEnumerable<int> Neighbors(Cells cells, int col, int row)
        {
            bool isRightSideUp = (col + row) % 2 == 0;
            if (isRightSideUp)
            {
                yield return cells[cells.WrapColumn(col - 1), cells.WrapRow(row -1)];
                yield return cells[cells.WrapColumn(col), cells.WrapRow(row -1)];
                yield return cells[cells.WrapColumn(col + 1), cells.WrapRow(row - 1)];

                yield return cells[cells.WrapColumn(col - 2), cells.WrapRow(row + 1)];
                yield return cells[cells.WrapColumn(col - 2), row];
                yield return cells[cells.WrapColumn(col - 1), row];

                yield return cells[cells.WrapColumn(col - 1), cells.WrapRow(row + 1)];
                yield return cells[cells.WrapColumn(col), cells.WrapRow(row + 1)];
                yield return cells[cells.WrapColumn(col + 1), cells.WrapRow(row + 1)];

                yield return cells[cells.WrapColumn(col + 2), cells.WrapRow(row + 1)];
                yield return cells[cells.WrapColumn(col + 2), row];
                yield return cells[cells.WrapColumn(col + 1), row];
            }
            else
            {
                yield return cells[cells.WrapColumn(col - 1), cells.WrapRow(row + 1)];
                yield return cells[cells.WrapColumn(col), cells.WrapRow(row + 1)];
                yield return cells[cells.WrapColumn(col + 1), cells.WrapRow(row + 1)];

                yield return cells[cells.WrapColumn(col - 2), cells.WrapRow(row - 1)];
                yield return cells[cells.WrapColumn(col - 2), row];
                yield return cells[cells.WrapColumn(col - 1), row];

                yield return cells[cells.WrapColumn(col - 1), cells.WrapRow(row - 1)];
                yield return cells[cells.WrapColumn(col), cells.WrapRow(row - 1)];
                yield return cells[cells.WrapColumn(col + 1), cells.WrapRow(row - 1)];

                yield return cells[cells.WrapColumn(col + 2), cells.WrapRow(row - 1)];
                yield return cells[cells.WrapColumn(col + 2), row];
                yield return cells[cells.WrapColumn(col + 1), row];
            }
        }
コード例 #5
0
ファイル: CellStructure.cs プロジェクト: jwezorek/Lifelike
 public override IndexPair GetColRowFromXy(Cells cells, int x, int y)
 {
     float fX = x;
     float fY = y;
     float fColumn = (fX + (float)TriangleCellPainter.HALF_WD) / (float)TriangleCellPainter.HALF_WD_CEIL;
     float fRow = fY / (float)TriangleCellPainter.CELL_HGT;
     return new IndexPair(
         cells.WrapColumn((int)Math.Round(fColumn)),
         cells.WrapRow((int)Math.Round(fRow))
     );
 }
コード例 #6
0
ファイル: CellStructure.cs プロジェクト: jwezorek/Lifelike
 public override IEnumerable<int> Neighbors(Cells cells, int col, int row)
 {
     yield return cells[col, cells.WrapRow(row - 1)];
     yield return cells[cells.WrapColumn(col + 1), row];
     yield return cells[col, cells.WrapRow(row + 1)];
     yield return cells[cells.WrapColumn(col - 1), row];
 }