public async Task Create_DifferentMapsRealDice_NoExceptions(int diceSeed) { // ARRANGE var linearDice = new LinearDice(diceSeed); var gaussDice = new GaussDice(diceSeed); var randomSource = new RoomGeneratorRandomSource(linearDice, gaussDice); var roomGenerator = new RoomGenerator(randomSource); var mapFactory = new RoomMapFactory(roomGenerator); var botPlayer = CreateBotPlayer(); var generator = CreateGenerator(botPlayer, mapFactory); var sectorScheme = CreateSectorScheme(); // ACT await generator.GenerateDungeonAsync(sectorScheme).ConfigureAwait(false); }
/// <summary> /// Создаёт кость и фиксирует зерно рандома. /// Если Зерно рандома не задано, то оно выбирается случайно. /// </summary> /// <returns> Экземпляр кости на основе выбранного или указанного ерна рандома. </returns> private GaussDice CreateRandomSeedAndGaussDice() { GaussDice dice; if (DiceSeed == null) { var diceSeedFact = new Random().Next(int.MaxValue); DiceSeed = diceSeedFact; dice = new GaussDice(diceSeedFact); } else { dice = new GaussDice(DiceSeed.Value); } return(dice); }
public void Create_RealRoomRandom_NoExceptions(int diceSeed) { // ARRANGE var leanerDice = new LinearDice(diceSeed); var gaussDice = new GaussDice(diceSeed); var randomSource = new RoomGeneratorRandomSource(leanerDice, gaussDice); var roomGenerator = new RoomGenerator(randomSource); var factory = new RoomMapFactory(roomGenerator); var sectorScheme = CreateSectorScheme(); // ACT Func <Task> act = async() => { var map = await factory.CreateAsync(sectorScheme); }; // ARRANGE act.Should().NotThrow(); }
public async Task Create_RealRoomRandom_NoExceptions(int diceSeed) { // ARRANGE var leanerDice = new LinearDice(diceSeed); var gaussDice = new GaussDice(diceSeed); var randomSource = new RoomGeneratorRandomSource(leanerDice, gaussDice); var roomGenerator = new RoomGenerator(randomSource); var factory = new RoomMapFactory(roomGenerator); var sectorScheme = CreateSectorScheme(); var sectorFactoryOptions = new SectorMapFactoryOptions(sectorScheme.MapGeneratorOptions); // ACT Func <Task> act = async() => { await factory.CreateAsync(sectorFactoryOptions).ConfigureAwait(false); }; // ARRANGE await act.Should().NotThrowAsync().ConfigureAwait(false); }
public async Task Create_RealRoomRandom_NoOverlapNodesAsync() { // ARRANGE var linearDice = new LinearDice(3245); var gaussDice = new GaussDice(3245); var randomSource = new RoomGeneratorRandomSource(linearDice, gaussDice); var roomGenerator = new RoomGenerator(randomSource); var factory = new RoomMapFactory(roomGenerator); var sectorScheme = CreateSectorScheme(); // ACT var map = await factory.CreateAsync(sectorScheme); // ARRANGE var hexNodes = map.Nodes.Cast <HexNode>().ToArray(); foreach (var node in hexNodes) { var sameNode = hexNodes.Where(x => x != node && x.OffsetX == node.OffsetX && x.OffsetY == node.OffsetY); sameNode.Should().BeEmpty(); } }