Variablen und Funktionen



  • Also ich habe vor mein erstes "Spiel" zu programmieren. es soll in einem Dos fenster sein und es geht einfach darum Aktzien zu kaufen und verkaufen. Möglichst mit Gewinn ! Der grobe Aufbau:
    -------------------------------------------------------------------------------------
    (main funktion)

    Als erstes hat man 4 möglichkeiten:

    Kaufen
    verkaufen
    Kontostand einsehen
    Spiel beenden
    -------------------------------------------------------------------------------------

    Spiel beenden ist da kein thema *g*. Aber vor allem beim kaufe und verkaufen habe ich fragen. Um genau zu sein 2:

    Wenn man kaufen auswählt stehen einem 2 Aktzien zur verfügung die 15 und 30 euro kosten (soll nicht realistisch sein), nun kauft der Spieler 2 Aktzien für 15 euro:

    Die Variable money wird um 30 verkleinert und dann beendet das Programm. Wie schaffe ich es dass das Spiel jetzt wieder zur main Funktion springt? Ich war zwar grad im Kapitel Funktionen in dem tut das ich lese, habe aber nichts dazu gefunden.

    Wenn man verkaufen auswählt kann man sich wieder aussuchen welche Aktzie man verkaufen will. Aber diesmal soll kein fester Preis da sien, sondern er soll stark schwanken! Wie kann man eine zufallsvariable deklarieren?

    schon mal vieeeelen dank im Vorraus



  • ein while Schleife sollte mit einem Abbruchkriterum belegt werden, welches nur dann beendet wird, wenn die EIngabe der Taste mit dem Wert von Ende übereinstimmt (4 also).
    WIe man eine While Schleife macht, weißt Du doch und dann musst Du nur eine Abfrage einbauen, die die gedrückte Taste switch'ed.
    und dann springst Du in eine Function (Unterprogramm) und verkaufst, Kaufst und so ...

    Alles klar soweit ?

    msgbeep



  • 1. Es heisst 'voraus'
    2. Es heisst 'Aktie'
    3. Eine Zufallszahl erstellst du mit std::rand().

    #include <iostream>
    
    int main()
    {
    	int x = std::rand();
    }
    


  • Naja, nicht ganz. Wärst du so nett das in einem Beispiel zu zeigen, wäre super nett. Ich glaube ich hab das schon mal mit eine while schleife versucht, aber mir fällt gerade nicht ein woran ich da gescheitert bin...



  • Mir ist gerade eingefallen mit einer zufallsvariable wäre das ganze nicht so gut. Besser wäre wenn die variable zwischen z.b. 10 und 20 eine zahl sucht.
    In einem anderen Forum hat man mir empfohlen etwas über die "rand"funkionen rauszufinden.



  • zwischen 10 und 20=zufallszahl.

    int i=(std::rand()%10)+10;
    

    aber kauf dir bitte bitte ein c++ buch, wenn du sogar ein einer simplen while schleife scheiterst, hat das alles noch nich wirklich viel sinn.



  • Ja, das stimmt schon eigentlich habe ich nicht genug Erfahrung für so ein Minispiel. Aber, ich finde leider nur anfänger Tutorials und von denen hab ich schon 2 durch, also hab ich schon Grundwissen, und jetzt weiß ich nicht wie ich weitermachen soll. Es gibt leider keine Tutorials für "etwas" fortgeschrittenere. Wie habt ihr das denn gemacht als ihr euer erstes anfänger Tut durchgelsen habt?



  • ich hab mir das Buch "C++ Lernen und professionell anwenden" gekauft.
    war sein geld wert.



  • Hmmm, bekomme den fehler das "std" keine Klasse ist und "rand" ein nichtdeklarieter bezeichner.



  • es gibt 2 möglichkeiten: entweder du includest keinen header oder die alten.
    std::rand() ist in stdlib.h definiert,siehe deine compiler hilfe^^



  • Hab jetzt einfach mal den versuch gemacht:

    #include <iostream.h>
    
    void main()
    {
       int i=(std::rand)()%10+10;
       cout<<i<<endl;
    }
    

    Und da kamen die fehler. Muss ich vorher noch eine Klasse entwerfen um die zufallszahlen zu benutzen?



  • alte header-.-
    wir sind hier im c++ forum, da schreibt man "#include <iostream>", keine .h endung, das is mist



  • So, hab stdlib.h includet, jetzt ist rand schon mal kein undeklarierter bezeichner mehr. Jetzt bleibt nur noch das Prob mit std.



  • Hi,

    du musst die cstdlib inkludieren. Dann ist es im std-Namespace.



  • Ja, hab schon mal gelsen das .h veraltet ist, aber wenn ich das weglasse bekomme ich Fehler...?



  • Hi,

    das liegt daran, dass die Standard-Klassen (z.b. cout) dann im std-Namespace deklariert sind. Du musst dann anstelle von
    cout
    std::cout schreiben.



  • hab auch cstdlib da hab ich immer noch den Fehler. Aber wenn ich cstdlib.h includiere, hab ich eine Fehler das die include Datei nicht geöffnet werden kann.



  • #include <iostream>
    int main(int argc, char* argv[])
    {
        std::randomize();
        int i=(std::rand()%10)+10;
        std::cout<<i;
        return 0;
    }
    

    so einfach ist das.
    randomize setzt den "seed" dh erst durch ihn arbeitet std::rand() korrekt(sonst returned er immer 0, dummes design)



  • aaaahhhh
    Überall Fehler über Fehler!!! Kann es sein das mein Compiler zu alt ist? Wo bekomm ich eine aktuellen?



  • welchen hast du?


Anmelden zum Antworten