Fryshuset Forum
IndexIndex  ­Vanliga frågorVanliga frågor  ­SökSök  ­MedlemslistaMedlemslista  ­AnvändargrupperAnvändargrupper  ­Bli medlemBli medlem  ­Logga inLogga in  
Skapa nytt ämne   Svara på ämnetShare | 
 

 Uppg4 – Arv

Föregående ämne Nästa ämne Go down 
Gå till sida : Previous  1, 2
FörfattareMeddelande
Becca



Antal inlägg: 10
Join date: 08-09-01

InläggRubrik: Re: Uppg4 – Arv   mån okt 06, 2008 11:40 am

BUGG!

i recieveQuest-funktionen i Player.cpp finns den här if satsen:
for (int i=0;i<maxQuests;i++){
if (questLog[i] == "" || questLog[i] != questGiver->getQuest()){
(...)
}
}


Ta ett exempel att du först får en quest från npc[0].
i =0
questLog[0] = ""
Då kommer platsen questLog[0] = npc[0]->getQuest()

När du sedan får en quest av npc[1]:
kommer questlog[0] fortfarande vara questen du fick från npc[0], och eftersom questlog[0] != den nya questgiverns quest kommer den första questen skrivas över av den andra questen.

Så här har jag skrivit istället:

Kod:
void Player::recieveQuest(NPC* questGiver){
    int j = 0
    //loopar igenom questloggen
    for (int i=0;i<maxQuests;i++){
        //om det finns plats i plats 1 i questloggen eller questen på den platsen inte är
        if (questLog[i] == ""){
          cout << "\n Recieving quest from " << questGiver->getName() << endl;
          questLog[i] = questGiver->getQuest();
          break;         
        }//if-satsen
        else if(questLog[i] == questGiver->getQuest()){
            cout << "\n You already have this quest." << endl;
            break;
        }
        else{//om platsen var full, ökas j(antalet quests i questloggen) med 1
          j++;
        }//else-satsen
    }//forloopen
}//recievequest
Till överst på sidan Go down
Användarens profil
Becca



Antal inlägg: 10
Join date: 08-09-01

InläggRubrik: Compile Error   mån okt 06, 2008 8:21 pm

Jag får ett väldigt konstigt kompileringsfel i min arvskod, det står så här:

Fil(som den skapade själv):C:\Program\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\basic_string.h

Line: 2313

Message: note: candidates are: std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]|

Någon som kan komma på vad det kan vara?
Till överst på sidan Go down
Användarens profil
Becca



Antal inlägg: 10
Join date: 08-09-01

InläggRubrik: Re: Uppg4 – Arv   ons okt 08, 2008 9:45 am

Felet var att jag inte hade skrivit getline funktioner korrekt.

P.s. om du har blandat getline och vanliga cin när du vill ha in en string, så kommer den att loopa två gånger. Använd endast getline istället, då du kan ta in hela meningar.

getline(cin, variabel);
Till överst på sidan Go down
Användarens profil
Johan



Antal inlägg: 47
Join date: 08-09-03

InläggRubrik: Re: Uppg4 – Arv   ons okt 08, 2008 2:23 pm

Bra jobbat!

Detta här är en typisk bugg. Min recieveQuest –funktion är inte riktigt bra. Ifall man får ett quest från samma questgivare fler gånger så kommer questet ändå att skrivas dit till loggen i alla fall.

Din kod fungerar bättre. Very Happy

Äran går även till Becca! cheers
Till överst på sidan Go down
Användarens profil http://www.cplusplus.com/doc/tutorial/
 

Uppg4 – Arv

Föregående ämne Nästa ämne Till överst på sidan 
Sida 2 av 2Gå till sida : Previous  1, 2

Permissions of this forum:Du kan inte svara på inlägg i det här forumet
Fryshuset Gamer Forum :: Programmering :: Koder-
Skapa nytt ämne   Svara på ämnet