public static Tuple <int, int> TileSize(Board b, int winx, int winy, tileTilt tt) { int difx, dify; Tuple <int, int, int, int> extent = b.GetExtent(tt); difx = extent.Item3 - extent.Item1 + 2; dify = extent.Item4 - extent.Item2 + 2; difx = (int)(winx / difx); dify = (int)(winy / dify); return(new Tuple <int, int>(difx, dify)); }
public Tuple <int, int, int, int> GetExtent(tileTilt tt) { int xmax, xmin, ymax, ymin; List <Tile> tlist = GetTiles(); xmax = tlist.Max <Tile>(tl => (tt == tileTilt.vertical) ? 2 * tl.x + tl.y : 2 * tl.x); xmin = tlist.Min <Tile>(tl => (tt == tileTilt.vertical) ? 2 * tl.x + tl.y : 2 * tl.x); ymax = tlist.Max <Tile>(tl => (tt == tileTilt.horizontal) ? 2 * tl.y + tl.x : 2 * tl.y); ymin = tlist.Min <Tile>(tl => (tt == tileTilt.horizontal) ? 2 * tl.y + tl.x : 2 * tl.y); return(new Tuple <int, int, int, int>(xmin, ymin, xmax, ymax)); }
public static List <Tuple <Tile, int, int> > Tilate(Board b, int winx, int winy, tileTilt tt) { List <Tuple <Tile, int, int> > mylist = new List <Tuple <Tile, int, int> >(); Tuple <int, int, int, int> extent = b.GetExtent(tt); Tuple <int, int> ts = TileSize(b, winx, winy, tt); List <Tile> tl = b.GetTiles(); foreach (Tile t in tl) { int x = (tt == tileTilt.vertical) ? 2 * t.x + t.y : 2 * t.x; int y = (tt == tileTilt.horizontal) ? 2 * t.y + t.x : 2 * t.y; x -= extent.Item1; y -= extent.Item2; x = x * ts.Item1; y = y * ts.Item2; mylist.Add(new Tuple <Tile, int, int>(t, x, y)); } return(mylist); }