/// <summary> /// Le Main /// </summary> /// <param name="args"> /// Program arguments /// </param> public static void Main(string[] args) { var counter = 1; // repeat until "0 0" is entered for dimension size input while (true) { // read dimension Console.Write("Field dimension (format 'n m'): "); string dimensionInput = Console.ReadLine(); if (String.IsNullOrEmpty(dimensionInput)) { Console.WriteLine("Expecting dimension input"); break; } string[] dimensionParts = dimensionInput.Trim().Split(new[] { ' ' }, 2); if (dimensionParts.Length != 2) { Console.WriteLine("Invalid input given, expecting dimension in format \"Width Height\" (e.g. \"4 3\""); break; } int width, height; if (!ParseDimension(dimensionParts[0], "Width", out width)) { break; } if (!ParseDimension(dimensionParts[1], "Height", out height)) { break; } // validate input if (width == 0 && height == 0) { break; } string fieldString = ReadField(width, height); // init var fieldParser = new FieldParser(MaxSize); var mineCounter = new MineCounter(); var fieldSolver = new FieldSolver(mineCounter); Field field = fieldParser.ParseAsync(width, height, fieldString).Result; char[,] result = fieldSolver.GetTextualRepresentation(field); // output Console.WriteLine(); Console.WriteLine("Field #{0}: ", counter); WriteResult(result); Console.WriteLine(); ++counter; } }
public void GetTextualRepresentationWhenFieldGivenThenCharArrayExpected() { var mines = new List <MinePoint> { new MinePoint(0, 0) }; var field = new Field(3, 3, mines); var counter = new[, ] { { -1, 1, 0 }, { 1, 1, 0 }, { 0, 0, 0 } }; var expected = new[, ] { { '*', '1', '.' }, { '1', '1', '.' }, { '.', '.', '.' } }; var mineCounter = MockRepository.GenerateMock <IMineCounter>(); mineCounter.Stub(c => c.Calculate(Arg <Field> .Is.Equal(field))).Return(counter); var solver = new FieldSolver(mineCounter); var result = solver.GetTextualRepresentation(field); result.Should().Equal(expected); }
static void Main(string[] args) { for (int i = 2; i < 16; i++) { FieldGenerator generator = new FieldGenerator(i); for (int j = 0; j < 100; j++) { Field f = generator.Generate(); FieldSolver solver = new FieldSolver(f); if (solver.Solve()) { Console.WriteLine($"[{i}][{j}] solved"); } else { Console.WriteLine($"[{i}][{j}] not solved"); } } } Console.ReadKey(); }
public void InitWhenNullGivenThenArgumentNullExceptionExpected() { var solver = new FieldSolver(null); }