c++ programm mir fehlt etwas
-
Also das soll eine Art Wettspiel sein. Es generiert die Tore durch zufall 0-5.
1 = gewinnen und 0 = verlieren.zb: Du wettest das Österreich 1(gewinnt) und deutschland 0(verliert)
jz hat deutschland 4 zu 2 gegen österreich gewonnen, du hast die wette verloren.
jz zu meiner frage : wie kann ich ausgeben das 1 gewinnen ist und 0 verlieren ist .
#include <iostream>
#include <conio.h>
#include <time.h>using namespace std;
int main()
{ char antwort;
int Tore,Tore2,Tipp,Tipp2;
srand(int( time(0)));{
cout<<"* * * * WETTEN WIE DIE BRITEN * * * *";
cout<<"\n\n 2.Mannschaft/ 0 = Verlieren, 1 = Gewinnen";
Tore=0+rand()%5;
Tore2=0+rand()%5;cout<<"\n\nGeben Sie ihren Tipp ein fuer:";
cout<<"\n\nAustria: ";
cin>>Tipp;cout<<"Deutschland:";
cin>>Tipp2;cout<<"\n\nAustria "<<Tore<<" Deutschland "<<Tore2<<"\n";
cout << "\n\nProgramm wiederholen? (J/N) ->";
antwort=toupper(_getche());
}
while (antwort != 'N');
}
-
Geht es nur darum, wer gewonnen hat? Oder auch um die genaue Anzahl an Toren? Und was ist mit unentschieden?
-
GyroGearloose schrieb:
Geht es nur darum, wer gewonnen hat? Oder auch um die genaue Anzahl an Toren? Und was ist mit unentschieden?
das programm soll mir sagen das Die wette falsch war.
-
Ja, aber wann genau war die Wette falsch bzw. richtig?
Was soll passieren, wenn ich 2x eine 0 eingebe oder 2x eine 1?
Wenn man nur tippen soll, wer gewinnt, dann wäre es besser nur eine Eingabe zu machen, z. B. so:
Wer gewinnt das Spiel? [1] Austria [2] Deutschland Ihr Tipp:
-
denk ich auch, warum zwei Tipps dabei?
Ansonsten einfach ne if-Verzweigung, dann weisst wer gewonnwn hat. Aber unentschhieden wird er komisch ausgeben, bzw. gar nicht
Und dann ist das ganze auch etwas faul, die Eingabe wird ja nicht überprüft, kann ja als Tipp auch 3321 eintragen, ohne Fehlermeldung.
Sag mal, was Du genau machen möchtest, dann kann man Die auch helfen.
-
GyroGearloose schrieb:
Ja, aber wann genau war die Wette falsch bzw. richtig?
ich hab ja auf österreich 1 gewettet . aber beim spiel hat deutschland gewonnen.
Was soll passieren, wenn ich 2x eine 0 eingebe oder 2x eine 1?
eine fehler meldung, bei 2 x mal 0 drücken passiert nichst aber bei 2x 11 eine meldung, dass man nur zahlen von 0 -1 wählen kann.
Wenn man nur tippen soll, wer gewinnt, dann wäre es besser nur eine Eingabe zu machen, z. B. so:
Wer gewinnt das Spiel? [1] Austria [2] Deutschland Ihr Tipp:schaut nicht schlecht aus!:)
-
Wenn es nur ums Gewinnen geht, könnte das (anfängerfreundliche) Programm so aussehen:
#include <iostream> #include <stdio.h> #include <time.h> using namespace std; const int MAX_TORE = 5; const int AT = 1; const int DE = 2; int main() { char wiederholen; int gewinner, tipp; int tore_de, tore_at; srand(int(time(0))); do { cout << "* * * * WETTEN WIE DIE BRITEN * * * *\n\n"; tore_de = rand() % (MAX_TORE + 1); tore_at = rand() % (MAX_TORE + 1); cout << "Wer gewinnt das Spiel?\n"; cout << "[" << AT << "] Austria\n"; cout << "[" << DE << "] Deutschland\n"; cout << "Ihr Tipp: "; cin >> tipp; // Falscheingabe abfangen: while (tipp != AT && tipp != DE) { cout << "Falsche Eingabe!\nIhr Tipp:"; cin >> tipp; } cout << "\n\nAustria "<< tore_at << " Deutschland " << tore_de << "\n"; if (tore_at == tore_de) cout << "Das Spiel ging unentschieden aus! Ihr Tipp ist egal!\n"; else { if (tore_at > tore_de) gewinner = AT; else if (tore_at < tore_de) gewinner = DE; if (tipp == gewinner) cout << "Sie haben richtig getippt!\n"; else cout << "Sie haben falsch getippt!\n"; } cout << "\n\nProgramm wiederholen? (J/N) -> "; cin >> wiederholen; } while (toupper(wiederholen) != 'N'); }Da kannst du z. B. noch zur Übung eine dritte Antwortmöglichkeit "[3] Unentschieden" einbauen.
-
Danke ! Für die Hilfe ! Danke !
-
ich hab das programm ein bischen umgeschrieben , weil ich manche sachen nicht kenne. Aber es funktioniert trots dem . ich habe AT und DE als int variable genommen und hab AT auf 1 gesetzt und DE 2 gesetzt. würde es trotzdem funktionieren?
#include <iostream>
#include <conio.h>
#include <time.h>using namespace std;
int main()
{
char wiederholen;
int gewinner, tipp,AT,DE;
int tore_de, tore_at;srand(int(time(0)));
AT = 1;
DE = 2;do
{
cout << "* * * * WETTEN WIE DIE BRITEN * * * *\n\n";tore_de =1+rand()%5;
tore_at =1+rand()%5;cout << "Wer gewinnt das Spiel?\n";
cout << "[" << AT << "] Austria\n";
cout << "[" << DE << "] Deutschland\n";
cout << "Ihr Tipp: ";
cin >> tipp;// Falscheingabe abfangen:
while (tipp != AT && tipp != DE)
{
cout << "Falsche Eingabe!\nIhr Tipp:";
cin >> tipp;
}cout << "\n\nAustria "<< tore_at << " Deutschland " << tore_de << "\n";
if (tore_at == tore_de)
cout << "Das Spiel ging unentschieden aus! Ihr Tipp ist egal!\n";
else
{
if (tore_at > tore_de)
gewinner = AT;
else if (tore_at < tore_de)
gewinner = DE;if (tipp == gewinner)
cout << "Sie haben richtig getippt!\n";
else
cout << "Sie haben falsch getippt!\n";
}cout << "\n\nProgramm wiederholen? (J/N) -> ";
cin >> wiederholen;
}
while (toupper(wiederholen) != 'N');
}
-
mein deutsch ist ne katastophe! ^^
-
Is eigentlich das Gleiche. Nur dein AT und DE ist eben nicht konstant und nicht global. Wenn Du wirklich neu in der Programmierung bist, kannste sowas ja mal nachlesen.
Funktionieren wird das!
-
Das macht in dem Fall keinen funktionalen Unterschied. Das const vor den Variablendeklarationen bedeutet, dass die Variablen DE und AT nicht (ohne weiteres) änderbar sein sollen -- sie sind also konstant. Das ist guter Stil, weil man dadurch ausdrückt, dass sie nicht verändert werden und weil man eine Programmierfehler-Quelle reduziert.
Beachte auch, dass deine Torformel 1 + rand()%5 Zufallswerte aus dem Intervall [1, 5] zieht und nicht aus [0, 5]. Ist es das, was du willst?
edit: Etwas zu langsam.