Problem bei einem Rollenspiel Projekt



  • Hallo, nachdem ich eine ein bisschen hier gestöbert habe, habe ich beschlossen ein kleines Konsolen Rollenspiel zu programmieren. Ich muss zugeben durch nur normale Übungen recht schnell die Lust daran zu verlieren, da bin ich eher ein Typ der gerne bastelt und versucht. Ich stell auch lieber gerne Fragen hier rein :D. Also werde ich bestimmt noch öfters hier reinschreiben bevor ich mein Projekt beenden kann, auch wenn es vielleicht im anfängerstyl geschrieben ist, hoffe ich doch ihr könnt mir viele Tipps geben wie ich bei meinem Programm weiterschreibe und besser machen kann ohne nochmal neu anfangen zu müssen.
    Gut zuviel geredet hier erstmal mein Programm:

    [ccp]
    // Rollenspiel

    #include <iostream>

    using namespace std;

    // Hauptprogramm
    //

    // Die Geschichte

    int Antwort1;
    int Antwort2;
    int Antwort3;
    int Antwort4;

    int main ()
    {
    // Geschichte

    cout << " Als ihr die Augen aufmacht, findet ihr euch in einem kleinen kahlen Zimmer\n wieder.\n\n\"Guten Morgen mein Sohn.\"\n\n Als euer Blick der Stimme folgt, seht ihr einen alten Moench friedlich auf\n einem Stuhl am Ende des Bettes sitzen.\n\n\"Wisst ihr wass passiert ist mein junger Freund?\"\n";
    cout << " 1: Ja!\n2: Nein!\n\n Antwort:";
    cin >> Antwort1;

    if (Antwort1 == 1)
    cout << " Nun dann wisst ihr bereits was Vampire sind und ich brauche euch nicht mehr aufklaeren!!\n";
    else if (Antwort1 == 2)
    cout << " \"Nun, euer Dorf wurde von Vampiren ueberfallen, alle die ihr kennt\n wurden getoetet oder sind nun deresgleichen.\"\n Der Moench legt friedlich seine hand auf eure Schulter und\n euch durchstroemt eine ruhige friedliche Kraft.\n\" Nur ihr wurdet verschont, Sie dachten wohl du waerst tot!\"\n\n";
    cout << "1: \"Sie werden sich bald wuenschen das ich tot waere\"!\n 2:\" Und was soll ich nun tun?\"\n\n Antwort:";
    cin >> Antwort2;

    if ( Antwort2 == 1)
    cout << "\" Oh, ihr wollt gegen diese Kreaturen kaempfen\"?\n 1:\"Ja\"!\n Antwort:";
    cin >> Antwort4;

    if ( Antwort4 == 1)
    cout << "\" Nun das höre ich gern, so folgt mir\"!";

    else if ( Antwort4 != 1)
    cout << "\" Nun das hoere ich gern, so folgt mir\"!";

    else if ( Antwort2 == 2)
    cout << "\" Nun Ihr koennt entweder gehen wenn ihr wollt, oder aber hier bleiben und wir lehren euch den Weg diese Kreaturen zu vernichten.\n Was wollt ihr tun\"?\n 1:\" Ich werde gehen und das alles hinter mir lassen\"!\n 2: \" Seit so nett und bildet mich aus damit ich diese Kreaturen wieder in die Hoelle schicken kann\"!\n";
    cin >> Antwort3;

    if ( Antwort3 == 1)
    cout << "\" Nun, schade, dann wuensche ich euch noch ein schoenes Leben mein kleiner Freund\".";

    else if ( Antwort3 == 2)
    cout << "\" Nun das höre ich gern, so folgt mir\"!";

    cout <<" Und so gingen einige Jahre ins Land, bevor unser kleiner Held erwachsen wurde und die Kuenste des toetens beherrschte.";

    return 0;
    }

    [/ccp]

    mein Problem besteht nun darin das ich bei der bei der Antwort: " oh ihr wollt diese kreaturen also bekämpfen" Will ich eigentlich das er dann zum schluss text " und so gingen die jahre..... springt und nicht wie ich es hier habe extra nen 2 programmierstrang aufmachen muss, das ist sehr umständlich.



  • yoshi schrieb:

    if ( Antwort4 == 1)
    				cout << "\" Nun das höre ich gern, so folgt mir\"!";
    			
    			else if ( Antwort4 != 1)
    				cout << "\" Nun das hoere ich gern, so folgt mir\"!";
    

    ???
    überdenk dir das nochmal...



  • Ja ich will ja das es keine andere möglichkeit gibt nur wie ?



  • yoshi schrieb:

    Ja ich will ja das es keine andere möglichkeit gibt nur wie ?

    keine frage stellen, wo er mit nein antworten kann



  • Dann nimmst du aber dem Spieler die Freiheit wenn er nur gezielt immer eins beantworten kann dann ist das doof

    aber die eigentlich frage von mir ist ja immernoch nicht geklärt wie springe ich von da nach unten?



  • yoshi schrieb:

    Ja ich will ja das es keine andere möglichkeit gibt nur wie ?

    und

    yoshi schrieb:

    Dann nimmst du aber dem Spieler die Freiheit wenn er nur gezielt immer eins beantworten kann dann ist das doof

    stehen leicht im konflikt

    entweder er kann sich entscheiden, oder nicht!



  • Ok, werde das nunmal verbessern, aber de entscheidende punkt bleibt wie kann ich sagen wenn er was anderes antwortet das er dann von dem punkt zu einem weiter unteren Punkt springen soll?



  • schau dir mal die select-case anweisung an



  • Dann darf ich aber das ganze programm nochmal programmieren oder?



  • yoshi schrieb:

    Dann darf ich aber das ganze programm nochmal programmieren oder?

    naja, ich würde eher sagen, anpassen!
    soviel ist es doch nicht!



  • achja, lang isses her, das prinzip kenn ich sehr gut, das ist genau das selbe womit ich damals in der schule angefangen hatte zu programmieren

    in den guten alten dos basic mit haufenweisen goto

    if 1 then goto 25 usw usw

    lang isses her #gg

    ich glaub auf den wissensstand bist du kann das sein ?
    versuch es nicht prozedural zu loesen sondern in funktionen zu kapseln - also pack jede frage in einer einzelnen funktion die dann die antwort als return liefert, dann kannst du das viel leichter abfangen und andere wege weiter gehen {=


Anmelden zum Antworten