Großes Projekt mit vielen Fragezeichen



  • Hallo erstmal,

    ich hab zwar schon einige (Anfänger-) Erfahrung mit C++, hab es aber schon eine Weile nicht mehr eingesetzt, und so richtig gut war ich eh nie. Jetzt habe ich die fixe Idee eine Art Spiel zu programmieren, und da steh ich natürlich vor vielen Probleme. Ich werde bestimmt noch häufiger mit diversen Fragen hier auftauchen, aber hier hätte ich schonmal ein paar für den Anfang:

    Das Spiel soll praktisch auf einem Windows-Fenster spielen und mit Visual C++ programmiert werden. Im Prinzip bräuchte ich einfach einen statischen Hintergrund mit einigen dynamischen Elementen (best. Zahlen die sich verändern können, und einige Bilder die je nachdem ausgetauscht werden müssen), plus einem Menü oben und dem ein oder anderen Button. Das dürfte ja alles mit den untersten Grundkenntnissen von Visual zu machen sein. Gibt es hierfür ein leicht verständliches gutes Tutorial?

    Kurz mal zu dem Spiel selbst: das wird auf der US Reality Serie "Survivor" basieren. Es wird verschiedene Charaktere geben, die jeweils verschiedene Werte in verschiedenen Eigenschaften haben (also zum Beispiel Stärke 3, Beweglichkeit 5). Der Spieler erschafft am Anfang seinen eigenen Charakter und verteilt die Punkte wie es ihm gefällt. Dann tauchen da sogenannte Challenges auf, in denen die Charaktere gegeneinander antreten. Je nach Challenge werden die Siegbedingungen angepasst (z.B. 30% Stärke, 70% Beweglichkeit), und dann für jeden Charakter der jeweilige Wert berechnet. Um es nicht ganz so ausrechenbar zu machen würde ich da noch gerne einen Zufallswert dazurechnen (z.B. einen zwischen -1 und 1).

    Bis auf den Zufallswert würde ich das auch alles schon hinkriegen, nur wäre das mit sehr viel Schreibarbeit verbunden, da ich das gleiche für jeden Charakter machen würde, und am Ende jeden mit jedem vergleichen müsste, um zu sehen wer gewonnen hat (so in etwa: if(xy>xz && xy>xx &&xy>zz...). Das geht aber doch bestimmt auch leichter, oder? Irgendwie mit Klassen und Funktionen schätze ich mal, mir fehlt da aber gerade der Anhaltspunkt, wonach ich suchen soll.

    Das wären also meine ersten Fragen:

    1. Gutes Tutorial für die Grundlagen von Visual C++
    2. Für jeden Charakter eine andere Zufallszahl (zum Beispiel zwischen -1 und 1) generieren
    3. Klassen/Funktionen oder sonstwas ähnliches, um die Schreibarbeit zu minimieren.
    4. Wie kann ich von 16 verschiedenen Werten möglichst schnell herausfinden, welcher der höchste ist (oder am besten gleich die Reihenfolge haben)

    Vielen Dank schonmal!

    Mike



  • ...Das dürfte ja alles mit den untersten Grundkenntnissen von Visual zu machen sein.

    LOL

    Bis auf den Zufallswert würde ich das auch alles schon hinkriegen

    ROFL

    Wie kann ich von 16 verschiedenen Werten möglichst schnell herausfinden, welcher der höchste ist (oder am besten gleich die Reihenfolge haben)

    ROFLMAO

    Der post war ja wohl nicht ernst gemeint?!



  • 1: http://www.google.com/search?q=visual+c%2B%2B+tutorial
    2: http://www.cplusplus.com/reference/clibrary/cstdlib/rand/
    3: Lern C++, siehe 1:
    4: Überleg dir was du willst, übersetze es in Englisch, tippe es bei google ein. Meistens kannst du dir das Übersetzen sparen. Zum Beispiel kann man nach "calculate maximum of numbers" suchen. Man kann sich auch selbst was überlegen, zum Beispiel durch die Liste gehen und immer das Maximum merken, oder die Liste sortieren lassen und das letzte Element nehmen.



  • Stimmt Zufallszahl generieren ist sau schwierig. Dagegen die Grafik zu programmieren ist ein klags.

    Klassen/Funktionen oder sonstwas ähnliches, um die Schreibarbeit zu minimieren.

    Ach was so was ist total übertrieben. Funktionen braucht man nicht und erst recht keine Klassen. Ich würde alles in die Main Routine packen.

    Wie kann ich von 16 verschiedenen Werten möglichst schnell herausfinden, welcher der höchste ist (oder am besten gleich die Reihenfolge haben)

    Oje das wird schwierig da muss man schon Profi sein um so was hinzubekommen.

    Nein der Beitrag kann nicht ernst gemeint sein.



  • Oha... nachdem ich mich jetzt hier wohl total lächerlich gemacht hab, will ich vielleicht nochmal genauer erklären was ich meine.

    Wenn ich von der grafischen Oberfläche spreche meine ich nicht viel. Ich muss ein Hintergrundbild integrieren (das ich z.B. in Photoshop erstellt habe) und brauche oben ein Menü (Datei, Bearbeiten etc.). Das dürfte doch wohl wirklich nicht die große Programmierkunst sein. Dann müsste ich auf diesem Hintergrundbild Variablen haben, dessen Wert sich dynamisch ändern kann (so etwas wie einen Taschenrechner z.B.). Auch das dürfte doch eigentlich nicht so schwierig sein. Zu guter letzt würde ich noch gerne kleine Fotos darauf platzieren, und die bei bestimmten Aktionen gegen andere kleine Fotos vertauschen. Auch das dürfte doch nicht die ganz große Kunst sein, oder?

    Ansonsten bin ich eigentlich nur auf der Suche, nach einem sehr gutem Visual C++ Tutorial, also einem das ihr empfehlen könnt. Natürlich hab ich auch schon Google bemüht, aber zum einen existieren davon einige Tutorials schon gar nicht mehr, zum anderen waren die alle nicht wirklich soo prickelnd. Deshalb würde ich mich über eine bestimmte Empfehlung freuen.

    Ach ja, und nochmal zu den Zufallszahlen: mein Problem ist nicht wirklich eine zu erstellen, sondern für jeden Charakter eine verschiedene zu erstellen. Ich hab das jetzt so gemacht:

    srand(time(NULL));
    for(int i=0;i<5;i++)
    {

    int zahl = rand() % 4;
    if(i==0)
    {
    XY=XY+zahl;
    }
    if(i==1)
    {
    YY=YY+zahl;
    }

    So geht es zwar, ist aber wohl auch etwas kompliziert, bzw. viel schreibarbeit, ich denke das geht auch irgendwie eleganter...

    Und sorry, auch wenn ich mich hier lächerlich mache, dass ist alles durchaus ernst gemeint, und ich denke dass ich das auch durchaus hinkriegen kann. Eigentlich hab ich das meiste davon nämlcih schonmal gemacht (so ähnlich jedenfalls: ein Malprogramm mit Menü, bei dem man über Befehle best. Figuren malen konnte), ich brauche eben noch eine kleine Auffrischung um wieder reinzukommen.


  • Mod

    LikeMike schrieb:

    Oha... nachdem ich mich jetzt hier wohl total lächerlich gemacht hab, will ich vielleicht nochmal genauer erklären was ich meine.

    Jo! Du hast Dich mit diesem Wust an etwas unqualifizierten Fragen etwas ausmanövriert.

    Ich persönlich habe wenig Lust mich mit solch einem Wust an Anfängerfragen auseinander zu setzen.

    Tipp: Gehe jedes Problem für sich an, und versuche es zu lösen. Stelle nicht zu allen Problemen, die Du siehst eine Frage. Versuche zumindest im Netz auf diese Dinge eine Antwort zu finden.

    Nur mal ein Beispiel:
    Du fragst wie man jedem Character eine eindeutige Zufallszahl vergeben kann?
    Warum machst Du es nicht nach Try and Error?
    1. Ermittele eine Zufallszahl.
    2. Prüfe ob diese Zufallszahl bereits in den bestenden Charakteren verwendet wird, wenn ja zurück zu 1.
    3. Wenn Zahl noch nicht vergeben, dann weise diese Zahl dem nächsten Charakter zu.
    4. Alle Charaktere haben nun eine Zufallszahl? Wenn ja Ende, wenn nein weiter bei 1.

    So schwierig? Es gibt natürlich auch weitaus intelligentere Methode das zu erledigen, aber Du hast ja nicht mal diese Lösung ins Auge gefasst.



  • Yo, im Grunde geht es mir vor allem darum, ein oder mehrere sehr gutes Tutorial für Visual C++ zu finden in denen folgende Dinge erklärt werden:

    1. Wie mache ich die grafische Oberfläche inkl. Menü, Hintergrundbild und Variablen die sich ändern können.
    2. Klassen und Funktionen.

    Ich erwarte hier natürlich von niemandem, dass er mir best. Dinge haarklein erklärt, oder mir gar den Code schreibt...



  • 1. ein SDI-Projekt verwenden, Ansicht von CView ableiten Tutorials gibts mehr als genug im Netz
    2. kommt auf den aufbau deines Programmes an, wüsste ich jetzt nicht was ich dazu erklären oder schreiben sollte ist einfach zu allgemein



  • Ne, erklären musst du ja praktisch eh nix, bin nur auf der Suche nach guten Tutorials, die Klassen und Funktionen erklären. Aber vielen Dank für den SDI Tipp, da hab ich immerhin schonmal einen Anhaltspunkt.

    Nur zur Info was ich mit Klassen machen will: ich hab ja verschiedene Charaktere, die alle verschiedene Werte in den gleichen Variablen haben (z.B. Stärke, Beweglichkeit etc.). Mit den Werten dieser Charaktere muss ich dann Rechnungen anstellen, also meistens mit die gleiche Rechnung mit den Daten der verschiedenen Charaktere, und die dann am Ende vergleichen. Ohne Klassen und Funktionen würde ich das schon hinkriegen, nur wäre das eben sehr viel (wohl unnötiger) Schreibaufwand. Und ich denke das krieg ich mit Klassen und Funktionen deutlich komfortabler und übersichtlicher hin.



  • Muss es Visual C++ sein? Wenn das Projekt zum Lernen von VC++ sein soll ist es ok. Wenn es dir eher um die umsetzung des Spiels geht, verwende doch lieber C#. Das ist gerade für Anfänger etwas einfacher. Vor allem wenn es um Oberflächen geht.



  • Ne, sollte schon C++ sein. Da steht nämlich demnächst noch eine Hausarbeit an, und in nicht allzulanger Zeit meine Magisterprüfung, wo das auch Thema sein wird. Und davor wollte ich gern noch etwas damit machen, das mir auch wirklich Spaß macht.



  • Ok, jetzt hätte ich mal eine ganz spezielle Frage (immernoch eine ziemliche Anfängerfrage, aber ich hab dazu bisher nichts finden können):

    Ich hab jetzt eine Klasse definiert, und im Programm verschiedene Objekte der Klasse erstellt. Dazu hab ich eine Funktion definiert. Jetzt soll die Funktion für jedes Objekt aufgerufen werden (also die Variablen jedes Objekts neu berechnet werden). Gibt es da eine einfache Möglichkeit, oder muss ich wirklich für jedes Objekt die Funktion neu aufrufen?


Anmelden zum Antworten