public static void MatrixTrafficCheck(Element[,] matrix, int[] demands, int[] stocks) { newCatch: var minValue = int.MaxValue; var minRow = 0; var minColumn = 0; for (var rowNumber = 0; rowNumber < matrix.GetLength(0); rowNumber++) { for (var columnNumber = 0; columnNumber < matrix.GetLength(1); columnNumber++) { if ((demands[columnNumber] != 0) && (stocks[rowNumber] != 0) && (matrix[rowNumber, columnNumber].Value < minValue)) { minValue = matrix[rowNumber, columnNumber].Value; minRow = rowNumber; minColumn = columnNumber; } } } if ((demands[minColumn] != 0) && (stocks[minRow] != 0)) { _matrixTrafficCalculate(matrix, demands, stocks, minRow, minColumn); goto newCatch; } }
public static void ResultOutput(Element[,] matrix) { Console.WriteLine("\nResult matrix:"); for (var rowNumber = 0; rowNumber < matrix.GetLength(0); rowNumber++) { Console.WriteLine(); for (var columnNumber = 0; columnNumber < matrix.GetLength(1); columnNumber++) { Console.Write("{0,5}", matrix[rowNumber, columnNumber].Delivery); } } var function = 0; for (var rowNumber = 0; rowNumber < matrix.GetLength(0); rowNumber++) { Console.WriteLine(); for (var columnNumber = 0; columnNumber < matrix.GetLength(1); columnNumber++) { function += matrix[rowNumber, columnNumber].Delivery * matrix[rowNumber, columnNumber].Value; } } Console.WriteLine($"The function value is equal to {function}"); }
public World(Element[,] world, string name) { this.world = world; Name = name; Rows = world.GetLength(0); Columns = world.GetLength(1); }
/// <summary> /// Выбор следующего элемента. По горизонтали. /// </summary> public void SelectNextY() { if ((IndexX != Elements.GetLength(1) - 1) && (Elements[IndexY, IndexX + 1].Text != " ")) { Elements[IndexY, IndexX].IsSelected = false; Elements[IndexY, ++IndexX].IsSelected = true; } }
// loop through multidimensional array printing based on element type public static void PrintMap() { for (int i = 0; i < gridMap.GetLength(0); i++) { for (int j = 0; j < gridMap.GetLength(1); j++) { // this is land if (gridMap[i, j] == Element.Land) { Console.Write("O "); // this is water } else if (gridMap[i, j] == Element.Water) { Console.Write("~ "); // this is explored area } else if (gridMap[i, j] == Element.ExploredArea) { Console.Write("X "); // this is treasure (looks like land) } else if (gridMap[i, j] == Element.Treasure) { Console.Write("O "); } if (j == gridMap.GetLength(1) - 1) { Console.WriteLine(); } } } }
// loop through multidimensional array printing based on element type public static void PrintMap() { for (int i = 0; i < gridMap.GetLength(0); i++) { for (int j = 0; j < gridMap.GetLength(1); j++) { if (gridMap[i, j] == Element.Land) { Console.Write("O "); } else if (gridMap[i, j] == Element.Water) { Console.Write("~ "); } else if (gridMap[i, j] == Element.ExploredArea) { Console.Write("X "); } else if (gridMap[i, j] == Element.Treasure) { Console.Write("O "); } if (j == gridMap.GetLength(1) - 1) { Console.WriteLine(); } } } }
/// <summary> /// 构造函数,传入一个二维数组,将内部矩阵设置为该二位数值,只是深度复制 /// </summary> /// <param name="matrix"></param> public SimpleMatrix(Element[,] matrix) : this() { this.Matrix = new Element[matrix.GetLength(0), matrix.GetLength(1)]; for (int row = 0; row < this.Row; row++) { for (int col = 0; col < this.Column; col++) { this.Matrix[row, col] = matrix[row, col]; } } }
private static string[,] GetTagMap(Element[,] map) { string[,] tagMap = new string[map.GetLength(0), map.GetLength(1)]; for (int x = 0; x < tagMap.GetLength(0); x++) { for (int y = 0; y < tagMap.GetLength(1); y++) { tagMap[x, y] = map[x, y].tag; } } return(tagMap); }
public bool isWallTR(int x, int y, Element[,] c) { x = x + 1; y = y - 1; if ((((x < 0) || (y < 0)) || (x > c.GetLength(0) - 1) || (y > c.GetLength(1) - 1)) || c[x, y] == null || c[x, y].et.Equals(Enum.ElementTypes.PacDot) || c[x, y].et.Equals(Enum.ElementTypes.PacPlayer) || c[x, y].et.Equals(Enum.ElementTypes.Ghost) || c[x, y].et.Equals(Enum.ElementTypes.Powerup) || c[x, y].et.Equals(Enum.ElementTypes.Fruit) || c[x, y].et.Equals(Enum.ElementTypes.GhostSpawn)) { return(false); } else if (c[x, y].et.Equals(Enum.ElementTypes.Wall)) { return(true); } return(false); }
public static void GetString(Element[,] matrix) { StringBuilder matrixString = new StringBuilder(); for (int row = 0; row < matrix.GetLength(0); row++) { for (int col = 0; col < matrix.GetLength(1); col++) { matrixString.Append($"{matrix[row, col]} "); } matrixString.Append("\n"); } Console.WriteLine(matrixString.ToString()); }
private static void _matrixRateInitialize(Element[,] matrix) { for (var rowNumber = 0; rowNumber < matrix.GetLength(0); rowNumber++) { for (var columnNumber = 0; columnNumber < matrix.GetLength(1); columnNumber++) { matrix[rowNumber, columnNumber] = new Element { Value = InputAndOutput. GetNumberFromUser($"Enter rate of [{rowNumber}, {columnNumber}] : ") }; } } }
public static (int[], int[]) DemandsAndStocksInitialize(Element[,] matrix) { int[] demands = new int[matrix.GetLength(1)]; for (var rowNumber = 0; rowNumber < matrix.GetLength(1); rowNumber++) { demands[rowNumber] = InputAndOutput.GetNumberFromUser($"Enter demand #{rowNumber} : "); } int[] stocks = new int[matrix.GetLength(0)]; for (var columnNumber = 0; columnNumber < matrix.GetLength(0); columnNumber++) { stocks[columnNumber] = InputAndOutput.GetNumberFromUser($"Enter stock #{columnNumber} : "); } return(demands, stocks); }
public int WallRight(int x, int y, Element[,] c) { int count = 0; x = x + 1; if ((((x < 0) || (y < 0)) || (x > c.GetLength(0) - 1) || (y > c.GetLength(1) - 1)) || c[x, y] == null || c[x, y].et.Equals(Enum.ElementTypes.PacDot) || c[x, y].et.Equals(Enum.ElementTypes.PacPlayer) || c[x, y].et.Equals(Enum.ElementTypes.Ghost) || c[x, y].et.Equals(Enum.ElementTypes.Powerup) || c[x, y].et.Equals(Enum.ElementTypes.Fruit) || c[x, y].et.Equals(Enum.ElementTypes.GhostSpawn)) { return(count); } else { count = 10; } return(count); }
public Game(Element[,] map, Hero hero, int treasures, int score = 0, int health = 3) { Health = health; Score = score; Treasures = treasures; Hero = new Hero(hero.X, hero.Y); Map = new Element[map.GetLength(0), map.GetLength(1)]; for (int i = 0; i < map.GetLength(0); i++) { for (int j = 0; j < map.GetLength(1); j++) { Map[i, j] = (Element)map[i, j].Clone(); } } }
/// <summary> /// Доп метод для реализации инвентаря. /// </summary> /// <param name="Listing"> Массив куда нужно внести объекты (фактически создается новый массив)</param> /// <param name="s"> Элемент класса Item которого нужно разделить на составляющие чтобы добавить эти составляющие в массив по x увечив его по y </param> /// <returns> Возращает новый массив дополненный элементами из Item s</returns> private static Element[,] TheLastElement(Element[,] Listing, Item s) { Element[,] newElement = new Element[Listing.GetLength(0) + 1, Item.Number]; for (int i = 0; i < Listing.GetLength(0); i++) { for (int j = 0; j < Listing.GetLength(1); j++) { newElement[i, j] = Listing[i, j]; } } for (int j = 0; j < Item.Number; j++) { newElement[Listing.GetLength(0), j] = new Element(s[j]); } return(newElement); }
public int Sum_Brick() { int col = 0; for (int i = 0; i < world.GetLength(0); i++) { for (int j = 0; j < world.GetLength(1); j++) { if (world[i, j].sym == '#') { col++; } } } return(col); }
public static bool isEffactive(Element a, Element b) { for (int i = 0; i < effectiveTo.GetLength(0); i++) { if (a == effectiveTo[i, 0] && b == effectiveTo[i, 1]) { return(true); } } return(false); }
public World(int x, int y) { world = new Element[x, y]; Rows = world.GetLength(0); Columns = world.GetLength(1); }