public IActionResult MedicalDecision(long emergencyId, string orientation, CodeColor codeColor = CodeColor.NoColor) { var user = _userService.GetCurrentUser(); var result = _medicalDecisionHistoryRest.Register(new MedicalDecisionHistoryModel { Description = orientation, Date = DateTime.Now, EmergencyId = emergencyId, EmployeeGuid = user.EmployeeGuid, EmployeeName = user.EmployeeName, CodeColor = codeColor }); if (!result.Success) { ViewBag.Error = result.Messages; LoadBag(); var resultE = _emergencyRest.Find(new EmergencyFilter { Id = emergencyId }); return(View("Index", resultE.Model)); } var resultEmergency = _emergencyRest.Find(new EmergencyFilter { Id = emergencyId }); LoadBag(); return(View("Index", resultEmergency.Model)); }
public void ValidResponses() { ReadOnlySpan <CodeColor> solution = new CodeColor[Rules.CodeSize] { Magenta, Purple, Yellow, Teal, }; Response response = Rules.CreateResponse(new[] { Magenta, Yellow, Teal, Orange }, solution); Assert.Equal(1, response.RedCount); Assert.Equal(2, response.WhiteCount); response = Rules.CreateResponse(new[] { Magenta, White, White, Orange }, solution); Assert.Equal(1, response.RedCount); Assert.Equal(0, response.WhiteCount); response = Rules.CreateResponse(new[] { White, Magenta, White, Orange }, solution); Assert.Equal(0, response.RedCount); Assert.Equal(1, response.WhiteCount); response = Rules.CreateResponse(new[] { White, Orange, White, Orange }, solution); Assert.Equal(0, response.RedCount); Assert.Equal(0, response.WhiteCount); response = Rules.CreateResponse(new[] { Magenta, Purple, Yellow, Teal }, solution); Assert.Equal(4, response.RedCount); Assert.Equal(0, response.WhiteCount); }
public override void GenerateCode() { var codeColors = new CodeColor[codeLength]; for (int i = 0; i < codeColors.Length; i++) { codeColors[i] = availableColors[0]; } var code = new Code(codeColors); Debug.LogFormat("Generated code: {0}", code.ToString()); CodeGeneratedEvent(code); }
private static ReadOnlyMemory <CodeColor> InputCode(string prompt) { var guess = new CodeColor[Rules.CodeSize]; while (true) { Console.Write($"{prompt} ({ColorChoices}): "); string guessLine = Console.ReadLine(); if (TryParseCode(guessLine, guess)) { return(guess); } } }
private static void CodeMaker() { CodeColor[] code = new CodeColor[Rules.CodeSize]; while (true) { Console.Write("Enter code (or leave blank to generate one): "); string codeLine = Console.ReadLine(); if (codeLine.Length == 0) { var random = new Random(); for (int i = 0; i < code.Length; i++) { code[i] = (CodeColor)random.Next(Rules.ColorCount); } break; } else if (TryParseCode(codeLine, code)) { break; } } Console.WriteLine("Your code is: {0}", string.Join(", ", code)); int breakerAttemptsCount = 0; while (true) { ReadOnlySpan <CodeColor> guess = InputCode("What is the code breaker's guess?").Span; var response = Rules.CreateResponse(guess, code); Console.WriteLine($"{response.RedCount} red pins, {response.WhiteCount} white pins."); if (response.RedCount == Rules.CodeSize) { Console.WriteLine("Game over. Code breaker wins."); break; } if (++breakerAttemptsCount == 10) { Console.WriteLine("Game over. YOU win."); break; } } }
public CodeValidationResult ValidateCode(Code codeGuess) { if (code == null) { throw new Exception("Tried to validate code without initializing the validator!"); } if (code.Length != codeGuess.Length) { throw new Exception("Tried to validate code that is different length!"); } ColorPositions colorPositions = new ColorPositions(availableColors); int countPositionsCorrect = 0; int countColorsCorrect = 0; for (int i = 0; i < code.Length; i++) { CodeColor colorGuess = codeGuess[i]; if (code.IsPositionValid(i, colorGuess)) { countPositionsCorrect++; } else { int nextColorIdx = colorPositions.GetLastColorPosition(colorGuess) + 1; int foundIdx = code.PositionOf(colorGuess, nextColorIdx); if (foundIdx >= 0) { colorPositions.SetLastColorPosition(colorGuess, foundIdx); countColorsCorrect++; } } } return(new CodeValidationResult(countPositionsCorrect == code.Length, countPositionsCorrect, countColorsCorrect)); }
public IActionResult RequestVehicle(long emergencyId, VehicleType vehicleType, CodeColor codeColor) { var user = _userService.GetCurrentUser(); var result = _emergencyRequiredVehicleRest.Register(new EmergencyRequiredVehicleModel { CodeColor = codeColor, Date = DateTime.Now, EmergencyId = emergencyId, Status = VehicleRequiredStatus.Opened, VehicleType = vehicleType, MedicalDecisionHistoryModel = new MedicalDecisionHistoryModel { Date = DateTime.Now, EmergencyId = emergencyId, EmployeeGuid = user.EmployeeGuid, EmployeeName = user.EmployeeName, CodeColor = codeColor, Description = "Solicitado veículo - " + vehicleType } }); LoadBag(); var resultEmergency = _emergencyRest.Find(new EmergencyFilter { Id = emergencyId }); if (!result.Success) { ViewBag.Error = result.Messages; LoadBag(); return(View("Index", resultEmergency.Model)); } return(View("index", resultEmergency.Model)); }
public int PositionOf(CodeColor color, int startIndex = 0) { return(colors.IndexOf(color, startIndex)); }
public bool IsPositionValid(int index, CodeColor color) { return(colors[index] == color); }
private void blueRdBtn_Checked(object sender, RoutedEventArgs e) { insCode = CodeColor.Blue; }
private void yellowRdBtn_Checked(object sender, RoutedEventArgs e) { insCode = CodeColor.Yellow; }
private void greenRdBtn_Checked(object sender, RoutedEventArgs e) { insCode = CodeColor.Green; }
private void redRdBtn_Checked(object sender, RoutedEventArgs e) { insCode = CodeColor.Red; }
public int GetLastColorPosition(CodeColor color) { return(colorPositions[color]); }
public void SetLastColorPosition(CodeColor color, int position) { colorPositions[color] = position; }