Da ich schon länger hier bin aber noch nie was im Coder-Bereich beigetragen habe,
hab ich nun vor dies zu ändern...
Ich hab mal anfangs meiner Ausbildung ein ConsolenProgramm gefunden ,
dass die "Matrix" verbildlicht....
dies habe ich nun nachprogrammiert und erweitert...
Verbesserungsvorschläge sind gewünscht!
Code:
using System; using System.Threading; namespace Matrix { class Program { static object thisLock = new object(); static void Main(string[] args) { Random r = new Random(); Thread[] threads = new Thread[15]; for (int i = 0; i < threads.Length; i++) { threads[i] = new Thread(StartMatrix); threads[i].Start(r); } Console.Read(); } static int iZufStartKoordinateX(Random r) { return r.Next(0, Console.WindowWidth - 1); } static int iZufStartKoordinateY(Random r) { return r.Next(0, Console.WindowHeight - 1); } static void StartMatrix(object obj) { bool bZahlen = false; bool bBuchstaben = false; bool bZeichen = false; bool bCyrill = false; Console.Clear(); Console.Write("Welche Zeichen möchten sie über die Konsole laufen lassen?\nZahlen: 1000\nBuchstaben: 0100\nZeichen: 0010\nCyrill: 0001\nMögliche Kombinationen: 1000,0100,0010,0001,0110,1010,1100,1110\n"); string strAuswahl = System.Console.ReadLine(); switch (strAuswahl) { case "1000": bZahlen = true; break; case "0100": bBuchstaben = true; break; case "0010": bZeichen = true; break; case "0001": bCyrill = true; break; case "0110": bBuchstaben = true; bZeichen = true; break; case "1010": bZahlen = true; break; case "1100": bZahlen = true; bBuchstaben = true; break; case "1110": bZahlen = true; bBuchstaben = true; bZeichen = true; break; default: Console.WriteLine("Wert ungueltig! es Wurde der Standartwert 1000 ausgewählt!"); bZahlen = true; Thread.Sleep(3000); break; } Console.Clear(); Random random = obj as Random; int x = iZufStartKoordinateX(random); int y = iZufStartKoordinateY(random); ConsoleColor hell = ConsoleColor.Green; ConsoleColor dunkel = ConsoleColor.DarkGreen; int geschw = random.Next(60, 100); while (true) { string sAusgabeZeichen = "0"; if (bZahlen && !bBuchstaben && !bZeichen) { sAusgabeZeichen = random.Next(0, 9).ToString(); } if (bZahlen && bBuchstaben && !bZeichen) { int iBuschstabeOderZahl = random.Next(0, 2); if (iBuschstabeOderZahl == 1) { sAusgabeZeichen = random.Next(0, 9).ToString(); } else { sAusgabeZeichen = ((char)('a' + random.Next(0, 26))).ToString(); } } if (bZahlen && !bBuchstaben && bZeichen) { int iCharOrNumber = random.Next(0, 2); if (iCharOrNumber == 1) { sAusgabeZeichen = random.Next(0, 9).ToString(); } else { sAusgabeZeichen = ((char)('a' + random.Next(27, 100))).ToString(); } } if (bZahlen && bBuchstaben && bZeichen) { int iCharOrNumber = random.Next(0, 2); if (iCharOrNumber == 1) { sAusgabeZeichen = random.Next(0, 9).ToString(); } else { sAusgabeZeichen = ((char)('a' + random.Next(0, 100))).ToString(); } } if (!bZahlen && bBuchstaben && !bZeichen) { sAusgabeZeichen = ((char)('a' + random.Next(0, 26))).ToString(); } if (!bZahlen && !bBuchstaben && bZeichen) { sAusgabeZeichen = ((char)('a' + random.Next(27, 100))).ToString(); } if (!bZahlen && bBuchstaben && bZeichen) { sAusgabeZeichen = ((char)('a' + random.Next(0, 100))).ToString(); } if (!bZahlen && !bBuchstaben && !bZeichen && bCyrill) { //AusgabeZeichen = "Кирил"; sAusgabeZeichen = ((char)('a' + random.Next(0410, 0419))).ToString(); } lock (thisLock) { Console.SetCursorPosition(x, y); Console.ForegroundColor = hell; Console.Write(sAusgabeZeichen); } Thread.Sleep(geschw); lock (thisLock) { Console.SetCursorPosition(x, y); Console.ForegroundColor = dunkel; Console.Write(sAusgabeZeichen); } if (y >= Console.WindowHeight - 1) { x = iZufStartKoordinateX(random); y = iZufStartKoordinateY(random); } y++; } } } }
Ich hab auch eine Umfrage angehängt was ich als nächstes veröffentlichen soll...