private IMatrix <MainFieldSquare> MatrixUpcast() { var items = new MainFieldSquare[Matrix.Width, Matrix.Height]; Matrix.ForEach((sqare, x, y) => items[x, y] = sqare as MainFieldSquare); return(new Matrix <MainFieldSquare>(items)); }
public static MainField Create(FieldSetting fieldSetting) { var items = new MainFieldSquare[fieldSetting.HorzDimension, fieldSetting.VertDimension]; for (uint x = 0; x < fieldSetting.HorzDimension; x++) { for (uint y = 0; y < fieldSetting.VertDimension; y++) { items[x, y] = new MainFieldSquare(x, y); } } return(new MainField(new Matrix <IMainFieldSquare>(items), fieldSetting.InitialSquares, fieldSetting.MaxSavedStatesCount)); }