Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Threading;
- namespace ConsoleMenu
- {
- enum MenuOptions { Play = 0, Credits, Exit }
- class Menu
- {
- public MenuOptions SelectedItem { get; set; }
- public const string menuText = "{0,-3}Play\n{1,-3}Credits\n{2,-3}Exit";
- public Menu()
- {
- SelectedItem = MenuOptions.Play;
- }
- public MenuOptions ShowMenu()
- {
- Console.CursorVisible = false;
- ConsoleKeyInfo key;
- SelectedItem = MenuOptions.Play;
- do
- {
- Console.Clear();
- Console.WriteLine(menuText,
- GetPrefix(SelectedItem == MenuOptions.Play),
- GetPrefix(SelectedItem == MenuOptions.Credits),
- GetPrefix(SelectedItem == MenuOptions.Exit));
- key = Console.ReadKey();
- if (key.Key == ConsoleKey.UpArrow)
- SelectedItem = MenuUp(SelectedItem);
- else if (key.Key == ConsoleKey.DownArrow)
- SelectedItem = MenuDown(SelectedItem);
- } while (key.Key != ConsoleKey.Enter);
- Console.CursorVisible = true;
- return SelectedItem;
- }
- public string GetPrefix(bool selected)
- {
- return selected ? ">" : "";
- }
- public MenuOptions MenuUp(MenuOptions current)
- {
- if (current == MenuOptions.Play)
- return MenuOptions.Exit;
- else return current - 1;
- }
- public MenuOptions MenuDown(MenuOptions current)
- {
- if (current == MenuOptions.Exit)
- return MenuOptions.Play;
- else return current + 1;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement