// This is the method where the computer guesses, no magic numbers here, can accept any Int32 valid input internal static void CompGuess(int min, int max) { lastCurrent = 0; numGuesses = 0; current = (max - min) / 2; Console.Clear(); ConsoleMenuPainter.TextColor(15, 1); Console.WriteLine($"\nThe computer guesses your number from {min} to {max}\n"); ConsoleMenuPainter.TextColor(); Console.WriteLine("Enter your whole number (I am not going to use this to guess, only to lock in your number."); Console.Write("I would NEVER think *you* would try to trick or cheat, but some would): "); userNum = Elicit.WholeNumber(min, max); low = min; high = max; bool finished = false; do { BisectionSplit(max); finished = IsThisYourNumber(); } while (!finished); Console.WriteLine("\n\n"); ConsoleMenuPainter.TextColor(15, 1); Console.Write($"Your number was {current}, it took {numGuesses} times to guess it."); ConsoleMenuPainter.TextColor(); Console.Write("\nHit any key to go to the start menu"); Console.ReadKey(); }
//Intro text tells the user what this program does internal static void Intro() { ConsoleMenuPainter.TextColor(); Console.WriteLine("Welcome, this is a number guessing game"); Console.WriteLine("What would you like to do? (Make your selection with the \n" + "arrow or number key and then hit enter)"); }
public static void MenuMaxMinAlumnos(Aula a, ref int max, ref int min) { var menu = new Menu.Menu(new string[] { "Alberto", "Francisco", "Samuel", "Pablo", "Rodrigo", "Alfonso", "Roberto", "Adrian", "Carmen", "Silvia", "Maria", "Ana", "\nSalir" }); var menuPainter = new ConsoleMenuPainter(menu); int choice = -1; bool picked = false; while (choice != 12) { menuPainter.Paint(0, 0); var keyInfo = Console.ReadKey(); switch (keyInfo.Key) { case ConsoleKey.UpArrow: menu.moveUp(); break; case ConsoleKey.DownArrow: menu.moveDown(); break; case ConsoleKey.Enter: choice = menu.selectedIndex; picked = !picked; Console.ResetColor(); break; } if (picked) { switch (choice) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: Console.Clear(); a.MaxMin(ref max, ref min, a.alumnos[choice]); Console.WriteLine("La nota máxima de {0} es {1} y la mínima {2}.", a.alumnos[choice], max, min); Console.ReadKey(); goto default; default: picked = !picked; Console.Clear(); break; } } } }
public static void MenuNotasAlumnos(Aula a) { var menu = new Menu.Menu(new string[] { "Alberto", "Francisco", "Samuel", "Pablo", "Rodrigo", "Alfonso", "Roberto", "Adrian", "Carmen", "Silvia", "Maria", "Ana", "\nSalir" }); var menuPainter = new ConsoleMenuPainter(menu); int choice = -1; bool picked = false; while (choice != 12) { menuPainter.Paint(0, 0); var keyInfo = Console.ReadKey(); switch (keyInfo.Key) { case ConsoleKey.UpArrow: menu.moveUp(); break; case ConsoleKey.DownArrow: menu.moveDown(); break; case ConsoleKey.Enter: choice = menu.selectedIndex; picked = !picked; Console.ResetColor(); break; } if (picked) { switch (choice) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: Console.Clear(); Interfaz.ShowNotasAlumno(a, a.alumnos[choice]); //a.NotasAlumno(a.alumnos[choice]); Console.ReadKey(); goto default; default: picked = !picked; Console.Clear(); break; } } } }
// This gets the user defined values for the user to guess between internal static void UserValuesHumanGuess() { Console.Clear(); ConsoleMenuPainter.TextColor(15, 1); Console.WriteLine("You enter the limit numbers, computer picks and you guess"); ConsoleMenuPainter.TextColor(); Console.Write("\nEnter the lower: "); int min = Elicit.WholeNumber(int.MinValue + 2, int.MaxValue - 1); Console.Write("\nEnter the upper number: "); int max = Elicit.WholeNumber(min + 1, int.MaxValue); HumanGuesses(min, max); }
// This gets user defined values for the computer to guess between internal static void UserValues() { Console.Clear(); ConsoleMenuPainter.TextColor(15, 1); Console.WriteLine("The computer guesses your number from values you define"); ConsoleMenuPainter.TextColor(); Console.Write("\nEnter the lower: "); int min = Elicit.WholeNumber(int.MinValue + 2, int.MaxValue - 1); Console.Write("\nEnter the upper number: "); int max = Elicit.WholeNumber(min + 1, int.MaxValue); CompGuess(min, max); }
public static void MenuNotasAsignaturas(Aula a) { var menu = new Menu.Menu(new string[] { "Matematicas", "Lengua", "Ciencias", "Geografia", "\nSalir" }); var menuPainter = new ConsoleMenuPainter(menu); int choice = -1; bool picked = false; while (choice != 4) { menuPainter.Paint(0, 0); var keyInfo = Console.ReadKey(); switch (keyInfo.Key) { case ConsoleKey.UpArrow: menu.moveUp(); break; case ConsoleKey.DownArrow: menu.moveDown(); break; case ConsoleKey.Enter: choice = menu.selectedIndex; picked = !picked; Console.ResetColor(); break; } if (picked) { switch (choice) { case 0: case 1: case 2: case 3: Console.Clear(); Interfaz.ShowNotasMateria(a, (Aula.Asignaturas)choice); //a.NotasMateria((Aula.Asignaturas)choice); Console.ReadKey(); goto default; default: picked = !picked; Console.Clear(); break; } } } }
static void Main(string[] args) { Directivo d = new Directivo("Alberto", "Paz García", "39492832", 23, "Horno de almas", 666); Empleado e = new Empleado("Pablo", "Blanco", "34629323", 20, 200, "636363636"); EmpleadoEspecial es = new EmpleadoEspecial("Sergio", "Martin", "12312312", 20, 2000, "363636363"); var menu = new Menu.Menu(new String[] { "Visualizar datos directivo", "Visualizar datos empleado", "Visualizar datos empleado especial", "Salir" }); var menuPainter = new ConsoleMenuPainter(menu); int choice = -1; bool picked = false; while (choice != 3) { menuPainter.Paint(0, 0); var keyInfo = Console.ReadKey(); switch (keyInfo.Key) { case ConsoleKey.UpArrow: menu.moveUp(); break; case ConsoleKey.DownArrow: menu.moveDown(); break; case ConsoleKey.Enter: choice = menu.selectedIndex; picked = true; Console.ResetColor(); break; } if (picked) { switch (choice) { case 0: mostrarDatos(d); goto default; case 1: mostrarDatos(e); goto default; case 2: mostrarDatos(es); goto default; default: picked = !picked; Console.Clear(); break; } } } }
static void Main(string[] args) { Hashtable ips = new Hashtable(); ips.Add("192.168.0.20", 4); ips.Add("0.0.0.0", 12); ips.Add("32.32.32.32", 32); var menu = new Menu.Menu(new String[] { "Visualizar tabla", "Visualizar un elemento", "Introducir un elemento ", "Salir" }); var menuPainter = new ConsoleMenuPainter(menu); int choice = -1; bool picked = false; while (choice != 3) { menuPainter.Paint(0, 0); var keyInfo = Console.ReadKey(); switch (keyInfo.Key) { case ConsoleKey.UpArrow: menu.moveUp(); break; case ConsoleKey.DownArrow: menu.moveDown(); break; case ConsoleKey.Enter: choice = menu.selectedIndex; picked = !picked; Console.ResetColor(); break; } if (picked) { switch (choice) { case 0: MostrarTabla(ips); goto default; case 1: MostrarElemento(ips); goto default; case 2: IntroducirElemento(ips); goto default; default: picked = !picked; Console.Clear(); break; } } } }
// Checks the high/low values with error checking for "cheating" private static string HighOrLow() { Console.Write($"The number {current} was not your number. Was it High or Low? (H/L): "); do { var keyInfo = Console.ReadKey(true); switch (keyInfo.Key) { case ConsoleKey.H: Console.ForegroundColor = ConsoleColor.Green; Console.Write("H"); ConsoleMenuPainter.TextColor(); Console.WriteLine(); if (userNum > current) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(); Console.WriteLine($"Are you SURE about that? You said {current} was HIGHER than {userNum}"); ConsoleMenuPainter.TextColor(); return("Error"); } return("High"); case ConsoleKey.L: Console.ForegroundColor = ConsoleColor.Green; Console.Write("L"); ConsoleMenuPainter.TextColor(); Console.WriteLine(); if (userNum < current) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(); Console.WriteLine($"Are you SURE about that? You said {current} was LOWER than {userNum}"); ConsoleMenuPainter.TextColor(); return("Error"); } return("Low"); default: break; } }while (true); }
// Business logic of the user guessing what the number is internal static void HumanGuesses(int low, int high) { Random rand = new Random(); int compNum = rand.Next(low, high + 1); bool done = false; numGuesses = 0; Console.Clear(); ConsoleMenuPainter.TextColor(15, 1); Console.WriteLine($"\nYou guess the computer's number from {low} to {high}"); ConsoleMenuPainter.TextColor(); Console.WriteLine($"OK, I have guessed my number from {low} to {high}!"); do { Console.Write($"Whole numbers from {low} to {high}, what is your guess: "); userNum = Elicit.WholeNumber(low, high); numGuesses++; Console.WriteLine(); if (userNum == compNum) { ConsoleMenuPainter.TextColor(15, 1); Console.WriteLine($"Good guess! My number was {compNum}."); Console.WriteLine($"You got it in {numGuesses} guesses."); ConsoleMenuPainter.TextColor(); Console.WriteLine("Hit any key to continue back to the main menu."); Console.ReadKey(); done = true; } if (userNum > compNum) { Console.WriteLine($"Your guess of {userNum} was too high"); } if (userNum < compNum) { Console.WriteLine($"Your guess of {userNum} was too low"); } } while (!done); }
public void MoveDown() => SelectedIndex = Math.Min(SelectedIndex + 1, Items.Count - 1); // Rör dig ett steg neråt om du inte är på lägsta nivån public Menu GetMenu(Menu menu, string header) { var menuPainter = new ConsoleMenuPainter(menu); // Skapar meny med hjälp av klassen Console.Clear(); // Så att consolen alltid ser likadan ut Console.WriteLine(header); // Skriv ut header for (int i = 0; i <= header.Length; i++) { Console.Write('-'); } bool done = false; do { menuPainter.Paint(); // Skriver ut menyn var keyInfo = Console.ReadKey(); // Läser av tangentnedtryckning switch (keyInfo.Key) { // Switch argument för de olika tangenterna case ConsoleKey.UpArrow: menu.MoveUp(); break; case ConsoleKey.DownArrow: menu.MoveDown(); break; case ConsoleKey.Enter: done = true; break; } }while (!done); // Om enter har tryckts gå ur meny loopen return(menu); }
// Checkes to make sure the whole number input is in a valid range internal static int WholeNumber(int min = 1, int max = 10) { int userChoice = 0; string numString = ""; bool done = false; do { Console.ForegroundColor = ConsoleColor.Green; numString = Console.ReadLine(); ConsoleMenuPainter.TextColor(); try { userChoice = int.Parse(numString); if (userChoice >= min && userChoice <= max) { done = true; } else { Console.ForegroundColor = ConsoleColor.Red; Console.Write($"That is not what we were looking for. Please enter a number {min} to {max}: "); ConsoleMenuPainter.TextColor(); } } catch (Exception) { Console.ForegroundColor = ConsoleColor.Red; Console.Write($"That is not what we were looking for. Please enter a number {min} to {max}: "); ConsoleMenuPainter.TextColor(); } } while (!done); return(userChoice); }
public static string CallMenu(Menu menu, ref List <string> pageTaskStatus, ref int currentPage) //this does the work of setting up the menu display and instructions to the user { Console.Clear(); var menuPainter = new ConsoleMenuPainter(menu); string selectionChoice = ""; bool done = false; Console.WriteLine("'a' to add a task | 'c' to mark it complete"); Console.WriteLine("'i' marks it incomplete | 'q' or 'Enter' exits"); Console.WriteLine(" Up and Down arrow keys move through the list"); Console.WriteLine(" Left and Right arrow keys to move between pages"); do { menuPainter.Paint(5, 5, ref pageTaskStatus, ref currentPage); var keyInfo = Console.ReadKey(true); //read inputs and sends back the response switch (keyInfo.Key) { case ConsoleKey.UpArrow: menu.MoveUp(); break; case ConsoleKey.DownArrow: menu.MoveDown(); break; case ConsoleKey.RightArrow: if (currentPage < MaxPage.maxPage) { selectionChoice = "PageUp"; done = true; } break; case ConsoleKey.LeftArrow: if (currentPage > 0) { selectionChoice = "PageDown"; done = true; } break; case ConsoleKey.A: selectionChoice = "Add"; done = true; break; case ConsoleKey.C: selectionChoice = "Completed"; done = true; break; case ConsoleKey.I: selectionChoice = "Incomplete"; done = true; break; case ConsoleKey.Q: selectionChoice = "Quit"; done = true; break; case ConsoleKey.Enter: selectionChoice = "Quit"; done = true; break; } }while (!done); return(selectionChoice); }
// A final goodbye for the user internal static void ClosingMessage() { Console.Clear(); Console.WriteLine("\n\nThanks! Have a Great day!\n\n\n"); ConsoleMenuPainter.TextColor(); }
static void Main(string[] args) { Aula a = new Aula(); var menu = new Menu.Menu(new string [] { "Calcular media del aula", "Media de un alumno", "Media asignatura", "Ver notas alumno", "Ver notas asignatura", "Nota maxima y minima alumno", "Aprobados", "Ver tabla entera", "Salir" }); var menuPainter = new ConsoleMenuPainter(menu); int choice = -1; bool picked = false; while (choice != 8) { menuPainter.Paint(0, 0); var keyInfo = Console.ReadKey(); switch (keyInfo.Key) { case ConsoleKey.UpArrow: menu.moveUp(); break; case ConsoleKey.DownArrow: menu.moveDown(); break; case ConsoleKey.Enter: choice = menu.selectedIndex; picked = !picked; Console.ResetColor(); break; } if (picked) { switch (choice) { case 0: Console.Clear(); Console.WriteLine("Media de la tabla: {0}", a.MediaAula()); Console.ReadKey(); goto default; case 1: Console.Clear(); MenuMediaAlumnos(a); goto default; case 2: Console.Clear(); MenuMediaAsignaturas(a); goto default; case 3: Console.Clear(); MenuNotasAlumnos(a); goto default; case 4: Console.Clear(); MenuNotasAsignaturas(a); goto default; case 5: Console.Clear(); int max = 0; int min = 0; MenuMaxMinAlumnos(a, ref max, ref min); goto default; case 6: Console.Clear(); Interfaz.ShowSoloAporbados(a); Console.ReadKey(); goto default; case 7: Console.Clear(); Interfaz.ShowAula(a); Console.ReadKey(); goto default; default: picked = !picked; Console.Clear(); break; } } } }
// Check to see if this is the right number guessed, error checking included for edge cases and "cheating" private static bool IsThisYourNumber() { Console.Write($"Is {current} your number? (Y/N): "); do { var keyInfo = Console.ReadKey(true); switch (keyInfo.Key) { case ConsoleKey.N: Console.ForegroundColor = ConsoleColor.Green; Console.Write("N"); ConsoleMenuPainter.TextColor(); if (userNum == current) { numGuesses++; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"\nYes it is! You said {userNum} originally!"); ConsoleMenuPainter.TextColor(); Console.Write($"Looks like I guessed it! Cheater :)"); return(true); } Console.WriteLine(); String highlow = HighOrLow(); switch (highlow) { case "High": high = current; numGuesses++; return(false); case "Low": low = current; numGuesses++; return(false); case "Error": return(false); default: break; } break; case ConsoleKey.Y: Console.ForegroundColor = ConsoleColor.Green; Console.Write("Y"); ConsoleMenuPainter.TextColor(); if (current != userNum) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"\nYou changed your number! You said {userNum} originally!"); ConsoleMenuPainter.TextColor(); Console.WriteLine($"Lets try that again."); Console.WriteLine(); return(false); } numGuesses++; return(true); default: break; } } while (true); }