#1 31. Juli 2007 [C#] wie wieder zum anfang springen? hi @ all bin immer noch an meinem kl. spiel aber bin kurz davor es fertigzustellen. jetzt noch ein problem. wenn ich am schluss des spiels bin hab ich ein kl. menü, wo man auswählen kann ob man nochmal neustarten will. dafür muss man dann die 1 eingeben. gibt jetzt der spieler die eins ein, soll das spiel neu gestartet werden. wie mache ich das? was für ein code veranlasst das? Habs mal mmit Code: goto Main; versucht, aber damit gehts nicht mfg + Multi-Zitat Zitieren
#2 31. Juli 2007 AW: [C#] wie wieder zum anfang springen? In VB ruft mein eine Prozedur mit dem Call-Befehl auf. Falls es den in C# nicht gibt, kannst du das auch über Labels lösen. Ein Label benutzt du so: Code: Labelname: Befehl1 Befehl2 ... goto Labelname Die Befehle werden ausgeführt und das Programm springt zurück zum Label namens "Labelname". + Multi-Zitat Zitieren
#3 31. Juli 2007 AW: [C#] wie wieder zum anfang springen? ich geh jetzt mal davon aus, dass C# C/C++ sehr ähnlich ist.... Die Version mit goto ist unschön und macht den Code schlecht zu lesen. Schöner wäre: Code: int main() { bool Raus = false; while(Raus == false) { // Hier kommt jetzt dein ganzer Code rein, mit Abfrage, ob man rausmöchte. // bei ja wird Raus auf "true" gesetzt, die Bedingung ist ungültig und die Schleife wird verlassen } return EXIT_SUCCESS; } Wie gesagt... goto ist unschön, da viele Querverweise den Queltext oft schlecht lesbar machen... mfg thecoolman4rr + Multi-Zitat Zitieren
#4 31. Juli 2007 AW: [C#] wie wieder zum anfang springen? ja das stimmt womöglich mit goto. aber deine lösung...damit kann ich doch vom programmende nicht bis zum programmanfang springen oder? also ich kapier jetzt nicht wie und wo ich das einbauen musst, damit ich vom progammende, wenn ich das spiel neustarten möchte wieder an den anfang der Main()-Methode springen kann. mfg + Multi-Zitat Zitieren
#5 31. Juli 2007 AW: [C#] wie wieder zum anfang springen? natürlich geht das, blos ist auf den ersten blick nicht so flexible. Mein tipp: Ein goto schadet auch nicht Code: int main() { anfang: //dein toller code goto anfang; return EXIT_SUCCESS; } + Multi-Zitat Zitieren
#6 31. Juli 2007 AW: [C#] wie wieder zum anfang springen? hab es jetzt gelöst hab eine do-while-schleife dafür verwendet. am anfang die do schleife und die wird eben ausgeführt, bis der spieler am schluss keine 1 mehr eingibt beim menü mfg P.S.: spiel ist jetzt im showcase zu bewundern + Multi-Zitat Zitieren
#7 1. August 2007 AW: [C#] wie wieder zum anfang springen? Jo, mit ner While ist des Ganze gut gelöst. GOTO sollte man NIE benutzen, das ist sehr unsauberer Programmierstil und nicht ohne Grund in vielen Betrieben für die Programmierer nicht erlaubt. + Multi-Zitat Zitieren
#8 1. August 2007 AW: [C#] wie wieder zum anfang springen? Sag niemals nie oO. Wenn man immer nur goto verwendet wird der code sehr undurchsichtig, aber in so einem fall wie hier ist ein goto genauso verständlich wie ne do while. mfg tobZel + Multi-Zitat Zitieren
#9 1. August 2007 AW: [C#] wie wieder zum anfang springen? Hi! 'goto' wird, soweit ich weiss, nur verwendet, wenn man aus einem dichten while-/for-Schleifengewirr nicht mehr so leicht rauskommt. Dann kann man das einfacher und uebersichtlicher mit 'goto' loesen als die 2-X Schleifen zu unterbrechen. Sonst ist 'goto', nicht nur wegen der Uebersichtlichkeit, zu vermeiden. Mfg, Kolazomai + Multi-Zitat Zitieren
#10 1. August 2007 AW: [C#] wie wieder zum anfang springen? Ja klar gibt es Situationen, in denen es sinnvoller sein kann. Ich kann nur aus der Erfahrung sprechen, dass es in meinem Betrieb für alle Programmierer verboten ist (1400 Mitarbeiter). Auch in anderen Betrieben in meinem Umfeld ist dieses so, da Azubis in der Berufsschule davon erzählt haben. Das wird ja sicherlich nicht aus der Luft gegriffen sein. In welchen Fällen noch? + Multi-Zitat Zitieren
#11 1. August 2007 AW: [C#] wie wieder zum anfang springen? Hab mal gehoert, dass es auch Fehler im Code verursachen KANN. Ich denk, wenn man z.B. irgendwie Variablen erstellt, Speicher alloziiert im Code zwischen 'goto label;' und 'label:', dann auf die Variable in 'label' zugreift, kann es zu Fehlern kommen. Ahja, hier die Erklaerung von 'pronix.de' ( C von A bis Z - Goto ): Mfg, Kolazomai + Multi-Zitat Zitieren
#12 1. August 2007 AW: [C#] wie wieder zum anfang springen? Dann sag mir doch bitte mal wie Assemblerprogramme sonst funktionieren sollen Klar, ist die Syntax nicht goto, sondern jmp zb. aber ist im grunde das gleiche... So würd ich das stehenlassen. Wie schon gesagt, benutz ne while oder schreib dein Programm mit meheren Methoden. Vorteil von letzterem: Dein Programm wird übersichtlicher wenn man es damit nicht übertreibt. + Multi-Zitat Zitieren
#13 1. August 2007 AW: [C#] wie wieder zum anfang springen? @Kolazomai: Hui, daran hab ich noch garnicht gedacht, danke für die Erklärung @styxx: Es geht noch ne Stufe schlimmer: Hast aber Recht... + Multi-Zitat Zitieren