Anfänger brauucht hilfe!
-
padreigh schrieb:
Coden ist ja nett, aber am Anfang kommt eigentlich ein Pseudoablauf, zB so:
Start: runde: 0 (wegen aufschlagwechsel) win_PING: 0 win_PONG: 0 aufschlag_ping = WAHR Solange ( ((win_PING < 11) UND (win_PONG << 11)) ODER (ABSOLUT(win_PING-win_PONG) < 2) ) { ziehe "zahl" ping_gewinnt = pong_gewinnt = FALSCH ballwechsel = 0 Solange weder ping_gewinnt noch pong_gewinnt RICHTIG { incrementiere ballwechsel wenn aufschlag_ping { ping_gewinnt = ping("zahl"); wenn nicht ping_gewinnt { pong_gewinnt = pong("zahl"); } } sonst { // dasselbe nur umgekehrt :P } } win_PING += ping_gewinnt; // booleans sind 0 oder 1 ... 1 wenn wahr 0 wenn falsch win_PONG += pong_gewinnt; Ausgabe: Anzahl Ballwechsel, Punkt PING, Punkte PONG incrementiere runde wenn runde >= 5 und runde < 10 aufschlag_ping = FALSCH // pong ist dran sonst aufschlag_ping = nicht aufschlag_ping // wechsel den status da punktweise gewechselt wird }Solange weder ping_gewinnt noch pong_gewinnt RICHTIG
müsste so aussehen?while(ping_gewinnt==true && pong_gewinnt==true){ //.... }beide müssen eigentlisch auf FALSCH gesetzt werden?
-
welive schrieb:
Solange weder ping_gewinnt noch pong_gewinnt RICHTIG
müsste so aussehen?while(ping_gewinnt==true && pong_gewinnt==true){ //.... }beide müssen eigentlisch auf FALSCH gesetzt werden?
In Worten ausgedrückt:
Solange weder ping noch pong gewonnen hat ... mach irgendwas.entspricht dann als Code:
bool ping_gewinnt = false, pong_gewinnt = false; //... while (!ping_gewinnt && !pong_gewinnt) { // irgendwas machen }Sobald einer gewonnen hat, hat die entsprechende Variable (ping_gewinnt oder pong_gewinnt) den Wert true.
Aus !ping_gewinnt bzw. !pong_gewinnt wird dann also false.
Da du eine Verknüpfung mit logischem UND (&&) hast, wird dann aus dem Gesamtausdruck ebenfalls false - da dieser nur wahr ist, wenn beide Teilausdrücke wahr sind.
Wenn der Gesamtausdruck false ist - dann wird die Schleife nicht weiter durchlaufen.
-
inter2k3 schrieb:
welive schrieb:
Solange weder ping_gewinnt noch pong_gewinnt RICHTIG
müsste so aussehen?while(ping_gewinnt==true && pong_gewinnt==true){ //.... }beide müssen eigentlisch auf FALSCH gesetzt werden?
In Worten ausgedrückt:
Solange weder ping noch pong gewonnen hat ... mach irgendwas.entspricht dann als Code:
bool ping_gewinnt = false, pong_gewinnt = false; //... while (!ping_gewinnt && !pong_gewinnt) { // irgendwas machen }Sobald einer gewonnen hat, hat die entsprechende Variable (ping_gewinnt oder pong_gewinnt) den Wert true.
Aus !ping_gewinnt bzw. !pong_gewinnt wird dann also false.
Da du eine Verknüpfung mit logischem UND (&&) hast, wird dann aus dem Gesamtausdruck ebenfalls false - da dieser nur wahr ist, wenn beide Teilausdrücke wahr sind.
Wenn der Gesamtausdruck false ist - dann wird die Schleife nicht weiter durchlaufen.danke

-
vielen danke für eure hilfe!!!
-
Ich habe jetzt keine Zeit umd as ganze zu testen aber trotzdem ein Tipp:
Achte darauf, dass du eine gute Einrückung im Code hast. Es ist sehr schwierig deinen Code zu lesen.
-
padreigh schrieb:
Coden ist ja nett, aber am Anfang kommt eigentlich ein Pseudoablauf, zB so:
Start: runde: 0 (wegen aufschlagwechsel) win_PING: 0 win_PONG: 0 aufschlag_ping = WAHR Solange ( ((win_PING < 11) UND (win_PONG << 11)) ODER (ABSOLUT(win_PING-win_PONG) < 2) ) { ziehe "zahl" ping_gewinnt = pong_gewinnt = FALSCH ballwechsel = 0 Solange weder ping_gewinnt noch pong_gewinnt RICHTIG { incrementiere ballwechsel wenn aufschlag_ping { ping_gewinnt = ping("zahl"); wenn nicht ping_gewinnt { pong_gewinnt = pong("zahl"); } } sonst { // dasselbe nur umgekehrt :P } } win_PING += ping_gewinnt; // booleans sind 0 oder 1 ... 1 wenn wahr 0 wenn falsch win_PONG += pong_gewinnt; Ausgabe: Anzahl Ballwechsel, Punkt PING, Punkte PONG incrementiere runde wenn runde >= 5 und runde < 10 aufschlag_ping = FALSCH // pong ist dran sonst aufschlag_ping = nicht aufschlag_ping // wechsel den status da punktweise gewechselt wird }wie kann ich hier den Endstand einbauen???
-
Indem man die Punkte mit cout ausgibt!? Was erwartest du für eine Antwort auf diese Frage?
If-Abfrage wer die Runde gewonnen hat und dessen Punktevariable inkrementieren.
-
hat sich erledigt
