private static void Main(string[] args) { int maxX = 50; int maxY = 10; var eventAggregator = new EventAggregator(); var cellFactory = new DefaultCellFactory(); var germFactory = new InfectiousGermFactory(eventAggregator); var tissueMap = new Tissue2DFactory(cellFactory, germFactory, new FisherYatesShuffle()) .Create(maxX, maxY, 0.7f, 0.05f); var cellStringEncoder = new CellStringEncoder(); var roundBasedGame = new RoundBasedGame(new TissueGrowthMechanism(), new RandomInfectionPropagation(germFactory, eventAggregator), eventAggregator, false); var rounds = new List <TissuePrinter>(); for (int i = 0; i < 50; i++) { var printer = new TissuePrinter(tissueMap, cellStringEncoder); rounds.Add(printer); tissueMap = roundBasedGame.Advance(tissueMap); } foreach (var round in rounds) { Console.Clear(); round.PrintTissue(); Thread.Sleep(500); } Console.ReadKey(); }
internal void Advance_DoesNotReturnSameTissue2DInstanceAndCellsAreCloned( [MockCellTissueCreation(10)] Tissue2D input, RoundBasedGame sut) { var result = sut.Advance(input); VerifyNotSameInstance(input, result); VerifyInputCellsAreCloned(input); }
internal void Advance_TissueGrows_NullCellsGetReduced( [TissueCreationFromFactory(10)] Tissue2D input, [Frozen(Matching.ImplementedInterfaces)] TissueGrowthMechanism growth, RoundBasedGame sut) { var result = sut.Advance(input); VerifyNotSameInstance(input, result); VerifyLessNullCellsPresent(input, result); }