public async void CultivateUpwardsAsync(Garden garden, int[,] gardenCellCoordinates) { Console.WriteLine($"{this.Id} gardener started working"); await Task.Run(() => CultivateUpwards(garden, gardenCellCoordinates)); Console.WriteLine($"{this.Id} gardener completed the work"); }
public async void CultivateFromLeftToRightAsync(Garden garden) { Console.WriteLine($"{this.Id} gardener started working"); await Task.Run(() => CultivateFromLeftToRight(garden)); Console.WriteLine($"{this.Id} gardener completed the work"); }
public void CultivateFromLeftToRight(Garden garden) { try { for (int i = 0; i < garden.GardenCells.Count; i++) { if (garden.GardenCells[i].WillBeSkipped == true && garden.GardenCells[i].IsSkipped == false) { garden.GardenCells[i].WillBeSkipped = false; garden.GardenCells[i].IsSkipped = true; Console.WriteLine($"Cell with number \"-1\" has been skipped"); } else if (garden.GardenCells[i].IsCultivated == false && garden.GardenCells[i].IsSkipped == false) { garden.GardenCells[i].IsCultivated = true; Console.WriteLine($"Garden cell number {garden.GardenCells[i].CellNumber} has been cultivated by {this.Id} gardener"); Thread.Sleep(500); } } } catch (Exception) { Console.WriteLine("Something went wrong"); } }
public void CultivateUpwards(Garden garden, int[,] gardenCellCoordinates) { try { for (int i = garden.GetLengthOfEachRow(gardenCellCoordinates) - 1; i >= 0; i--) { for (int j = garden.GetRows(gardenCellCoordinates) - 1; j >= 0; j--) { foreach (var VARIABLE in garden.GardenCells) { if (VARIABLE.WillBeSkipped == true && VARIABLE.IsSkipped == false) { VARIABLE.WillBeSkipped = false; VARIABLE.IsSkipped = true; Console.WriteLine($"Cell with number \"-1\" has been skipped"); } else if (VARIABLE.CellNumber == gardenCellCoordinates[j, i] && VARIABLE.IsCultivated == false && VARIABLE.IsSkipped == false) { VARIABLE.IsCultivated = true; Console.WriteLine($"Garden cell number {VARIABLE.CellNumber} has been cultivated by {this.Id} gardener"); Thread.Sleep(500); } } } } } catch (Exception) { Console.WriteLine("Something went wrong"); } }
static void Main(string[] args) { try { Console.WriteLine("All cells with number \"-1\" are impassable and shouldn't be cultivated\n"); int[,] gardenCellCoordinates = { { 0, 1, 2, 3, 4, 5 }, { 6, -1, 8, 9, 10, 11 }, { 12, 13, 14, -1, 16, 17 }, { 18, 19, 20, 21, 22, 23 } }; Garden garden = new Garden(gardenCellCoordinates); Gardener gardener1 = new Gardener() { Id = 1 }; Gardener gardener2 = new Gardener() { Id = 2 }; gardener2.CultivateUpwardsAsync(garden, gardenCellCoordinates); gardener1.CultivateFromLeftToRightAsync(garden); Console.ReadLine(); } catch (Exception) { Console.WriteLine("Something went wrong"); } }