Memory



  • Hi,

    für ein kleines Schulprojekt habe ich mich entschlossen mit dem Borland C ++ Builder ein Memory grafisch zu programmieren.
    Das Prinzip ist nicht sonderlich schwer. Einige Buttons mit Bildern drunter, die zuerst unsichtbar sind, bei Klicken des Buttons jedoch sichtbar werden. Beim Betätigen eines 2. Buttons wird ein 2. Bild sichtbar und man sieht 2 Bilder. Diese werden, wenn sie nicht übereinstimmen, nach 5 Sekunden wieder verdeckt. Andernfalls bleiben sie offen.

    Das Problem was ich jetzt aber habe ist, wie programmiere ich, dass die Bilder zufällig an die beliebigen Stellen springen? Also am Anfang des Programmes.

    Wäre super wenn mir jemand weiterhelfen könnte 😉

    Vielen Dank im Voraus.



  • Du packst die Bilder in einen vector , mischst diesen über random_shuffle und zeigst dann die Bilder in der bestimmten Reihenfolge an.

    Die Buttons hätte ich weggelassen, warum nicht direkt auf die Bilder klicken, die dann für fünf Sekunden von der Rückseite zum Bild wechseln.



  • Hi Schaufel,

    danke für die fixe Antwort.
    Das mit der Rückseite ist natürlich auch ne Idee, bin ich noch nich draufgekommen 😉

    Nun zu deinem Vorschlag mit den Vektoren.
    Du musst dir vorstellen, dass ich ne Ausbildung zum Fachinformatiker für Systemintegration mache und nun im 2. Lehrjahr bin. Mit programmieren haben wir nicht allzuviel am Hut. Das was wir kennen kann ich, aber Vektoren gehören leider noch nicht dazu ^^

    Wäre super wenn du mir noch ein wenig mehr Infos dazu geben könntest 🙂



  • http://www.cplusplus.com/reference/stl/vector/
    Falls du noch nicht weisst, was ein Template ist, schlag das am bestern vorher nach.



  • Das ist eigentlich ganz einfach. Zuerst legst du in deiner Klasse für die Ansicht (Form1 zum Beispiel) einen Vector an std::vector<Bild> bilder; , dazu musst du oben bei den includes noch <vector> hinzufügen. In deiner onCreate() Methode oder ähnlich, je nachdem welche Methode deine Form erzeugt, schreibst du dann bilder.push_back(meinbild); . Das ganz machst du für jedes Bild zweimal. Mit dem gefüllten vector rufst du anschließend std::random_shuffle(bilder.begin(), bilder.end()); . Die Bilder kannst du dann alle auf deine Buttons übernehmen. Zum Vergleich kannst du dann einfach den Dateinamen zu Hilfe nehmen.



  • wow danke für die ausführliche Antwort.
    Jetzt hab ich verstanden wies gemacht wird.

    Ich werde mich zwischen den Jahren ausführlicher darum kümmern ...

    Falls ich es nicht hinbekommen sollte, frage ich noch einmal nach Rat.
    Aber bis dahin schon mal vielen Dank und ein frohes Fest 😉


Anmelden zum Antworten