Fussball Spiel
-
Stimmt das so alles oder habe ich mich irgendwo verrechnet?
class Game { public: Game(const std::string& team1, const std::string& team2):team1(team1),team2(team2) { } std::pair<int,int> play(int f) { std::cout<<team1<<" : "<<team2<<" "; std::pair<int,int> p; switch(f) { default: p = std::make_pair(1,0); break; case 1: p = std::make_pair(f++,f); break; case 3:case 14: p = std::make_pair(f/7>0?f/7:f,1); break; case 7: p = std::make_pair(team1.length()/2,team2.length()/2); break; case 12:p = std::make_pair(int(sqrt(double(f))),1); break; } winner=p.first<p.second?team2:team1; return p; } std::string winner; private: std::string team1; std::string team2; }; class Finals { public: Finals(const std::vector<std::string>& teams) { this->teams=teams; } void showResults() { Game game("",""); std::pair<int,int> re; int fr=-1; while(++fr<3) { std::cout<<"\n"; int g=-1; while(g++<9-2*(pow(double(2),fr)+fr)) { switch(fr) { case 0: switch(g) { default: action(game,g,fr,re); continue; case 0: game = Game(teams[g],teams[3]); continue; case 2: game = Game(teams[g],teams[1]); continue; case 4: game = Game(teams[g],teams[7]); continue; case 6: game = Game(teams[g],teams[5]); continue; } case 1: switch(g) { default: action(game,g,fr,re); continue; case 0: game = Game(teams[8],teams[9]); continue; case 2: game = Game(teams[10],teams[11]); continue; } } } } game = Game(teams[12], teams[13]); action(game,0,fr,re); std::cout<<"\n\nSieger: "<<game.winner<<std::endl; } private: void action(Game& game,int g, int fr,std::pair<int,int>&re){ re=game.play(g+fr*11); teams.push_back(game.winner); std::cout<<re.first<<" : "<<re.second<<"\n"; } std::vector<std::string> teams; }; int main () { std::vector<std::string> teams; teams.push_back("Portugal"); teams.push_back("Tuerkei"); teams.push_back("Kroatien"); teams.push_back("Deutschland"); teams.push_back("Niederlande"); teams.push_back("Frankreich"); teams.push_back("Spanien"); teams.push_back("Russland"); Finals finals(teams); finals.showResults(); return 0; }
-
Du meinst im ernst das sich jemand deinen unkommentierten und gequetschten Quellcode durchliest? Gibt es ein bestimmtes Problem mit deinem source, oder warum postest du den überhaupt?
-
Musste noch was korrigieren, jetzt sollte es passen. Oder findet ihr nen Fehler in der Berechnung?
class Game { public: Game(const std::string& team1, const std::string& team2):team1(team1),team2(team2) { } std::pair<int,int> play(int f) { std::cout<<team1<<" : "<<team2<<" "; std::pair<int,int> p; switch(f) { default: p = std::make_pair(1,0); break; case 1: p = std::make_pair(f++,f); break; case 3:case 14: p = std::make_pair(f/7>0?f/7:f,1); break; case 7: p = std::make_pair(int(team1.length()/1.6),team2.length()/2); break; case 12:p = std::make_pair(int(sqrt(double(f))),1); break; } winner=p.first<p.second?team2:team1; return p; } std::string winner; private: std::string team1; std::string team2; }; class Finals { public: Finals(const std::vector<std::string>& teams) { this->teams=teams; } void showResults() { Game game("",""); std::pair<int,int> re; int fr=-1; while(++fr<3) { std::cout<<"\n"; int g=-1; while(g++<9-2*(pow(double(2),fr)+fr)) { switch(fr) { case 0: switch(g) { default: action(game,g,fr,re); continue; case 0: game = Game(teams[g],teams[3]); continue; case 2: game = Game(teams[g],teams[1]); continue; case 4: game = Game(teams[g],teams[7]); continue; case 6: game = Game(teams[g],teams[5]); continue; } case 1: switch(g) { default: action(game,g,fr,re); continue; case 0: game = Game(teams[8],teams[9]); continue; case 2: game = Game(teams[10],teams[11]); continue; } } } } game = Game(teams[12], teams[13]); action(game,0,fr,re); std::cout<<"\n\nSieger: "<<game.winner<<std::endl; } private: void action(Game& game,int g, int fr,std::pair<int,int>&re){ re=game.play(g+fr*11); teams.push_back(game.winner); std::cout<<re.first<<" : "<<re.second<<"\n"; } std::vector<std::string> teams; }; int main () { std::vector<std::string> teams; teams.push_back("Portugal"); teams.push_back("Tuerkei"); teams.push_back("Kroatien"); teams.push_back("Deutschland"); teams.push_back("Niederlande"); teams.push_back("Italien"); teams.push_back("Spanien"); teams.push_back("Russland"); Finals finals(teams); finals.showResults(); return 0;Portugal : Deutschland 1 : 2
Kroatien : Tuerkei 3 : 1
Niederlande : Russland 1 : 0
Spanien : Italien 4 : 3Deutschland : Kroatien 3 : 1
Niederlande : Spanien 2 : 1Deutschland : Niederlande 1 : 0
Sieger: Deutschland
-
Was willst du von uns?
Hast du ein Problem mit dem Code?
Gegenfrage:
Ist das richtig oder findest du einen Fehler:
a = b;?
-
Schau dir mal die Ausgabe an...

-
Du musst verstehen, dass es einfach unzureichende Infos zu Deinem Code an sich gibt um eine "Analyse" anzufertigen. Es ist weder etwas kommentiert im Code, noch erklärst Du die ungefähre, technische Funktionsweise des Programs. Selbst mit der Ausgabe ist es schwer sich in Deinem Post zurechzufinden und nach Fehlern zu suchen.
Bitte kommentiere den Code richtig aus, poste nur Stellen die relevant sind, und erkläre das Ganze einwenig, und sage uns was Du genau für ein Problem mit der Funktionalität hast, dann können Dir sicherlich mehr Leute helfen.
-
Hallo
Die Ausgabe stimmt doch!!! :schland: :schland: :schland:
chrische
-
so ist es richtig:
int main() { std::vector<std::string> teams; teams.push_back("Kroatien"); teams.push_back("Deutschland"); teams.push_back("Portugal"); teams.push_back("Tuerkei"); teams.push_back("Niederlande"); teams.push_back("Italien"); teams.push_back("Spanien"); teams.push_back("Schweden"); Finals finals(teams); finals.showResults(); return 0; }
