Skocz do zawartości

LyanVu

Użytkownicy
  • Postów

    49
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez LyanVu

  1. LyanVu

    Drobny problem.

    Witam, otóż wpierw pokażę ten oto kawałek kodu: void kMiasto::OdswiezMapa() { for (int y = 0; y < 5; ++y) { cout << endl; for (int x = 0; x < 9; ++x) { switch (mMapa[y][x]) { case pl_Wolne: { cout << "##\n##"; break; } } } } } i chodzi mi tu o to aby pl_Wolne wyswietliło jako "## ##" . Z tym, że \n lub endl przechodzi do nastepnej linii i wtedy nastepne pl_Wolne wypisują się pod tym, natomiast chciałbym aby następne pl_Wolne wyświetliło się zaraz obok w tej powyższej formie ;p Jest na to jakiś sposób?
  2. LyanVu

    Tura #140

    W GML Szybciej się programuje i dlatego wszyscy tylko w tym piszą na tę ligę? :D Nie wiem jak to tam wygląda #Edit Spojrzałem na kodzenie w GML i już odpowiedziałem sobie na moje pytanie ^^
  3. Już rozumiem :] Dziękuję i pozdrawiam.
  4. To zostawić np. chociaż samo puNowaTablica = NULL; ? Chodzi mi o to, że może nastąpić tzw. Wyciek pamięci, czy nie mam racji?
  5. Ja tam aktualnie powoli kończę kurs "od zera do gier kodera" :D Myślę, że nie jest taki zły, choć dla niektórych(leniwych) może być cięższy ze względu na małą przestarzałość i czasem trzeba samemu kombinować czemu nie działa.
  6. Czy chodzi ci o to, że ja wymazuję obszar pamięci gdzie rezyduje tablica? Bo nie jestem pewny czy dobrze pomyślałem :) EDIT - WIN: Udało mi się :) Zaczeło działać kiedy zmieniłem delete[] puTablica; puTablica = puNowaTablica; delete[] puNowaTablica; Na: puTablica = NULL; delete[] puTablica; puTablica = puNowaTablica; puNowaTablica = NULL; delete[] puNowaTablica; Tak więc dzięki wszystkim :)
  7. Wcześniej zrobiłem to na zasadzie puTablica[uIndeksY*muRozmiarX + uIndeksX] , lecz kiedy już wtedy nie działało to zacząłem kombinować i to wyszło ;/ Jakie języki masz na myśli?
  8. A diablo? Z II do III -> ~12 lat :D
  9. Od razu podam kod: klasy.h: class cInt2dArray { private: const static unsigned short DOMYSLNYy = 2; const static unsigned short DOMYSLNYx = 2; unsigned muRozmiarY; unsigned muRozmiarX; unsigned* puTablica; public: cInt2dArray() { muRozmiarY = DOMYSLNYy; muRozmiarX = DOMYSLNYx; puTablica = new unsigned[muRozmiarY * muRozmiarX]; } cInt2dArray(unsigned uRozmiarY,unsigned uRozmiarX) { muRozmiarY = uRozmiarY; muRozmiarX = uRozmiarX; puTablica = new unsigned[muRozmiarY * muRozmiarX]; } ~cInt2dArray() { delete[] puTablica; } unsigned GetRozmiarY() { return muRozmiarY; } unsigned GetRozmiarX() { return muRozmiarX; } void SetDane(int* nDane, unsigned uIndeks1, unsigned uIndeks2) { puTablica[uIndeks1 * uIndeks2] = *nDane; } int GetDane(unsigned uIndeks1, unsigned uIndeks2) { return puTablica[uIndeks1*uIndeks2]; } bool ChangeRozmiar(unsigned uRozmiarY, unsigned uRozmiarX); }; main.cpp" // INCLUDY SĄ PRAWIDŁOWE bool cInt2dArray::ChangeRozmiar(unsigned uRozmiarY, unsigned uRozmiarX) { if (uRozmiarY < 0 || uRozmiarX < 0) return false; unsigned* puNowaTablica = new unsigned[uRozmiarY *uRozmiarX]; memcpy(puNowaTablica, puTablica, (uRozmiarY*uRozmiarX)*sizeof(unsigned)); delete[] puTablica; puTablica = puNowaTablica; delete[] puNowaTablica; return true; } int main() { unsigned uRozmiarY, uRozmiarX; int nDane; cout << "Podaj Rozmiar Y tablicy: "; cin >> uRozmiarY; cout << endl << "Podaj Rozmiar X tablicy: "; cin >> uRozmiarX; cInt2dArray* puTablica = new cInt2dArray(uRozmiarY,uRozmiarX); cout << endl << "Podaj Rozmiar Y tablicy: "; cin >> uRozmiarY; cout << endl << "Podaj Rozmiar X tablicy: "; cin >> uRozmiarX; cout << endl << "Podaj Dane do wprowadzenia: "; cin >> nDane; puTablica->SetDane(&nDane, uRozmiarY, uRozmiarX); cout << endl << "Dane to: " << puTablica->GetDane(uRozmiarY, uRozmiarX); cout << endl << "Zmieniamy Rozmiar. Rozmiar Y: "; cin >> uRozmiarY; cout << endl << "Rozmiar X: "; cin >> uRozmiarX; puTablica->ChangeRozmiar(uRozmiarY, uRozmiarX); cout << endl << "Podaj Rozmiar Y tablicy: "; cin >> uRozmiarY; cout << endl << "Podaj Rozmiar X tablicy: "; cin >> uRozmiarX; cout << endl << puTablica->GetDane(uRozmiarY, uRozmiarX); _getch(); delete puTablica; _getch(); return 0; } No a problem polega na tym, że po prostu wyskakuje coś takiego gdy już zmienię rozmiar tablicy i podaję y,x aby sprawdzic jakies dane ;p PROBLEM #Edit1 Dodam, że umyślnie nie zrobiłem tego na zasadzie unsigned** pTablica :D
  10. Ostatnio wyszła nowa wersja http://www.dobreprogramy.pl/DevC,Program,Windows,28400.html (5.6.2) z 17 marca 2014 roku, więc nie jest tak źle :) changes: http://orwelldevcpp.blogspot.com/
  11. Wow... hahah.. Jak ja mogłem to przeoczyć -.- No ale dziękuję :) A, że nie tworzę domyślnego to wiem, bo byłem w środku tworzenia programu, więc miałem go zamiar użyć ;p
  12. Witam, mam mały/duży problem, ponieważ nie dawno co uczyłem się wskaźników i postanowiłem je przećwiczyć. Najpierw pokażę kod: Klasy.h: class cIntArray { private: const static short unsigned int mDOMYSLNY = 5; unsigned mRozmiar; int* mpTablica = NULL; public: cIntArray() { mRozmiar = mDOMYSLNY; } cIntArray(unsigned Rozmiar) { mRozmiar = Rozmiar; mpTablica = new int[mRozmiar]; } ~cIntArray() { delete[] mpTablica; } bool SetWartosc(int wartosc, int indeks); unsigned GetRozmiar() const { return mRozmiar; } unsigned GetDane(unsigned Indeks) const { return mpTablica[indeks]; } bool SetRozmiar(int NowyRozmiar); }; Main.cpp(wiem, że implementacje lepiej w oddzielnym module ale to tylko krótkie ćwiczenie): #include <iostream> #include <conio.h> #include <memory.h> #include "Klasy.h" using namespace std; bool cIntArray::SetWartosc(int wartosc, int indeks) { if (indeks > mRozmiar || indeks < 0) return false; mpTablica[indeks] = wartosc; return true; } bool cIntArray::SetRozmiar(int NowyRozmiar) { if (NowyRozmiar == mRozmiar) return false; int* pNowaTablica = new int[NowyRozmiar]; memcpy(pNowaTablica, mpTablica, NowyRozmiar * sizeof(int)); delete[] mpTablica; mpTablica = pNowaTablica; mRozmiar = NowyRozmiar; return true; } int main() { cout << "Podaj Rozmiar Tablicy: "; int nRozmiar; cin >> nRozmiar; cIntArray* pIntTablica = new cIntArray(nRozmiar); cout << endl << pIntTablica->GetRozmiar(); _getch(); int nIndeks, nWartosc; cout << endl << "Podaj Indeks: "; cin >> nIndeks; cout << endl << "Podaj Wartosc: "; cin >> nWartosc; cout << endl << pIntTablica->GetDane(nIndeks); _getch(); system("cls"); cout << "Podaj Indeks do sprawdzenia: "; cin >> nIndeks; cout << endl << pIntTablica->GetDane(nIndeks); _getch(); cout << endl << "Podaj Nowy Rozmiar: "; cin >> nRozmiar; pIntTablica->SetRozmiar(nRozmiar); cout << endl << "Dane o tamtym indeksie: "; cout << pIntTablica->GetDane(nIndeks); delete pIntTablica; _getch(); return 0; } A problem jest taki, iż za każdym razem niezależnie jaką wartość wpiszę to jest tam liczba iluś cyfrowa(6 może 7) i przy każdym uruchomieniu programu jest taka sama -.-. Co się dzieje?
  13. LyanVu

    Malutki Problemik

    Dzięki bardzo ;] W przyszłości będę pytał wujka Google :D
  14. LyanVu

    Malutki Problemik

    Znowu mały problem więc nie tworzę nowego tematu. Konstruktory się wywołują gdy tworzę obiekt to wiem. A jak wywołać destruktor?
  15. LyanVu

    Malutki Problemik

    Witam, przejdę do sedna. to jest wskaźnik na obiekt klasy cEnemy: cEnemy* pEnemy; No dobra, ale niby jaki obiekt?! załóżmy, że stworzę sobie 5 obiektów klasy cEnemy. a pozniej ten wskaźnik, to na co on niby wskazuje? (ni chu..chu.. tych cholernych wskaźników nie czaje.
  16. LyanVu

    Łączenie modułów ;///

    DOBRA JUŻ WSZYSTKO CZAJE. Dziękuję i pozdrawiam. ;)
  17. LyanVu

    Łączenie modułów ;///

    celowo nie wkleiłem dołączania bibliotek podstawowych itp. aby dla was mój problem był lepiej czytelny -.-
  18. LyanVu

    Łączenie modułów ;///

    Witam, mam taki o to problem, którego rozwiązania nie mogę znaleźć w guglach. A więc, na jakiej zasadzie łączę moduły? Takie coś nie działa: Game.cpp: int Powitanie() { cout << "elo"; return 0; } main.cpp: #include "Game.cpp" using namespace std; int main() { Powitanie(); _getch(); return 0; } Wystakuje: 1>main.obj : error LNK2005: "int __cdecl Powitanie(void)" (?Powitanie@@YAHXZ) already defined in Game.obj 1>C:\exe : fatal error LNK1169: one or more multiply defined symbols found
  19. Dobra już działa, przerzuciłem przypisanie tych stringów(eloszka) do wyższego konstruktora. Widocznie źle zrozumiałem przeciążenia, lub w ogóle ich nie rozumiem. Myślałem, że to będzie działało na zasadzie najpierw wykona pierwszy konstruktor, pozniej zajmie się drugim ;p. W każdym razie dziękuję za pomoc :)
  20. Otóż najpierw pokażę wam kod: consoler.h : #include <string> const int cmax_Strony = 500; class Ksiazka { private: string m_strTytul; string m_strStrony[cmax_Strony]; int m_nIloscStron; public: Ksiazka(string strTytul, int nIloscStron) { m_strTytul = strTytul; m_nIloscStron = nIloscStron; } Ksiazka() { m_strStrony[0] = "Eloszka.", m_strStrony[1] = " blablablabla"; } string GetTytul() { return m_strTytul; } string GetStrona(int nStrona) { return m_strStrony[nStrona]; } int GetIloscStron() { return m_nIloscStron; } }; main.cpp : #include <iostream> #include <conio.h> #include <cstdlib> #include <string> #include "consoler.h" using namespace std; int main() { string strTytul; int nIloscStron; int nWpisStrona = true; cout << "Podaj Tytul Ksiazki: "; cin >> strTytul; cout << endl << "Podaj Ilosc Stron: "; cin >> nIloscStron; system("cls"); Ksiazka oKsiazka1(strTytul, nIloscStron); while (nWpisStrona>0 && nWpisStrona<3) { cout << "Tytul Twojej Ksiazki: " << oKsiazka1.GetTytul(); cout << endl; cout << "Ilosc jej stron: " << oKsiazka1.GetIloscStron(); cout << endl; cout << "Podaj Strone, ktora chcesz przeczytac: "; cin >> nWpisStrona; cout << endl; cout << oKsiazka1.GetStrona(nWpisStrona - 1); cout << endl; _getch(); } _getch(); } Problem polega na tym, iż nie wyswietla mi zadnej z dwóch opisanych przeze mnie stron czyli "eloszka" i "blablabla". Wie Ktos o co chodzi? Dodam iż programowania obiektowego zacząłem się uczyć dopiero 1-2 godz temu, więc bez dziwienia jeżeli jest to trochę nagmatwane ;p
  21. Jakaś krytyka? chociażby ta najgorsza dla mnie?
  22. Tytuł: MiniWizard(?..To po prostu system walki w sumie) Gatunek: RPG/Akcja Opis: Zasady: 1. Po każdej wygranej walce mamy 2 punkty statystyk do rozdania. 2. Po każdej wygranej dostajemy 1 punkt końcowy. 3. To jest gra w stylu areny. Przetrwaj jak najdłużej. 4. Jeszcze nie ma sztucznej inteligencji. 5. Zręczność odpowiada za zdolność do unikania ataków 6. Potki na HP są tylko dwie każdego rodzaju i na całą grę(nie tylko konkretną walkę), ale za to leczą procentowo. 7. Skill - Głaz ma szansę na stun(ogłuszenie - 1 tura). 8. Konsolę można powiększyć klikając prawym na nagłówek -> właściwości 9. Powodzenia ;] Download: http://speedy.sh/JEeCC/Walka-Turowa.exe (22:53 - aktualizacja(bug fixes)) Rozmiar pliku: 181 KB Autorzy: Programowanie: Marcin Siekierski(ja) Fabuła: brak fabuły Grafika: Microsoft Muzyka: Brak; Screeny:
  23. O mój Boże -.- Co ja zrobiłem. Dopiero teraz to zauważyłem... Dzięki ci ~DarkTeam. Pomyliło mi się inicjalizacja z przypisaniem ;] Tobie Maniek również dziękuję ;]
  24. Witam, otóż mam taki problem. 1>\source.cpp(121): error C2440: '=' : cannot convert from 'initializer-list' to 'int' 1> Only an initializer-list with zero or one elements can be converted to this type zmienne z którymi mam problem: unsigned int tStatystyki[6] = {5 , 5, 10, 5, 5, 0 }; unsigned int teStatystyki[6] = {5 , 5, 10, 5, 5, 0 }; unsigned int tObrazenia[2] = { 0, 0 }; unsigned int teObrazenia[2] = { 0, 0 }; I miejsce gdzie ten problem występuje: tObrazenia[2] = { tStatystyki[0] * 2, tStatystyki[0] * 3 }; teObrazenia[2] = { teStatystyki[0] * 2, teStatystyki[0] * 3 }; przy tStatystyki[0] *3 i teStatystyki[0] * 3 pokazuje sie komunikat: "Too many initializer values" Czy ktoś wie o co chodzi? //edit Jeżeli to nie wystarcza moge dać caly kod ale trochę tego jest
×
×
  • Dodaj nową pozycję...