C# :: Aufgabe #286
3 Lösungen

Zufällige Buchstaben für Stadt-Land-Fluss
Anfänger - C#
von charlyP
- 26.03.2020 um 00:24 Uhr
Es soll ein beliebiger Buchstabe des Alphabets (ohne Umlaute) ausgegeben werden und dann auf Anforderung des Nutzers immer wieder ein weiterer Buchstabe, wobei jeder Buchstabe des Alphabets nur ein Mal ausgegeben werden darf.
Viel Spaß
Viel Spaß
Lösungen:

using System; using System.Linq; namespace CS_Aufgabe_286_Buchstaben_SLF { class Program { static void Main(string[] args) { var lstLetters = Enumerable.Range('A', 26).OrderBy(x => Guid.NewGuid()).ToList(); var i = 0; while (i < 26) { Console.Write("Für einen neuen Buchstaben 'Enter'; Zum Beenden 'B + Enter': "); if (Console.ReadLine().ToUpper().Substring(0) == "B") return; Console.WriteLine($"\n>> {(char)(lstLetters[++i - 1])} <<"); } Console.WriteLine("Spiel beendet - Alle Buchstaben aufgebraucht!"); } } }
Hier meine Lösung,
C#-Code
Hier der XAML Code
C#-Code

using System; using System.Windows; namespace ZufälligeBuchstaben { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private Random rdm = new Random((int)DateTime.Now.Ticks); private bool[] test = new bool[26]; private int zaehler = 0; private void Button_Click(object sender, RoutedEventArgs e) { int z = rdm.Next(0, 26); if (zaehler <= 26) { while (test[z]) { z = rdm.Next(0, 26); } char c = (char)(65 + z); ausgabebox.Text = "Buchstabe " + c; test[z] = true; zaehler++; } else ausgabebox.Text = "Alle Buchstaben des Alphabets wurden verwendet"; } private void Button_Click_1(object sender, RoutedEventArgs e) { ausgabebox.Clear(); zaehler = 0; for (int i = 0; i < test.Length - 1; i++) { test[i] = false; } } } }
Hier der XAML Code

<Window x:Class="ZufälligeBuchstaben.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:ZufälligeBuchstaben" mc:Ignorable="d" Title="Stadt-Land-Fluss Buchstaben Generator!" Height="250" Width="300"> <Grid> <Button Content="Buchstabe generieren" HorizontalAlignment="Center" Height="37" Margin="0,18,0,0" VerticalAlignment="Top" Width="240" Click="Button_Click" /> <TextBox x:Name="ausgabebox" HorizontalAlignment="Center" Height="57" Margin="0,68,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="240" TextAlignment="Center" FontFamily="Arial Black" /> <Button Content="Zurücksetzten" HorizontalAlignment="Center" Height="30" Margin="0,136,0,0" VerticalAlignment="Top" Width="240" Click="Button_Click_1" /> </Grid> </Window>
Hierbei wird, sobald keine Buchstaben mehr zur Verfügung stehen, der Array erneut erstellt.
C#-Code

using System; namespace Buchstaben { class Program { static void Main(string[] args) { char[] alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray(); while (true) { Console.WriteLine("Klicken Sie Enter um Fortzufahren."); if (Console.ReadKey().Key == ConsoleKey.Enter) { Random num = new Random(); int tempI = num.Next(0, alpha.Length); var temp = new string(alpha); int index = temp.IndexOf(alpha[tempI]); Console.WriteLine(alpha[tempI]); temp = temp.Remove(index, 1); alpha = temp.ToCharArray(); Console.WriteLine(alpha); if (alpha.Length == 0) alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray(); } } } } }