Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Programmieren eines KO-Systems, Problem im Ansatz

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
27.11.2010, 11:50 Uhr
downandout




Zitat:

Aufgabe:
Ein Kneipenbesitzer hat Sie um ein Programm zur Unterstützung seiner regelmäßigen Turnierveranstaltungen gebeten. Nach Eingabe der angemeldeten Teilnehmer und der Anzahl der verfügbaren Geräte (=Anzahl der Spiele, die gleichzeitig durchgeführt werden können) soll der Computer einen Spielplan für ein simples KO-System entwerfen und angeben, welche Paarungen auf welchem Gerät spielen müssen. Nach Eingabe eines Ergebnisses für ein Gerät, soll die nächste Paarung (für die beide Spieler verfügbar sind) ermittelt, und das Gerät für diese reserviert werden. Nach Beendigung des Turnieres sollen die zwei besten Spieler ausgegeben werden, um die Preisverleihung vorzubereiten.



Ich habe Probleme bei der Erstellung dieses Programmes. Ich ermittle per Zufallszahl wer gegen wen spielt. Dafür habe ich mir eine kurze Prozedur einfallen lasse, danach will ich wieder per Zufall ermitteln wer gegen wen spielt, muss mein Feld, wo die Namen drinnen stehen also um die beiden die schon per Zufall ermitteln wurden verkürzen.
Wie mache ich das ich habe ein zweidimensionales Array, ich darf noch kein String Array erzeugen, deshalb war mein Lösungsansatz eben ein zweidimensionales Array um die Namen einzugeben.
Ich habe versucht eine rukursive Funktion zu erstellen, die das um die Namen derjengen verkürzt, die schon per Zufall ermittelt wurden. ... Leider bin ich da schon daran gescheitert, dass ich keinen Zeiger auf ein mehrdimensionales Feld setzen darf! Mit Schleifen Felder zu verkürzen habe ich auch nicht hinbekommen.

Was mir noch Sorgen macht ist, was soll passieren, wenn eine ungerade Anzahl in dieses KO System eingegeben wird?

Danach muss ich noch programmieren, eben das gespeichert wird welche "Zufallszahlen" bzw. Leute zusammengehören und den Sieger ermitteln. Wie mache ich das? Ich hab mir überlegt die leute, die zusammengehören wieder in ein zweidimensionales Array zu schreiben.
Dann sprech ich das neue Array an, gib manuell ein, wer der der Sieger ist.

Dann soll wieder per Zufall ermittelt werden, wer gegen wen spielt, solange bis einer überbleibt.

... bevor ich noch verzweifle könntet ihr mir helfen?

Mein Ansatz:

C++:
#include <iostream>
#include <cmath>
#include <ctime>
using namespace std;


    char name[50][6] = {0};

void aufteilen (int teilnehmer){

    int zufall =0;
    int zufall2=0;

    
    srand (time(NULL));
    zufall=  rand()%teilnehmer;
    zufall2=  rand()%teilnehmer;
    while (zufall2 == zufall)
        zufall2=  rand()%teilnehmer;
    

    cout << name[zufall] << " spielt gegen " << name[zufall2];

}
int main () {


    cout << "Bitte geben Sie die Anzahl der Teilnehmer ein! ";


    int teilnehmer;
    cin >> teilnehmer;

    
for(int i =0;i<teilnehmer;i++)
        cin >>  name[i];


    aufteilen(teilnehmer);

    return 0;
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.11.2010, 12:42 Uhr
~toxic
Gast


hi,
in einem ko-system kann es keine ungerade anzahl parteien geben, sonst wäre ja der der alleine übrig bleibt automatisch eine runde weiter. ausserdem halbiert sich die anzahl der spieler bei jeder runde. dh. es muss eine 2 hoch n anzahl an spielern starten.

1. ich würde zuerst die namen erfassen in einem array erfassen
2. dann dieses mischen (oder ein weiteres array benutzen welches nur die indexes verwaltet, und mit diesem arbeiten)
3. dann spielt der 1. gegen den 2. im array der 3. genen den 4. usw.
4. die sieger landen dann in einem weiteren array (oder in dem selben)
5. wieder zu punkt 2 solange mehr wie 2 spieler vorhanden sind
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: