public static void Start() { Console.Write("Wprowadź pojemność naczyń odzielone spacją: "); string pojemnosci = Console.ReadLine(); bool rezultat = Naczynie.Stworz(pojemnosci); Instrukcja(); }
public static void Instrukcja() { Console.WriteLine(".--------| Informacje |--------."); Console.WriteLine("| <Numer> : ↑ - Napełnij |"); Console.WriteLine("| <Numer> : ↓ - Opróżnij |"); Console.WriteLine("| <Numer> : <Numer2> - Przelej |"); Console.WriteLine("| N - Nowe |"); Console.WriteLine("| K - Koniec |"); Console.WriteLine("'------------------------------'"); Console.WriteLine("\nStan początkowy: "); Naczynie.Wyswietl(); }
public static bool Stworz(string arg) { string[] tab = arg.Split(" "); if (tab.Length >= 2) { Naczynia = new Naczynie[tab.Length]; for (int i = 0; i < tab.Length; i++) { Naczynia[i] = new Naczynie(int.Parse(tab[i])); } } return(true); }
public static void Przelej(int n1, int n2) { Naczynie naczynie1 = Naczynia[n1 - 1]; Naczynie naczynie2 = Naczynia[n2 - 1]; int brakuje = naczynie2.pojemnosc - naczynie2.zawartosc; if (naczynie1.zawartosc >= brakuje) { naczynie2.zawartosc = naczynie2.zawartosc + brakuje; naczynie1.zawartosc = naczynie1.zawartosc - brakuje; } else { naczynie2.zawartosc = naczynie2.zawartosc + naczynie1.zawartosc; naczynie1.zawartosc = 0; } }
static void Main(string[] args) { Start(); bool ok = true; while (ok) { Console.Write("Operacja: "); ConsoleKeyInfo kl = Console.ReadKey(); if (int.TryParse(kl.KeyChar.ToString(), out int numer)) { if (numer < 0 || Naczynie.Naczynia.Length < numer) { Console.WriteLine("\nNiedozwolona operacja! Indeks naczynia poza zakresem."); continue; } Console.Write(" : "); ConsoleKeyInfo kl2 = Console.ReadKey(); if (int.TryParse(kl2.KeyChar.ToString(), out int numer2)) { if (numer2 < 0 || Naczynie.Naczynia.Length < numer2) { Console.WriteLine("\nNiedozwolona operacja! Indeks naczynia poza zakresem."); continue; } Naczynie.Przelej(numer, numer2); Naczynie.Wyswietl(); } else { switch (kl2.Key) { case ConsoleKey.UpArrow: Console.Write("↑"); Naczynie.Naczynia[numer - 1].Napelnij(); Naczynie.Wyswietl(); break; case ConsoleKey.DownArrow: Console.Write("↓"); Naczynie.Naczynia[numer - 1].Oproznij(); Naczynie.Wyswietl(); break; default: Console.WriteLine("\nNiedozwolona operacja! Przycisk spoza instrukcji."); break; } } } else { switch (kl.Key) { case ConsoleKey.N: Restart(); break; case ConsoleKey.K: ok = false; break; default: Console.WriteLine("\nNiedozwolona operacja! Przycisk spoza instrukcji."); break; } } } }