[Gelöst]Eingabe speichern



  • ...



  • Irgendwie werde ich hier nicht ernst genommen...
    Es kann nicht sein, das ich ein Forum für c++ schreibe, dort um Hilfe bitte, da ich vermute das es hier Menschen gibt die mir das erklären können, was ich brauche, ich erwarte keine Lösungen von euch und ich will meine Aufgaben auch selber schaffen -> learning by doing -> aber das versteht ihr nicht so ganz 👎
    Ich habe bei google schon mehre Lösungen gesehen, aber diese nicht verstanden

    und das mit "gibt es keine einfachere Lösung" war so gemeint - OB man es auch nur mit den Basics schaffen kann

    Ich schreib C++ jetzt seid nichtmal 2 Monaten und fang gerade an pointer zu verstehen und ihr erwartet das man alles versteht was ihr schreibt...

    Btw. "Schiffe versenken" mach ich alleine für mich! Keine Schul aufgabe oder etc.

    Aber trotzdem Danke für die sehr tollen und hilfreichen Antworten! -.-*



  • Dann erklär mir was dir an meinem ersten Post nicht gepasst hat:

    MarcoYolo schrieb:

    Mach einen std::vector<unsigned> mit allen möglichen Zielen die der Computer treffen kann (wobei die Grösse natürlich der Anzahl der Felder entspricht). Den kannst du mit einer einfach Schleife auffüllen. Den mischst du durch mit std::shuffle . Du ziehst immer das letzte Element, das ist dann dein zufälliges Ziel. Du entfernst es gleich aus dem Vektor damit es nicht nochmals gezogen werden kann. Wenn der Vektor leer ist, hast du alle Ziele schon ein Mal genutzt.

    Hättest du meinen Beitrag umgesetzt, hättest du die Lösung längst schon. Aber im Gegenteil, du bist nicht einmal darauf eingegangen.


  • Mod

    meinhana schrieb:

    Irgendwie werde ich hier nicht ernst genommen...

    Die Gründe dafür wurden dir bereits sehr oft erklärt. Wenn allen anderen geholfen wird, nur dir nicht, dann darfst du dir mal selber denken, was wohl die Ursache ist.

    Siehe auch:
    http://www.c-plusplus.net/forum/p2299890#2299890
    http://www.c-plusplus.net/forum/p2296439#2296439
    http://www.c-plusplus.net/forum/p2299859#2299859
    http://www.c-plusplus.net/forum/p2290517#2290517
    http://www.c-plusplus.net/forum/p2289501#2289501
    http://www.c-plusplus.net/forum/p2289531#2289531
    http://www.c-plusplus.net/forum/p2287133#2287133
    http://www.c-plusplus.net/forum/p2287136#2287136
    In jedem deiner Threads kamen überwiegend Antworten dieser Art. Die hast du allesamt nicht zur Kenntnis genommen und stattdessen suchst du nun die Schuld bei den doofen freiwilligen Helfern, die dir nicht helfen möchten.

    Manchen Leuten ist eben nicht zu helfen.



  • Ich hab mir diesen "Vector" angeguckt....
    Der erste Vorschlag auf Google

    #include <vector>
    
    int main()
    {
        std::vector<int> v;
        int i;
    
        for (i=0; i<100; ++i) {
            v.push_back(i); // Fügt i ans Ende von v an.
            ++v[i]; // v[i] muss bereits existieren.
        }
    }
    

    Soweit verstanden, aber das funktioniert doch nicht mit einem zweidimensionalen Array ? Oder kann ich einfach nachdem er den randomschuss gesetzt hat
    letzerSchuss.push_back(feld[zeile][spalte].inhalt);
    😕



  • meinhana schrieb:

    Soweit verstanden, aber das funktioniert doch nicht mit einem zweidimensionalen Array ? Oder kann ich einfach nachdem er den randomschuss gesetzt hat
    letzerSchuss.push_back(feld[zeile][spalte].inhalt);
    😕

    und genau das ist dein Problem: Was für ein Schuss? Warum ist "letzterSchuss" ein vector? Was steht in "feld"? Für die Leser ist es ungemein nervig, dir jeden Mist aus der Nase zu ziehen. Und wenn du dann auch noch die Antwort verweigerst und dich stattdessen aufregst, dass du keine brauchbaren Antworten bekommst, dann wird dir irgendwann niemand mehr antworten - weil es einfach sinnlos ist.

    ein std::vector ist generisch. Er kann beliebige Typen enthalten:

    std::vector<int> intVec;
    std::vector<std::string> stringVec;
    std::vector<MyClass> myClassVec;
    std::vector<MyClass*> myClassPointerVec;
    


  • ...



  • Natürlich fehlen mir die meisten Sachen, ich bring mir das auch selber bei... und mach das erst seit 2 Monaten

    Zur Aufklärung
    -> Ich will Schiffe versenken programmieren
    -> Ein feld[zeile][spalte] ist das Spielfeld 10x10(Array)
    -> der Inhalt des Feldes ist von "A0" - "A9" & "j0" bis "J9"
    -> Der "letzeSchuss" ist der feldinhalt den ich haben will, wohin der Computer(random) geschossen hat
    -> dieser soll gespeichert werden und das nächste mal aussortiert werden

    Und deswegen frag ich mich ob es geht

    letzerSchuss.push_back(feld[zeile][spalte]);



  • meinhana schrieb:

    Soweit verstanden, aber das funktioniert doch nicht mit einem zweidimensionalen Array ?

    Nur weil das Spielfeld zweidimensional ist, ist die Aufzählung der Spielfelder dies nicht auch...

    Kurze Analyse:

    meinhana schrieb:

    v.push_back(i); // Fügt i ans Ende von v an.
    

    Da steht ja, dass man mit std::vector::push_back() ein Element an's Ende des Vektors stellt.

    meinhana schrieb:

    Oder kann ich einfach nachdem er den randomschuss gesetzt hat
    letzerSchuss.push_back(feld[zeile][spalte].inhalt);
    😕

    Hier steht, du würdest nach jedem Spielzug vom Computer std::vector::push_back() aufrufen.

    Und hier ist meine Aussage von vorhin:

    MarcoYolo schrieb:

    Du ziehst immer das letzte Element, das ist dann dein zufälliges Ziel. Du entfernst es gleich aus dem Vektor damit es nicht nochmals gezogen werden kann.

    Würde mich interessieren, wo genau ich geschrieben habe, dass du bei jedem Durchgang ein Element zum Vektor hinzufügen sollst.

    Meine Vermutung: Du hast meinen Beitrag nur überflogen und das Stichwort Vektor schnell mal gegoogled.



  • Aber ich will doch, dass nach jedem Durchgang immer wieder einer Aussortiert werden soll .... 😕



  • MarcoYolo schrieb:

    Du ziehst immer das letzte Element, das ist dann dein zufälliges Ziel. Du entfernst es gleich aus dem Vektor damit es nicht nochmals gezogen werden kann.

    Wie oft muss ich dir das noch schreiben? Zumal wir nun auf Seite drei sind und ich es in exakt dieser Form schon auf der ersten Seite in meinem ersten Post geschrieben habe...



  • ...


Anmelden zum Antworten