Ergebnis 1 bis 9 von 9

Thema: c++ highscore

  1. #1
    Bad Times Virus
    Registriert seit
    04.03.2008
    Beiträge
    506

    Standard c++ highscore

    hey wir müssen als hausaufgabe schiffe versenken mit nem ranking machen. am anfang soll der highscore angezeigt werden und am ende dann nochmal mit dem eigenen namen eben drin

    schiffe versenken funzt soweit nur jetzt arbeite ich noch an nem anderen projekt also nur highscore

    mein bisheriger code:



    wie man oben sieht hab ich iwie versucht struct zu benutzen. weil die "liste" funzt soweit eben nur mit namen. also wer zuletzt gespielt hat. jetzt sollen noch die versuche dazu kommen die man gebraucht hat bis der gegner tot war. und des ganze soll dann verglichen werden und der mit dem niedrigsten wert soll ganz oben stehn mit ner 1. davor also so ne toplist
    zusammengefasst: wie kann ich den eingegebenen spielernamen in kombination mit dem "score" in ne variable speichern und die variablen vergleichen?
    danke schonmal für die hilfe

    mfg eraser

  2. #2
    Master of Porn Avatar von sp1nny
    Registriert seit
    28.05.2007
    Beiträge
    533

    Standard

    Irgendwie wird mir nicht ganz klar wie du das jetzt genau machen willst. Was mir so auffällt: Beim Include reicht <string> und benutz am besten ein SwitchCase anstatt von If-Abfragen, das ist viel übersichtlicher ^^. Und du kannst auch Structs vergleichen, dafür brauchst du nicht Extravariablen. Desweiteren empfehle ich dir für deine ganzen Bennenungen aussagekräftige Namen zu verwenden und nicht "lol", das trägt zur Übersicht weiter bei.
    Geändert von sp1nny (12.04.2009 um 21:11 Uhr)
    XMPP: sp1nny @ exploit.im
    MAIL: sp1nny @ tuta.io

    PGP:

    Wir müssen wissen — wir werden wissen.


  3. #3
    Stanley Jobson Avatar von sp33dwalker
    Registriert seit
    18.09.2008
    Beiträge
    688

    Standard

    benutz doch beim menü zahlen zum auswählen statt wörter tippen

  4. #4
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Zitat Zitat von eRaSeR! Beitrag anzeigen
    struct highscore
    {
    int score;
    string name2;
    } ;
    Ein Objekt der Klasse string wirst du wohl kaum in einer Datei speichern können, da dieses Zeiger auf die Methoden der Klasse und Attribute enthält, aber nicht den "string", welcher durch dieses Objekt representiert wird. (obgleich auch ein Zeiger auf die Speicheradresse der Zeichenkette sich in diesem Objekt befindet, wird diese Adresse jene Zeichenkette beim nächsten Programmaufruf nicht mehr beherbergen)

    Ich kann mal kurz sowas schreiben.
    Gib mir 10-20 Minuten (ich editiere diesen Beitrag dann)!


    mfG. BlackBerry

    EDIT:

    Code:
    blackberry@system:~/Desktop$ g++ -o eraser eraser.cpp
    blackberry@system:~/Desktop$ ./eraser
    schreiben oder lesen: schreiben
    bitte name eingeben: BlackBerry
    MyScore = 18
    blackberry@system:~/Desktop$ ./eraser
    schreiben oder lesen: schreiben
    bitte name eingeben: BlueBerry
    MyScore = 20
    blackberry@system:~/Desktop$ ./eraser
    schreiben oder lesen: schreiben
    bitte name eingeben: OrangeBerry
    MyScore = 24
    blackberry@system:~/Desktop$ ./eraser
    schreiben oder lesen: schreiben
    bitte name eingeben: GreenBerry
    MyScore = 30
    blackberry@system:~/Desktop$ ./eraser
    schreiben oder lesen: lesen
    Der Sieger ist: GreenBerry


    Ich hoffe das hilft dir weiter... ich habe versucht es in deinem Stil zu halten und ifstream/ofsteam zu verwenden (ich bin da mehr der fopen-Typ ).
    Geändert von blackberry (12.04.2009 um 22:16 Uhr)

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  5. #5
    Master of Porn Avatar von sp1nny
    Registriert seit
    28.05.2007
    Beiträge
    533

    Standard

    Also ich hätte es so gemacht mit dem speichern / laden vom Namen:

    Code:
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        cout<<"Was möchten sie tun?"<<endl;
        cout<<"1 = Schreiben"<<endl;
        cout<<"2 = Lesen"<<endl;
    
        int eingabe;
        cin>>eingabe;
    
        char name[30];
    
        switch(eingabe)
        {
            case 1:
                {
                    cout<<"Bitte Namen eingeben: "<<endl;
                    cin>>name;
    
                    FILE* list;
                    list = fopen("list.txt","w");
                    fputs(name,list);
                    fclose(list);
    
                    break;
                }
            case 2:
                {
    
                    FILE* list;
                    list = fopen("list.txt","r");    
                    fgets(name,29,list);
                    fclose(list);
    
                    cout<<name<<endl;
                    cin.ignore();
                    cin.get();
                }
    
        }//switch
    
    
    }//main
    Geändert von sp1nny (12.04.2009 um 22:27 Uhr)
    XMPP: sp1nny @ exploit.im
    MAIL: sp1nny @ tuta.io

    PGP:

    Wir müssen wissen — wir werden wissen.


  6. #6
    Bad Times Virus
    Registriert seit
    04.03.2008
    Beiträge
    506

    Standard

    ok ty an euch 2 ich guckls mir morgen nomma an und versuchs selber mal in ner anderen aufgabe. muss mich noch rechtfertigen wegen der anfangs posts also...switch gefällt mir nich auch wenns "übersichtlicher" is wie viele meinen.. geschmackssache eben hab nich 1 und 0 verwendet in der if abfrage weil wir bissl hinterher sind und jetzt mal ein string menü machen sollten und bissl mit if/switch rumexperimentieren sollen. dass der code unsauber ist weiß ich auch. war in der schule und da hab ich nie bock auf sowas. daheim klappts besser ach und blackberry.. danke nochmal für die erklärungen in allem was du verändert hast mfg eraser

  7. #7
    Master of Porn Avatar von sp1nny
    Registriert seit
    28.05.2007
    Beiträge
    533

    Standard

    Ich kann dir sagen, dass du beim 1000000elseif das SwitchCase zu schätzen wissen wirst.
    XMPP: sp1nny @ exploit.im
    MAIL: sp1nny @ tuta.io

    PGP:

    Wir müssen wissen — wir werden wissen.


  8. #8
    W32.FunLove Avatar von Cr4ckEye
    Registriert seit
    19.11.2008
    Beiträge
    123

    Standard

    Nun ich denke es kommt ganz auf die verwendung an. ich würde auch epfehlen switch/case statt elseif zu benutzen wenn man verschiedene Fälle unterscheiden will.
    Aber für Additive Unterscheidungen ist if doch besser^^
    Naja, jemand kann immer etwas besser machen

    MfG

  9. #9
    CIH-Virus Avatar von -[RiDER]-
    Registriert seit
    05.01.2007
    Beiträge
    496

    Standard

    Hi
    Zitat Zitat von BlackBerry Beitrag anzeigen
    Code:
            int myscore = rand() % 100;
    Ich will nichts bemängeln, verbessern oder ankreiden, ich möchte nur eine kleine Ergänzung anfügen:
    If you want to generate a random integer between 1 and 10, you should always do it by using high-order bits, as in
    j = 1 + (int) (10.0 * (rand() / (RAND_MAX + 1.0)));
    and never by anything resembling
    j = 1 + (rand() % 10);
    (which uses lower-order bits).
    Was da geschrieben steht in Numerical Recipes in C: The Art of Scientific Computing (William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling; New York: Cambridge University Press, 1992 oder auch in der Linux Manpage rand(3).

    GreetZ RiDER

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •