Chyba nakoniec bola v úplnej nepozornosti - chýba endl v poslednej podmienke vo vetve if. Preto aj boli "rozhádzané" len niektoré mapy.
Každopádne vďaka za radu a za link ;) Do budúcnosti sa možno zíde =)
Chyba nakoniec bola v úplnej nepozornosti - chýba endl v poslednej podmienke vo vetve if. Preto aj boli "rozhádzané" len niektoré mapy.
Každopádne vďaka za radu a za link ;) Do budúcnosti sa možno zíde =)
Zdravím, robíme projekt do školy - akúsi textovú hru v konzole - a neviem si dať rady s jednou vecou. Rád by som vykreslil do konzoly mapku. S tým nie je až tak problém. Zo súboru si načítam rozmery mapy a čísla máp, ktoré sa majú načítať ak hráč príde ku okraju aktuálnej mapy. Tu už nastáva problém a to že výpis v konzole je posunutý - avšak len pri niektorých mapách.
Na obrázku vidíte najskôr správny výpis a pod ním výpis posunutý.
Pred vypísaním mapy dávam system("cls"), obrazovka by teda mala byť čistá a nemalo by tu nič prekážať. Samotný výpis je riešený následovne:
for(int i = 0; i < m_height; i++){
if(m_leftLeave == 0){
std::cout << "#";
}else{
std::cout << "<";
}
for(int j = 0; j < m_width; j++){
if(j == posX && i == posY){
std::cout << "X";
}else{
std::cout << " ";
}
}
if(m_rightLeave == 0){
std::cout << "#";
}else{
std::cout << ">" << std::endl;
}
}
Pri návrate na predchádzajúcu mapu je výpis znova v poriadku. Táto situácia nastáva asi pri troch mapách z ôsmych a skutočne nemám tušenie čím by to mohlo byť spôsobené. Skúšal som aj premazať súbory máp pri ktorých toto nastáva a vytvoriť ich znova - žiadny efekt. Hodnoty ktoré sa zo súborov načítajú sú správne.
Ak by mal niekto aspoň tip, čím by to mohlo byť spôsobené, bol by som veľmi vďačný.