Die Leute hier helfen Dir freiwillig in ihrer Freizeit - für Dich ist das offenbar selbstverständlich. Jedenfalls ist das der Eindruck, den Du hinterlässt.
Statt also einfach ein paar Stunden in ein Einsteigertutorial zu investieren ist(?) Deine Erwartungshaltung, dass Dir das hier jemand unentgeldlich in seiner Freizeit beibringt. Auf entsprechendes Feedback antwortest Du sehr dünnhäutig und patzig.
Wo erwarte ich antworten?
Wann habe ich das geschrieben?
Du unterstellst mir wieder Dinge, die einfach nicht stimmen. Wer mir antworten mag, der kann es tun, wenn nicht, dann nicht.
Aber wenn Leute das Gefühl haben, dass sie ausgenutzt werden, dann muss man sich über entsprechendes Feedback nicht wundern.
Ich vermittel dir das Gefühl dich auszunutzen? Dann antworte bitte auf keine meiner Fragen mehr. Es war nie meine Absicht jemanden auszunutzen. Nochmal: Wer mir helfen möchte, der kann das tun. Wer das nicht möchte, der soll es lassen.
Ich zwinge niemanden dazu.
Und wo habe ich auf Fragen nicht geantwortet? Oder gar patzig?
Das stimmt einfach nicht.
Du kannst gerne nach Feedback fragen und konkrete Probleme hier behandeln - aber erwarte nicht, dass das Forum hier Dein kostenloser Lehrer für Grundlagen ist.
Und nochmal: Du unterstellst mir wieder einfach Dinge, die einfach nicht stimmen. Es tut mir wirklich Leid für dich, dass du so negativ über Unbekannte Menschen denkst.
Du unterschreibst nur wieder, dass Anfängerfragen für dich eben nicht okay sind. Darf man denn fragen, wenn man die Grundlagen nciht versteht, oder sollte man das Programmieren dann gleich sein lassen?
So und nochmal abschließend:
Bitte lieber @Abt antworte auf keine meiner Fragen mehr. Überlese es einfach, wenn ich deine Zeit nicht Wert bin.
Es tut mir wirklich Leid, dass ich nicht so schnell lerne, wie du es gerne hättest und das ich auch verlinkte Seite nicht verstehe und trotzdem nachfrage.
Leider unterstellst du mir Dinge, die ich nicht denke, oder geschrieben habe.
Damit ist alles gesagt, ich möchte deine Unterstellungen hier nur nicht unkommentiert stehen lassen. Und jetzt wieder zurück zum Thema.
Zitat von Abt
(aber hey, Lesen is ja zu viel...)
Was sollen immer diese Seitenhiebe? Ich bin Anfänger. Ist dir das klar? Und leider verstehe ich auch nicht alles. Es tut mir Leid, wenn ich deine Intelligenz und dein Wissen beleidige......
Bitte bleibe sachlich und beim Inhalt.
Du kannst ja gerne meinen Code kritisieren, habe ich kein Problem mit, aber es scheint dir ein Bedürfniss zu sein, Menschen, die nicht alles verstehen, zu denunzieren.
Ich finde es auch sehr merkwürdig, dass hier nach der Antwort eines Problems gefragt wird und dann Antworten a la...."Befrag doch die KI" kommen.
Dann bennennt das Forum um in "C# für Fortgeschrittene & Profis".
Ich nehme mal Bezug auf die Anfangsfrage.
Mein einfacher Lösungsansatz wäre dieser:
long startZeit = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
long warteZeit = 10;
long endZeit = startZeit + warteZeit;
long aktuelleZeit = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
while (!Console.KeyAvailable && endZeit > aktuelleZeit)
{
aktuelleZeit = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
Console.WriteLine();
Console.WriteLine($"Bitte eine Taste drücken, um ins BIOS zu gelangen [{endZeit - aktuelleZeit}s übrig]");
Thread.Sleep(990);
Console.Clear();
}
Console.WriteLine();
if (!Console.KeyAvailable)
Console.WriteLine("Du haste keine Taste gedrückt!");
else
Console.WriteLine("BIOS wird aufgerufen.....", Console.ReadKey().KeyChar);
Geht auch kürzer, aber um sich das mal anzusehen reicht es.
Für mich als Anfänger leichter zu verstehen, als viele Beispielcodes im Netz.
Ich weiß leider nicht, welches Thema dem Themenstarter jetzt wichtiger ist. Der Getränkeautomat, oder die Zeitgeschichte.....
PS:
Habe bewusst deutsche Variablennamen verwendet, damit man es besser versteht.
Jetzt habe ich es verstanden.
Nehmen wir mal an der erste Würfel ist eine 5.
Dann wäre wuerfel[0] = 5
Wenn ich jetzt die for-Schleife durchgehe:
for (int i = 0; i < wuerfel.Length; i++)
{
wuerfel_images[i].Source = new BitmapImage(new Uri($@"/Farkle;component/img/wuerfelbild{wuerfel[i]}.png", UriKind.Relative));
}
wuerfel_image[0] wäre dann wuerfel1_img.
Also das erste Image-Element, welches den ersten Würfel anzeigt.
Dann würde da jetzt das Bild angezeigt werden, weches "/img/wuerfelbild5.png heisst. Also die 5.
Es muss gar nicht mehr eine extra Schleife durchlaufen werden, weil ja schon feststeht, was im Würfel-Array drin ist.
Auf die Idee es so zu machen wäre ich nie gekommen.
Danke für den Hinweis.
Dann haben wir einfach verschiedene Vorstellungen davon, wofür ein Forum da ist.
Ich bin auch nicht patzig oder genervt.
Es ist einfach ein reine Feststellung meinerseits.
Und nochmal:
Das ist ein Hobby. Wer mir nicht helfen möchte, muss es nicht tun.
Wenn ich einen Hinweis nicht verstehe, dann frage ich eben nach. Es ist ja nicht so, dass ich einfach Frage ohne es vorher selbst versucht zu haben, es zu lösen.
Aber wir drehen uns im Kreis.
Wir haben verschiedene Ansichten.
Und damit ist die Sache für mich erledigt.
Ich verstehe nicht, warum in Foren immer der Hinweis gegeben wird zu lesen. Klar muss man lesen. Aber wenn man das nicht versteht, dann fragt man doch nach.
Dafür sind Foren doch da.
Und meine Herangehensweise ist ja nicht falsch. Sie hat funktioniert, auch wenn ich 2 Schleifen
brauchte.
Ich finde nach 7 Tagen Hobbyprogrammierung habe ich schon deutliche Fortschritte gemacht.
Und manchmal muss man auch einfach mal mit dem Wissen loslegen, das man hat.
Du magst der Meinung sein, dass try and error nicht funktioniert, doch so lerne ich persönlich am besten.
Ich muss erst auf ein Problem stoßen und mich dann damit beschäftigen.
Wer keine Lust oder Interesse hat einem Anfänger wie mir zu helfen, dann ist das für mich auch okay.
Ich finde es nur immer doof von oben herab zu schreiben, was man alles nicht kann.
Das ist leider ein typisches IT-Foren Problem.
Ich bin sehr aktiv in der Debian und Linux Community und muss meine Kollegen ständig dazu ermahnen, dass auch Anfängerfragen in Foren berechtigt sind.
Aber ich will jetzt auch nicht weiter ausholen. Das Geschriebene reicht.
Das muss ich erstmal analysieren und verstehen.
Überprüft dein Ausdruck auch, welcher Wert in wuerfel[] steckt?
Wenn ich deins mal durchspiele und für i einfach mal eine 0 einsetze ergibt sich ja folgendes:
wuerfel_images[0] (also das Image Element für den ersten Würfel) ist wuerfel[0].png.
-> Das gibt es gar nicht.
Aber selbst wenn ich wuerfel[i+1] einsetze, dann wird auf das Image Element 0 das Würfelbild 1 gesetzt.
Es fehlt die Überprüfung, ob der erste Würfel nicht eine 3 oder 4 oder 6 ist.
Entweder verstehe ich das noch nicht, oder es war nicht klar genug ausgedrückt, was ich dort mache?
Edit:
Der Code funktioniert, aber ich verstehe nicht, was dort gemacht wird.....
Sehr gut.
Das funktioniert.
Aus:
if (wuerfel[0] == 1)
{
wuerfel1_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild1.png", UriKind.Relative));
}
else if (wuerfel[0] == 2)
{
wuerfel1_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild2.png", UriKind.Relative));
}
else if (wuerfel[0] == 3)
{
wuerfel1_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild3.png", UriKind.Relative));
}
else if (wuerfel[0] == 4)
{
wuerfel1_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild4.png", UriKind.Relative));
}
else if (wuerfel[0] == 5)
{
wuerfel1_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild5.png", UriKind.Relative));
}
else if (wuerfel[0] == 6)
{
wuerfel1_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild6.png", UriKind.Relative));
}
if (wuerfel[1] == 1)
{
wuerfel2_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild1.png", UriKind.Relative));
}
else if (wuerfel[1] == 2)
{
wuerfel2_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild2.png", UriKind.Relative));
}
else if (wuerfel[1] == 3)
{
wuerfel2_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild3.png", UriKind.Relative));
}
else if (wuerfel[1] == 4)
{
wuerfel2_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild4.png", UriKind.Relative));
}
else if (wuerfel[1] == 5)
{
wuerfel2_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild5.png", UriKind.Relative));
}
else if (wuerfel[1] == 6)
{
wuerfel2_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild6.png", UriKind.Relative));
}
if (wuerfel[2] == 1)
{
wuerfel3_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild1.png", UriKind.Relative));
}
else if (wuerfel[2] == 2)
{
wuerfel3_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild2.png", UriKind.Relative));
}
else if (wuerfel[2] == 3)
{
wuerfel3_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild3.png", UriKind.Relative));
}
else if (wuerfel[2] == 4)
{
wuerfel3_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild4.png", UriKind.Relative));
}
else if (wuerfel[2] == 5)
{
wuerfel3_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild5.png", UriKind.Relative));
}
else if (wuerfel[2] == 6)
{
wuerfel3_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild6.png", UriKind.Relative));
}
if (wuerfel[3] == 1)
{
wuerfel4_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild1.png", UriKind.Relative));
}
else if (wuerfel[3] == 2)
{
wuerfel4_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild2.png", UriKind.Relative));
}
else if (wuerfel[3] == 3)
{
wuerfel4_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild3.png", UriKind.Relative));
}
else if (wuerfel[3] == 4)
{
wuerfel4_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild4.png", UriKind.Relative));
}
else if (wuerfel[3] == 5)
{
wuerfel4_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild5.png", UriKind.Relative));
}
else if (wuerfel[3] == 6)
{
wuerfel4_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild6.png", UriKind.Relative));
}
if (wuerfel[4] == 1)
{
wuerfel5_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild1.png", UriKind.Relative));
}
else if (wuerfel[4] == 2)
{
wuerfel5_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild2.png", UriKind.Relative));
}
else if (wuerfel[4] == 3)
{
wuerfel5_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild3.png", UriKind.Relative));
}
else if (wuerfel[4] == 4)
{
wuerfel5_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild4.png", UriKind.Relative));
}
else if (wuerfel[4] == 5)
{
wuerfel5_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild5.png", UriKind.Relative));
}
else if (wuerfel[4] == 6)
{
wuerfel5_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild6.png", UriKind.Relative));
}
if (wuerfel[5] == 1)
{
wuerfel6_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild1.png", UriKind.Relative));
}
else if (wuerfel[5] == 2)
{
wuerfel6_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild2.png", UriKind.Relative));
}
else if (wuerfel[5] == 3)
{
wuerfel6_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild3.png", UriKind.Relative));
}
else if (wuerfel[5] == 4)
{
wuerfel6_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild4.png", UriKind.Relative));
}
else if (wuerfel[5] == 5)
{
wuerfel6_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild5.png", UriKind.Relative));
}
else if (wuerfel[5] == 6)
{
wuerfel6_img.Source = new BitmapImage(new Uri(@"/Farkle;component/img/wuerfelbild6.png", UriKind.Relative));
}
Wurde jetzt:
for (int i = 0; i < wuerfel.Length; i++)
{
for (int j = 1; j < wuerfel_images.Length+1; j++)
{
if (wuerfel[i] == j)
{
wuerfel_images[i].Source = new BitmapImage(new Uri($@"/Farkle;component/img/wuerfelbild{j}.png", UriKind.Relative));
}
}
}
Vielen Dank für die Hilfe!
Ja wunderbar. So klappt das.
Ich habe jetzt unter
public partial class MainWindow : Window
Das Array erstellt mit:
Image[] wuerfel_images = new Image[6];
Und dann unter :
public MainWindow()
InitializeComponent();
wuerfel_images[0] = this.wuerfel1_img;
wuerfel_images[1] = this.wuerfel2_img;
wuerfel_images[2] = this.wuerfel3_img;
wuerfel_images[3] = this.wuerfel4_img;
wuerfel_images[4] = this.wuerfel5_img;
wuerfel_images[5] = this.wuerfel6_img;
Kann ich das auch noch eleganter lösnen, anstatt ich as Array manuell befülle?
Hatte gerade noch den Beitrag editiert.
Ich bekomme die Fehlermeldung:
Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler CS0103 Der Name "wuerfel_images" ist im aktuellen Kontext nicht vorhanden. Farkle C:\Users\Marco\source\repos\Spielereien\Farkle\MainWindow.xaml.cs 84 Aktiv