public static PlanetData generate(PlanetGeneratorData data) { Stopwatch sw = new Stopwatch(); sw.Start(); var planet = createSpherePlanet(data.sphereDivisionLevel); UnityEngine.Debug.Log("Elapsed sphere " + sw.Elapsed); sw.Reset(); sw.Start(); planet.scale = data.planetScale; planet.riverWidth = data.riverWidth; planet.riverMoreHeight = data.riverMoreHeight; planet.biomes = data.biomes; var gen = new DefaultRandomGenerator(data.seed); makePerlinElevation(planet, gen, data.elevationData.perlinFactors); UnityEngine.Debug.Log("Elapsed perlin " + sw.Elapsed); sw.Reset(); sw.Start(); makeFinalElevation(planet, data.elevationData.minHeight, data.elevationData.maxHeight, data.elevationData.forcedOffsetElevation , data.elevationData.oceanLevel, data.elevationData.lakeSize, data.elevationData.elevationCurve, gen, data.elevationData.randomizeElevation); UnityEngine.Debug.Log("Elapsed elevation " + sw.Elapsed); sw.Reset(); sw.Start(); makeRivers(planet, gen, data.riverNb, data.riverTestCount); UnityEngine.Debug.Log("Elapsed rivers " + sw.Elapsed); sw.Reset(); sw.Start(); makeMoisture(planet, data.riverMoistureMin, data.moisturePropagationResistance); UnityEngine.Debug.Log("Elapsed moisture " + sw.Elapsed); sw.Reset(); sw.Start(); makeBiomes(planet, data.elevationData.maxHeight); UnityEngine.Debug.Log("Elapsed biomes " + sw.Elapsed); sw.Reset(); sw.Start(); makeStructures(planet, gen); UnityEngine.Debug.Log("Elapsed structures " + sw.Elapsed); sw.Reset(); sw.Start(); return(planet); }
/// <summary> /// Generete game field /// </summary> /// <param name="grid">Field member</param> /// <param name="player"Player member></param> /// <returns>Genereted game filed</returns> public IGrid GenerateGrid(IPlayer player, IGrid grid) { DefaultRandomGenerator random = DefaultRandomGenerator.Instance(); int percentageOfBlockedCells = random.Next(GlobalConstants.MinimumPercentageOfBlockedCells, GlobalConstants.MaximumPercentageOfBlockedCells); for (int row = 0; row < grid.TotalRows; row++) { for (int col = 0; col < grid.TotalCols; col++) { int num = random.Next(0, 100); if (num < percentageOfBlockedCells) { grid.SetCell(row, col, GlobalConstants.BlockedCellSymbol); } else { grid.SetCell(row, col, GlobalConstants.FreeCellSymbol); } } } grid.SetCell(grid.TotalRows / 2, grid.TotalCols / 2, GlobalConstants.PlayerSignSymbol); this.MakeAtLeastOneExitReachable(grid, player); return(grid); }
public void TestSlotAllocationToUser() { DefaultRandomGenerator defaultRandom = new DefaultRandomGenerator(); ISlotAssignmentStrategy lockerAssignmentStrategy = new RandomSlotAssignmentStrategy(defaultRandom); ILockerRepository lockerRepository = new InMemoryLockerRepository(); ISlotFilteringStrategy slotFilteringStrategy = new SizeBasedSlotFilteringStrategy(); InMemoryOtprepository slotOtpRepository = new InMemoryOtprepository(); RandomOtpGenerator otpGeneratorRandom = new RandomOtpGenerator(5, defaultRandom); var lockerService = new LockerService(lockerAssignmentStrategy, lockerRepository, slotFilteringStrategy); CreateTestLockerWithSlots(new LockerController(lockerService), 2, new Size(10.0, 10.0)); }
private void 全部发放ToolStripMenuItem_Click(object sender, EventArgs e) { var generator = new DefaultRandomGenerator(); foreach (var logging in this.lv_RewardLogging.SelectedItems ?? new ListView.SelectedListViewItemCollection(this.lv_RewardLogging)) { var reward = (logging as ListViewItem).Tag as RewardLogging; var redpack = new Redpack(nonce_str: generator.Genernate(), mch_billno: reward.RelevantTradeId, mch_id: "1520961881", wxappid: "wx20da9548445a2ca7", send_name: "东坡区丽群奶茶店", re_openid: reward.OpenId, total_amount: reward.RewardMoney, total_num: 1, wishing: "感谢你的推荐,请收下这笔推广佣金!", client_ip: "49.76.219.137", act_name: "推广赚佣金", remark: reward.Description); SendLuckMoney("EA62B75D5D3941C3A632B8F18C7B3575", redpack); } }
/// <summary> /// Маке аt least one possible way out of the maze /// </summary> /// <param name="generatedGrid">Genereted game field</param> /// <param name="player">Player member</param> public void MakeAtLeastOneExitReachable(IGrid generatedGrid, IPlayer player) { DefaultRandomGenerator random = DefaultRandomGenerator.Instance(); int[] dirX = { 0, 0, 1, -1 }; int[] dirY = { 1, -1, 0, 0 }; int numberOfDirections = 4; while (this.IsGameOver(player, generatedGrid) == false) { int randomIndex = random.Next(0, numberOfDirections); var nextPosition = new Position(player.Position.X + dirX[randomIndex], player.Position.Y + dirY[randomIndex]); if (this.IsInsideGrid(nextPosition, generatedGrid)) { player.Position = nextPosition; generatedGrid.SetCell(player.Position.X, player.Position.Y, GlobalConstants.FreeCellSymbol); } } player.Position = new Position(generatedGrid.TotalRows / 2, generatedGrid.TotalCols / 2); generatedGrid.SetCell(generatedGrid.TotalRows / 2, generatedGrid.TotalCols / 2, GlobalConstants.PlayerSignSymbol); }