C++ Textgame

  • Onderwerp starter Onderwerp starter Thror
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Thror

Gebruiker
Lid geworden
29 mei 2009
Berichten
17
Hey.
Ik ben bezig met een textgame, maar wil nog niet echt lukken.
Als je de code doorlees zie je mischien hoe ik het wil doen, maar op deze manier lukt het nog niet :p.

Code:
#include <iostream>

using namespace std;
//character
string nickname;  
string skills;

string items;
int gold;

//game
string input; 
string direction; 
string place_name;
string description;

// pos
int x = 0;
int y = 0;


bool running = true;

void position();

int main()
{
  
    cout << "What's your name adventurer? ";
    cin >> nickname;
    
    system("CLS");
    cout << "Welcome to the world of err... pizza....." << nickname << endl;
    cout << "start your journey now, type start to continue." << endl;
    
    cout << "\n\n" << endl; // spacer
    cin >> input;
        
    if (input == "start"){
       system("CLS");       
       position();
    }
    else
    {
        cout << "Error." << endl;
        system("pause");
    }
    while ( running ) {
        cin >> input;
        if (input == "n" || input == "north"){ y = y + 1; }
        if (input == "e" || input == "east") { x = x + 1; }
        if (input == "s" || input == "south"){ y = y - 1; }
        if (input == "w" || input == "west") { x = x - 1; }
        position();
        if (input == "!skills") { skills; }
        if (input == "!items") { items; }
        
        else
    {
        cout << "Error." << endl;
        system("pause");
    }
        
    }
}

void position()
{
     cout << "[["<< place_name << "]] <" << x << ", " << y << ">" << endl;
     cout << description << endl;
         cout << "\n\n" << endl; // spacer   
}


// City Hall
{
     place_name = City Hall    
     cout << "This is the central gathering room. The room is fairly " << endl;
     cout << "empty, except for a large table in center of the room." << endl;
     cout << "There is an exit to the north that leads out into town." << endl;   
}
// Main Street
{ 
         place_name =  Main Street
         cout << "This is the main street, there is a big statue of the king " << endl;
         cout << "in the middle of the street. The cobbeld pavement continues " << endl;
         cout << "to the east and west. " << endl;
}         


// Stats and Skills
Health = 100;
Mana = 20;
void skills();
{
     cout << "You've currently got:" << endl;
     cout << Health; " points"<< endl;
     cout << Mana; " points"<< endl;
     
     cout << "\n\n" << endl;
     cout << "You are currently level " << level << "." << endl;

}

void items();
{
     cout << "You got " << gold << " gold pieces." << endl; 
     cout << "You are carrying:" << endl;
     cout << items << endl;
}

Ik wil dus

void position()
{
cout << "[["<< place_name << "]] <" << x << ", " << y << ">" << endl;
cout << description << endl;
cout << "\n\n" << endl; // spacer
}

dat oproepen, en voor elk stukje "map" het invullen, dus een omschrijving etc, en later ook dat er items etc zijn.
Kan iemand mij hiermee helpen?
 
Ik weet niet wat je precies bedoelt
maar dit kan je misschien doen:
maak maak je een veldje ter grote van je map ::rolleyes:
cout<<"

01 02 03 04
05 06 07 08
09 10 11 12
13 14 15 16 "


erboven doe je:
02,03,07== Kantoor
05,16== Bank
10,11,12,08,04==Huis
09,01==Cafe

(vb)

en dan doe je: type place number:
en de rest verzin je zelf zoals dat het kan kopen enzo..;)

dus als je het op kleine schaal wil doen kan het ook zo , dan kun je die x en y gwoon weglaten:D

hopelijk heb je hier wat aan^^:p
 
Volgens mij begrijp ik wat je bedoeld.
Je wilt werken met coördinaten voor de lokatie van de speler en aan de hand daarvan een map/area laden?

Ik ben ook op zoek naar een dergelijk 'systeem', helaas tot nog toe niets gevonden.
 
@wahagn, ja zo zou ik het kunnen doen maar dan is het geen "MUD" meer :p.
@furcatus, klopt. Hoe ik het nu probeer te doen is het mogelijk alleen mij nog niet gelukt :p.
 
Als je dit goed wil doen, zul je je eerst in klasses en pointers moeten verdiepen. Die laten bvb toe om dan een 'locatieobject' aan een 'puntobject'(x&y) vast te hangen.

Wat je nu zou kunnen doen, met zo min mogelijk aanpassen van je huidige structuur is een folder aanmaken waarin een rits txt-files zitten die je dan uitleest. Een txt-file heeft dan als naam bvb x_y.txt en als inhoud op de eerste regel de plaatsnaam, op de tweede de omschrijving (als je meerdere lijnen wilt, kan je bvb omschrijving maken tem een ^ ofzo (een teken dat je dus niet in gewone tekst gebruikt)). Op elke onderliggende regel kan je dan een item zetten, of wat nog beter is een lijst (door komma's gescheiden ofzo) met de nummers van items.
Dan maak je ook een map aan voor je items, die dan txt-files heeft met als naam het itemnummer.

Omslachtige methode, met veel file-input, maar op deze wijze kan je je huidige code zo goed als volledig behouden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan