public void Genrate_should_return_nuber_with_demo_prefix() { // Setup _dateTimeProviderMock.Setup(f => f.Now).Returns(new DateTime(2020, 12, 24)); _configurationMock.Setup(f => f["Environment"]).Returns("DEMO"); // Act var result = _sut.GenerateNumber(); // Assert.AreEqual("DEMO/Or/24.12.2020 00:00:00", result); }
public void ShouldBeFiveInLength() { var generator = new NumberGenerator(); string number = generator.GenerateNumber(); Assert.That(number.Length, Is.EqualTo(5)); }
public override int GenerateNumber() { if (_numberGenerator == null) { _numberGenerator = new NumberGenerator(); } return(_numberGenerator.GenerateNumber()); }
public void GenerateNumberTestCheckNumberLength() { for (int j = 0; j < 50000; j++) { string actual = NumberGenerator.GenerateNumber(); for (int i = 0; i < actual.Length - 1; i++) { Assert.AreEqual(4, actual.Length); } } }
public void GenerateNumberTestIfNumbersAreDifferent() { for (int j = 0; j < 50000; j++) { string actual = NumberGenerator.GenerateNumber(); for (int i = 0; i < actual.Length - 1; i++) { Assert.AreNotEqual(actual[i], actual[i + 1]); } } }
public Dictionary <Tuple <int, int>, Transform> Generate() { Debug.Log("Creating Map"); int numberNonSeaTile = NumberNonSeaTiles(); tileMap = new Dictionary <Tuple <int, int>, Transform>(); List <Tile> allTile = RandomGenerateTile(); int[] numbersOfTIles = NumberGenerator.GenerateNumber(allTile.Count); // Create map holder object string holderName = "Generated Map"; if (mapGeneratorTransform.Find(holderName)) { DestroyImmediate(mapGeneratorTransform.Find(holderName).gameObject); } Transform mapHolder = new GameObject(holderName).transform; mapHolder.parent = mapGeneratorTransform; mapHolder.position = new Vector3(0, 0, 0); int k = 0; Tile tile; Debug.Log("generate Tiles"); for (int x = 0; x < (int)mapSize.x; x++) { for (int y = 0; y < (int)mapSize.y; y++) { if (x != (int)mapSize.x - 1 || Helper.IsOdd(y)) { tile = allTile[k]; Vector3 tilePosition = CoordOfTilePosition(x, y); Tile newTile = Instantiate(tile, tilePosition * scale, Quaternion.Euler(Vector3.right)) as Tile; newTile.transform.parent = mapHolder; newTile.Init(false, numbersOfTIles[k]); newTile.transform.localScale *= scale; tileMap.Add(Tuple.Create(x, y), newTile.transform); k++; } } } return(tileMap); }
public void GenerateNumberTestIsValidDigitInRange() { for (int j = 0; j < 50000; j++) { string actual = NumberGenerator.GenerateNumber(); for (int i = 0; i < actual.Length - 1; i++) { if (int.Parse(actual[i].ToString()) > 9 && int.Parse(actual[i].ToString()) < 0) { Assert.Fail("Invalid Number"); } } } }
public void GenerateNumber() { //生成当前时间格式 string currentTime = DateTime.Now.ToString("yyyyMMdd"); //生成编号 NumberGenerator generator = new NumberGenerator(); string number = generator.GenerateNumber("NO", currentTime, typeof(GenerateNumberTests).Name, 3, null); //预期编号前缀 string expectedNoPrefix = string.Format("NO{0}", currentTime); //断言 Assert.IsTrue(number.Contains(expectedNoPrefix)); }
public ActionResult Create(int id, TransactionModel transactionModel) { DataTable dtblDataProduct = new DataTable(); using (SqlConnection sqlcon2 = new SqlConnection(connectionString)) { sqlcon2.Open(); string query = "SELECT * FROM ProductTable WHERE ProductTable.ProductID = @ProductID"; SqlDataAdapter sqlDa2 = new SqlDataAdapter(query, sqlcon2); sqlDa2.SelectCommand.Parameters.AddWithValue("@ProductID", id); sqlDa2.Fill(dtblDataProduct); } NumberGenerator generator = new NumberGenerator(); string number = generator.GenerateNumber("TSNBR"); using (SqlConnection sqlcon = new SqlConnection(connectionString)) { var hasil = transactionModel.Quantity * (int)dtblDataProduct.Rows[0]["Price"]; var stok_barang = Convert.ToInt32(dtblDataProduct.Rows[0]["Stock"]) - transactionModel.Quantity; sqlcon.Open(); string query = "INSERT INTO TransactionTable VALUES(@ProductID, @Quantity, @TransactionNumber, @AccountID, @Total, CURRENT_TIMESTAMP)"; string query2 = "UPDATE ProductTable SET Stock = @Stock WHERE ProductID = @ProductID"; SqlCommand sqlCmd = new SqlCommand(query, sqlcon); SqlCommand sqlCmd2 = new SqlCommand(query2, sqlcon); sqlCmd.Parameters.AddWithValue("@ProductID", dtblDataProduct.Rows[0]["ProductID"]); sqlCmd2.Parameters.AddWithValue("@ProductID", dtblDataProduct.Rows[0]["ProductID"]); sqlCmd.Parameters.AddWithValue("@Quantity", transactionModel.Quantity); sqlCmd.Parameters.AddWithValue("@TransactionNumber", number); sqlCmd.Parameters.AddWithValue("@AccountID", Convert.ToInt32(Session["id"])); sqlCmd.Parameters.AddWithValue("@Total", hasil); sqlCmd2.Parameters.AddWithValue("@Stock", stok_barang); sqlCmd.ExecuteNonQuery(); sqlCmd2.ExecuteNonQuery(); } return(RedirectToAction("Index", "Home")); }
private void CheckIfSpecialSquare(MapSection[][] map, int i, int j, int positionNumber, Character character, int roomId) { //Character moves back by 3 positions if he is on GoBackSquare if (map[i][j].isGoBackSquare) { Console.WriteLine("Oops, it seems you stopped on a special square..."); positionNumber -= 3; if (j >= 3) { if (j == 3) { j = 0; } else { j -= 3; } } else { var toTakeDown = 3 - j; if (i == 0) { throw new ArgumentException($"Cannot move back from {i}{j}"); } else { i -= 1; j = map[i].Length - 1; toTakeDown--; j -= toTakeDown; } } positionNumber = map[i][j].Number; UpdateCharacterPositionInDb(character, map[i][j].X, map[i][j].Y, positionNumber, roomId); Console.WriteLine($"{character.Name} moves back by 3 positions to square number {positionNumber} :)"); CheckIfSpecialSquare(map, i, j, positionNumber, character, roomId); } //Character goes forward by 3 positions if he is on GoBackSquare else if (map[i][j].isGoForwardSquare) { Console.WriteLine("Oops, it seems you stopped on a special square..."); positionNumber += 3; if (j <= 6) { j += 3; } else //if(j != 9) { var thisRowAdd = 9 - j; var nextRowAdd = 3 - thisRowAdd; if (i == map.Length - 1) { throw new ArgumentException($"Cannot move forward from {i}{j}"); } else { i += 1; j = 0; if (j == 0) { nextRowAdd--; } j += nextRowAdd; } } positionNumber = map[i][j].Number; UpdateCharacterPositionInDb(character, map[i][j].X, map[i][j].Y, positionNumber, roomId); Console.WriteLine($"{character.Name} moves forward with 3 positions to square number {positionNumber} ^.^"); CheckIfSpecialSquare(map, i, j, positionNumber, character, roomId); } //ToDo else if (map[i][j].isMysterySquare) { Console.WriteLine("Oops, it seems you stopped on a special square..."); var num = numberGenerator.GenerateNumber(1, 3); if (num == 1) { //play mini game //Can be found in Miscellaneous/SpecialSquares/MysterySquare/MiniGameAction.cs MiniGameAction msa = new MiniGameAction(); msa.PlayMiniGame(isSingle); if (msa.DemolitionFalcons) { //All characters return to the first square var characters = context.GameCharacters.Where(g => g.GameId == roomId).ToList(); foreach (var charche in characters) { context.GameCharacters.FirstOrDefault(c => c.CharacterId == charche.CharacterId).CharacterPositionX = map[0][0].X; context.GameCharacters.FirstOrDefault(c => c.CharacterId == charche.CharacterId).CharacterPositionY = map[0][0].Y; context.GameCharacters.FirstOrDefault(c => c.CharacterId == charche.CharacterId).MapSectionNumber = map[0][0].Number; context.SaveChanges(); } } else if (msa.GoBack) { var toGoBackWith = msa.GoBackWith; positionNumber -= toGoBackWith; if (j >= toGoBackWith) { if (j == toGoBackWith) { j = 0; } else { j -= toGoBackWith; } } else { var toTakeDown = toGoBackWith - j; if (i == 0) { throw new ArgumentException($"Cannot move back from {i}{j}"); } else { i -= 1; j = map[i].Length - 1; toTakeDown--; j -= toTakeDown; } } positionNumber = map[i][j].Number; UpdateCharacterPositionInDb(character, map[i][j].X, map[i][j].Y, positionNumber, roomId); Console.WriteLine($"{character.Name} moves back by {toGoBackWith} positions to square number {positionNumber} :)"); CheckIfSpecialSquare(map, i, j, positionNumber, character, roomId); } else if (msa.MoveForward) { var toMoveForwardWith = msa.MoveForwardWith; positionNumber += toMoveForwardWith; if (j < map[i].Length - toMoveForwardWith) { j += toMoveForwardWith; } else //if(j != 9) { var thisRowAdd = 9 - j; var nextRowAdd = toMoveForwardWith - thisRowAdd; if (i == map.Length - 1) { throw new ArgumentException($"Cannot move forward from {i}{j}"); } else { i += 1; j = 0; if (j == 0) { nextRowAdd--; } j += nextRowAdd; } } positionNumber = map[i][j].Number; UpdateCharacterPositionInDb(character, map[i][j].X, map[i][j].Y, positionNumber, roomId); Console.WriteLine($"{character.Name} moves forward with {toMoveForwardWith} positions to square number {positionNumber} ^.^"); CheckIfSpecialSquare(map, i, j, positionNumber, character, roomId); } } else { var doubleChance = new DoubleChance(); var isSingle = true; doubleChance.StartDoubleChance(context, roomId, character, positionNumber, map, i, j, isSingle); } } //ToDo else if (map[i][j].isBonusSquare) { Console.WriteLine("Oops, it seems you stopped on a special square..."); Console.WriteLine($"{character.Name} is on a bonus square :)"); BonusSquareAction bsa = new BonusSquareAction(context, roomId, character); //Gets a random spell drawn with a special algorythm that allow the character to atack another character bsa.GetSpell(""); } }
public void PlayMiniGame(bool isSingle) { ExplainMiniGame(); int counter = 0; var numbers = new List <int>() { 0, 0, 0, 0, 0 }; Console.WriteLine($"So let the game begin"); var firstNumber = numberGenerator.GenerateNumber(2, 5); Console.WriteLine($"The first number generated was {firstNumber}"); numbers[counter] = firstNumber; DisplayPlayerNumbers(numbers); bool playerSuggestedCorrectly = true; counter++; while (counter != 4 && playerSuggestedCorrectly) { var numGenerated = numberGenerator.GenerateNumber(1, 6); var playersSuggestion = GetSuggestion(isSingle); while (numGenerated == numbers[counter - 1]) { numGenerated = numberGenerator.GenerateNumber(1, 6); } playerSuggestedCorrectly = CheckSuggestion(numGenerated, numbers, counter, playersSuggestion); numbers[counter] = numGenerated; DisplayPlayerNumbers(numbers); if (!playerSuggestedCorrectly) { if (counter == 1) { Console.WriteLine($"Sorry, you move 5 square backwards"); GoBack = true; GoBackWith = 5; } else if (counter == 2) { Console.WriteLine($"Sorry, you move 2 square backwards"); GoBack = true; GoBackWith = 2; } else if (counter == 3) { Console.WriteLine($"Welp, you ain't going anywhere!"); } Console.WriteLine($"Have better luck next time :)"); } counter++; } if (playerSuggestedCorrectly) { var finalNumber = numberGenerator.GenerateNumber(1, 6); while (finalNumber == numbers[counter - 1]) { finalNumber = numberGenerator.GenerateNumber(1, 6); } var playerSuggestion = GetSuggestion(isSingle); numbers[counter] = finalNumber; bool isCorrect = CheckSuggestion(finalNumber, numbers, counter, playerSuggestion); DisplayPlayerNumbers(numbers); if (isCorrect) { Console.WriteLine($"Congratulations! You have suggested all 5 numbers correctly and can proceed 5 squares forward."); MoveForward = true; MoveForwardWith = 5; } else { Console.WriteLine($"Well done kiddo, you are moving 2 square forward!"); Console.WriteLine($"Next time you might guess all 5 :)"); MoveForward = true; MoveForwardWith = 2; } if (numbers[0] == 3 && numbers[2] == 3 && numbers[4] == 3) { Console.WriteLine($"SURPRISEEEEEEEEE, DEMOLITION FALCONS!!!"); Console.WriteLine($"Despite proceeding this far in our mini game, your luck betrayed everyone in the game..."); Console.WriteLine($"Each character must go to the Start now :) :) :)"); DemolitionFalcons = true; } } }
public void StartDoubleChance(DemolitionFalconsDbContext context, int roomId, Character character, int positionNumber, MapSection[][] map, int i, int j, bool isSingle) { var demoMatrixRows = 3; var demoMatrixCols = 3; var firstNumTyped = 0; char[][] demoMatrix = new char[3][]; var isSecondChance = false; int num; var playGame = new PlayGame(context, numberGenerator); var counter = 1; for (int row = 0; row < demoMatrixRows; row++) { demoMatrix[row] = new char[demoMatrixCols]; for (int col = 0; col < demoMatrixCols; col++) { demoMatrix[row][col] = counter.ToString()[0]; counter++; } } //play double chance Console.WriteLine("Welcome to the Double Chance game! You have 9 hidden sayings. Choose one!"); var doubleChanceGame = new DoubleChance(); var matrix = doubleChanceGame.LoadDoubleChance(); Start: int numTyped; if (isSingle) { numTyped = numberGenerator.GenerateNumber(1, 10); while (numTyped == firstNumTyped) { numTyped = numberGenerator.GenerateNumber(1, 10); } goto SinglePlayer; } var isNumeric = int.TryParse(Console.ReadLine(), out numTyped); while (numTyped < 1 || numTyped > 9 || numTyped == firstNumTyped || !isNumeric) { if (firstNumTyped != 0) { Console.WriteLine($"Type a number from 1 to 9 which is different from {firstNumTyped}."); } Console.WriteLine("Type a number from 1 to 9"); isNumeric = int.TryParse(Console.ReadLine(), out numTyped); } SinglePlayer: char letter; if (numTyped >= 1 && numTyped <= 3) { letter = matrix[0][numTyped - 1]; demoMatrix[0][numTyped - 1] = letter; } else if (numTyped <= 6) { letter = matrix[1][numTyped - 4]; demoMatrix[1][numTyped - 4] = letter; } else { letter = matrix[2][numTyped - 7]; demoMatrix[2][numTyped - 7] = letter; } foreach (var row in demoMatrix) { Console.WriteLine(string.Join("{0}", $"[{string.Join(" | ", row)}]")); } if (letter == 'S') { if (!isSecondChance) { firstNumTyped = numTyped; BonusSquareAction bsa = new BonusSquareAction(context, roomId, character); //Gets a random spell drawn with a special algorythm that allow the character to atack another character var spell = bsa.RandomSpell(); Console.WriteLine($"Congrats you have received a new spell -> {spell.Name}. If you want to keep it type 'Y' and if you want a second chance type 'N'"); string response; if (isSingle) { response = TakeOrNot(); } else { response = Console.ReadLine(); while (response != "Y" && response != "N") { Console.WriteLine("Type 'Y' or 'N'"); response = Console.ReadLine(); } } if (response == "N") { isSecondChance = true; foreach (var row in demoMatrix) { Console.WriteLine(string.Join("{0}", $"[{string.Join(" | ", row)}]")); } goto Start; } else { bsa.GetSpell(spell.Name); } } else { Console.WriteLine("This was your second shot! Congrats you win a spell!"); BonusSquareAction bsa = new BonusSquareAction(context, roomId, character); bsa.GetSpell(""); } } else if (letter == 'F') { if (!isSecondChance) { num = numberGenerator.GenerateNumber(2, 6); var toMoveForwardWith = num; Console.WriteLine($"Congrats you can move {toMoveForwardWith} spaces forward if you wish. If so type 'Y' and if you want a second chance type 'N'"); string response; if (isSingle) { response = TakeOrNot(); } else { response = Console.ReadLine(); while (response != "Y" && response != "N") { Console.WriteLine("Type 'Y' or 'N'"); response = Console.ReadLine(); } } if (response == "N") { isSecondChance = true; foreach (var row in demoMatrix) { Console.WriteLine(string.Join("{0}", $"[{string.Join(" | ", row)}]")); } goto Start; } else { playGame.MoveForwardWith(toMoveForwardWith, positionNumber, map, i, j, roomId, character); } } else// is secondChance { num = numberGenerator.GenerateNumber(2, 6); var toMoveForwardWith = num; Console.WriteLine($"Congrats, this was your second shot. You can now move forward with {toMoveForwardWith} places if possible"); playGame.MoveForwardWith(toMoveForwardWith, positionNumber, map, i, j, roomId, character); } } else if (letter == 'B') { var toGoBackWith = numberGenerator.GenerateNumber(3, 8); if (!isSecondChance) { Console.WriteLine($"Sadly you have to move {toGoBackWith} places backwards if possible. You still have a second chance. If you want to go back type 'Y' or type 'N' for a second shot."); string response; if (isSingle) { response = TakeOrNot(); } else { response = Console.ReadLine(); while (response != "Y" && response != "N") { Console.WriteLine("Type 'Y' if you want to go back and 'N' for a second try."); response = Console.ReadLine(); } } if (response == "Y") { playGame.GoBackWith(toGoBackWith, positionNumber, map, i, j, roomId, character); } else { isSecondChance = true; foreach (var row in demoMatrix) { Console.WriteLine(string.Join("{0}", $"[{string.Join(" | ", row)}]")); } goto Start; } } else { num = numberGenerator.GenerateNumber(2, 6); var toMoveBackWith = num; Console.WriteLine($"Sorry this was your second shot. You will move with {toMoveBackWith} places backwards if possible."); playGame.GoBackWith(toMoveBackWith, positionNumber, map, i, j, roomId, character); } } }
public ActionResult Create(PemesananModel pemesananModel) { if (Session["id"] == null) { return(RedirectToAction("Masuk", "Pengguna")); } NumberGenerator generator = new NumberGenerator(); string number = generator.GenerateNumber("FT"); // Validasi => Tanggal Pemakaian Lapangan if (pemesananModel.Tanggal < DateTime.Now) { TempData["Error"] = "Tanggal pemakaian lapangan harus lebih besar dari tanggal sekarang"; return(RedirectToAction("Create", "Pemesanan")); } // Validasi => Jam Pemesanan if (pemesananModel.JamSelesai <= pemesananModel.JamMulai) { TempData["Error"] = "Jam selesai harus lebih besar dari jam mulai"; return(RedirectToAction("Create", "Pemesanan")); } DataTable exist = new DataTable(); using (SqlConnection sqlCon = new SqlConnection(connectionString)) { sqlCon.Open(); SqlDataAdapter sqlDa = new SqlDataAdapter("SELECT * FROM Pemesanan WHERE Tanggal = @Tanggal AND IDLapangan = @Lapangan AND format(JamSelesai, 'hh:mm') > format(@JamMulai, 'hh:mm') AND format(JamMulai, 'hh:mm') < format(@JamSelesai, 'hh:mm') AND (STATUS = 'Req' OR STATUS='Acc')", sqlCon); sqlDa.SelectCommand.Parameters.AddWithValue("@Tanggal", pemesananModel.Tanggal); sqlDa.SelectCommand.Parameters.AddWithValue("@JamMulai", pemesananModel.JamMulai); sqlDa.SelectCommand.Parameters.AddWithValue("@JamSelesai", pemesananModel.JamSelesai); sqlDa.SelectCommand.Parameters.AddWithValue("@Lapangan", pemesananModel.IDLapangan); sqlDa.Fill(exist); } // Validasi lapangan telah dipesan if (exist.Rows.Count > 0) { TempData["Error"] = "Lapangan telah dipesan"; return(RedirectToAction("Create", "Pemesanan")); } // Membuat pesanan using (SqlConnection sqlCon = new SqlConnection(connectionString)) { sqlCon.Open(); string query = "INSERT INTO Pemesanan(Tanggal, JamMulai, JamSelesai, IDLapangan, IDPelanggan,Status,NomorPemesanan,TanggalPemesanan) " + "VALUES (@Tanggal, @JamMulai,@JamSelesai,@IDLapangan,@IDPelanggan, 'Req', @NomorPemesanan,GETDATE())"; SqlCommand sqlCmd = new SqlCommand(query, sqlCon); sqlCmd.Parameters.AddWithValue("@Tanggal", pemesananModel.Tanggal); sqlCmd.Parameters.AddWithValue("@JamMulai", pemesananModel.JamMulai); sqlCmd.Parameters.AddWithValue("@JamSelesai", pemesananModel.JamSelesai); sqlCmd.Parameters.AddWithValue("@IDLapangan", pemesananModel.IDLapangan); sqlCmd.Parameters.AddWithValue("@IDPelanggan", Convert.ToInt32(Session["id"])); sqlCmd.Parameters.AddWithValue("@NomorPemesanan", number + Session["id"].ToString()); sqlCmd.ExecuteNonQuery(); } //Session.Remove("Error"); return(RedirectToAction("Index")); }