private static Game RandomizeBoard(byte failedAttempts) { var game = new RandomGame(); Game solution = null; try { solution = game.Solve(); } catch (UnsolvableSudokuException) { const int maxAllowedAttempts = 100; if (failedAttempts < maxAllowedAttempts) { return(RandomizeBoard(++failedAttempts)); } else { throw new GenerateSudokuFailedException(); } } return(solution); }
public void RandomBowl() { var game = new RandomGame(); var roll = game.Bowl(); Assert.AreEqual(roll.PinsBowled, game.Frames[0].RollOne.PinsBowled, $@"Expected Pins Bowled {roll.PinsBowled}, Actual Pins Bowled {game.Frames[0].RollOne.PinsBowled}"); }
public void RandomBowl_FrameSet() { var game = new RandomGame(); var roll = game.Bowl(); var frameSetPinsBowled = game.FrameSet.Where(p => p == 1).Sum(); Assert.AreEqual(roll.PinsBowled, game.Frames[0].RollOne.PinsBowled, $@"Expected Pins Bowled {roll.PinsBowled}, Actual Pins Bowled {game.Frames[0].RollOne.PinsBowled}"); }
public void OneRandomFrame() { // Track the random generated numbers to validate the frame total. var game = new RandomGame(); var rollOnePinsBowled = game.Bowl().PinsBowled; var rollTwoPinsBowled = game.Bowl().PinsBowled; var score = rollOnePinsBowled + rollTwoPinsBowled; var frameTotal = rollOnePinsBowled + rollTwoPinsBowled; Assert.AreEqual(score, game.Score, $@"Expected score {score} Game score {game.Score}"); Assert.AreEqual(frameTotal, game.Frames[0].Total, $@"Expected total {frameTotal} Frame total {game.Frames[0].Total}"); }
public static void SaveGame(RandomGame game, Player p1, Player p2) { float reward = 0; double mod1 = game.result1.MineralValueKilled - game.result2.MineralValueKilled; mod1 = mod1 / 1000; double mod2 = game.result1.DamageDone - game.result2.DamageDone; mod2 = mod2 / 10000; float rewardp1 = (float)mod1; rewardp1 += (float)mod2; float rewardp2 = (float)mod1 * -1; rewardp2 -= (float)mod2; if (game.Result == 0) { rewardp1 += 1; rewardp2 += 1; } else if (game.Result == 1) { rewardp1 += 2; rewardp2 += 0; } else if (game.Result == 2) { rewardp1 += 0; rewardp2 += 2; } List <string> presult = new List <string>(); //presult.Add(rewardp1 + "," + BBuild.PrintMatrix(game.player1.GetMatrix(p1))); //presult.Add(rewardp2 + "," + BBuild.PrintMatrix(game.player2.GetMatrix(p2))); lock (locker) { File.AppendAllLines(mlgamesFile, presult); } }
public void RandomBowl_GameIsFinished() { var isFinished = true; var game = new RandomGame(); var roll = game.Bowl(); for (int i = 0; i < 19; i++) { roll = game.Bowl(); } // Is an extra roll warranted? if (game.IsExtraRoll) { roll = game.Bowl(); } Assert.AreEqual(isFinished, game.IsFinished, $@"Expected Game Finished {isFinished}, Actual Game Finished {game.IsFinished}"); Assert.AreEqual(isFinished, game.IsFinished, $@"Expected Game Finished {isFinished}, Actual Game Finished {game.IsFinished}"); }
public async Task RunGameMenuAsync() { string logo = @" _____ _ | __ \ | | | | \/ __ _ _ __ ___ ___ _ __ ___ ___ __| | ___ | | __ / _` | '_ ` _ \ / _ \ | '_ ` _ \ / _ \ / _` |/ _ \ | |_\ \ (_| | | | | | | __/ | | | | | | (_) | (_| | __/ \____/\__,_|_| |_| |_|\___| |_| |_| |_|\___/ \__,_|\___| "; string[] options = new string[] { "Random game", "Private game", "Training with bot", "Show personal statistic", "Back" }; Menu gameMenu = new Menu(logo, options); int selected = gameMenu.Run(); Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); PersonalStatistic ps = new PersonalStatistic(auth); switch (selected) { case 0: Console.Clear(); RandomGame randomGame = new RandomGame(auth); await randomGame.RandomGameAsync("api/RandomPlay", "game"); break; case 1: Console.Clear(); PrivateGame privateGame = new PrivateGame(auth); await privateGame.PrivateGameAsync("api/PrivatePlay", "game"); break; case 2: Console.Clear(); GameWithBot gameWithBot = new GameWithBot(auth); await gameWithBot.BotGame("api/BotPlay"); break; case 3: Console.WriteLine(auth.Stat); Console.ReadKey(); break; case 4: Console.Clear(); stopWatch.Stop(); TimeSpan timeSpan = stopWatch.Elapsed; TimeSpan ts = TimeSpan.Parse(auth.Stat.TimeInGame).Multiply(100); auth.Stat.TimeInGame = ts.Add(timeSpan).ToString(); await ps.PostStatsAsync(auth.Stat); return; } //stopWatch.Stop(); //TimeSpan ts = stopWatch.Elapsed; //stat.TimeInGame.Add(ts); //await PostStatsAsync(stat); await RunGameMenuAsync(); }
public static RandomGame RandomFight(int minerals = 2000, bool save = false) { Player _player = new Player(); _player.Name = "Player#1"; _player.Pos = 1; _player.ID = paxgame.GetPlayerID(); _player.Race = UnitRace.Terran; _player.inGame = true; _player.Units = new List <Unit>(UnitPool.Units.Where(x => x.Race == _player.Race)); Player _opp = new Player(); _opp.Name = "Player#2"; _opp.Pos = 4; _opp.ID = paxgame.GetPlayerID(); _opp.Race = UnitRace.Terran; _opp.inGame = true; _opp.Units = new List <Unit>(UnitPool.Units.Where(x => x.Race == _opp.Race)); GameHistory game = new GameHistory(); _player.Game = game; _player.Game.ID = paxgame.GetGameID(); _player.Game.Players.Add(_player); _player.Game.Players.Add(_opp); _opp.Game = _player.Game; _player.Units = new List <Unit>(UnitPool.Units.Where(x => x.Race == _player.Race && x.Cost > 0)); _opp.Units = new List <Unit>(UnitPool.Units.Where(x => x.Race == _opp.Race && x.Cost > 0)); _player.MineralsCurrent = minerals; _opp.MineralsCurrent = minerals; OppService.BPRandom(_player).GetAwaiter().GetResult(); OppService.BPRandom(_opp).GetAwaiter().GetResult(); BBuild bplayer = new BBuild(_player); BBuild bopp = new BBuild(_opp); bplayer.SetBuild(_player); bopp.SetBuild(_opp); GameService.GenFight(_player.Game).GetAwaiter().GetResult(); StatsService.GenRoundStats(game, false).GetAwaiter().GetResult(); Stats result = new Stats(); Stats oppresult = new Stats(); result.DamageDone = game.Stats.Last().Damage[1]; result.MineralValueKilled = game.Stats.Last().Killed[1]; oppresult.DamageDone = game.Stats.Last().Damage[0]; oppresult.MineralValueKilled = game.Stats.Last().Killed[0]; RandomResult result1 = new RandomResult(); result1.DamageDone = oppresult.DamageDone; result1.MineralValueKilled = oppresult.MineralValueKilled; RandomResult result2 = new RandomResult(); result2.DamageDone = result.DamageDone; result2.MineralValueKilled = result.MineralValueKilled; RandomGame rgame = new RandomGame(); rgame.player1 = bplayer; rgame.player2 = bopp; rgame.result1 = result1; rgame.result2 = result2; rgame.Result = game.Stats.Last().winner; if (save == true) { SaveGame(rgame, _player, _opp); } return(rgame); }