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...






