Cześć Mireczki. Przepisuję znaną pewnie wszystkim grę Battle City (lub inaczej Tank 1990) na c++. Używam do tego entity component system i nie do końca wiem jak zaimplementować strzelanie.

Mam byt (enitity) do którego wrzucam komponenty: CPosition, CPhysics, CRectangle oraz CPlayerControl.
W czasie naciśnięcia przycisku X chciałbym stworzyć kolejny byt jako pocisk.

Jak powinienem się do tego zabrać. Czy stworzyć dodatkowy komponent CTank() i do niego upchnąć funkcje takie jak strzelanie, upgrade,
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 2
@Caishen: to chyba ShootingSystem i ShootingComponent Do czołgu dodaj i żeby ShootingSystem tworzył instancje pocisku
  • Odpowiedz
#naukaprogramowania #cpp

Mam klasę Czasy, w klasie mam prywatny std::vector, tworzę objekt czas, dodaje do niego jakieś 3 przykładowe czasy, i mam mieć możliwość przeglądania wszystkich czasów w taki sposób:

Czasy czas(3);
Czasy::iterator iterator1 = czas.begin();
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@cpp17: sorki ale nie zamierzam nigdzie sie logowac, aby wypelnic ankiete i dodatkowo podawac adres e-mail, by potem gdzies wyciekl do kolejnej spamerskiej firmy
  • Odpowiedz
#cpp ma ktoś jakiś poradnik odnosnie plików dodatkowych do c++? chodzi mi o pliki *.h i inne w projekcie visual studio. Proste pch.h ograniam, ale jak robić swoje i po co? #programowanie
  • 24
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@powaznyczlowiek: Interfejsy to nie ten język :D. Rolę interfejsów w c++ pełnią klasy abstrakcyjne, plik .h musi posiadać implementację.

@Cyganowski Ogólnie naucz się czym jest programowanie obiektowe, czym jest klasa. Klasy w c++ dzielą się na pliki nagłówkowe (.h/.hpp-> header) i źródłowe ( .cpp). W skrócie, w pliku .h wypisujesz listę zmiennych które się w tej klasie zawierają i deklaracje metod (funkcji). Deklaracja mówi tylko że taka konkretna metoda,
  • Odpowiedz
@powaznyczlowiek: Sama klasa abstrakcyjna nie musi mieć implementacji, ponieważ może składać się z funkcji czysto wirtualnych, a implementacja będzie dopiero w klasie dziedziczącej. Nie wiem na ile to się pokrywa ze współczesnymi interfejsami, Java HIV ( ͡ ͜ʖ ͡). Poza tym, plik nagłówkowy musi być zawsze, pliki źródłowy nie, można umieścić definicję od razu w nagłówku.

Pliki nagłówkowe/źródłowe nie mają nic wspólnego z semantyką języka,
  • Odpowiedz
#programowanie #cpp #pg

Byłem u prowadzącego na konsultacjach i zaczęło mi się trochę plątać,mając podane definicje,mamy zaznaczyć poprawne przypisania.

const int MAXN=8;
float x =
  • 20
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mam liczbę typu double która jest sumą dwóch zwróconych z funkcji liczb również typu double.
Chciałbym teraz tą liczbę przypisać do zmiennej i wyprintować na ekranie. Problem polega na tym, że chciałbym żeby była ona obcięta do dwóch miejsc po przecinku. Jak mogę to zrobić najłatwiej? Próbowałem zrobić cout.precision(2)<< wynik
ale wywala mi błąd wyrażenie musi mieć typ całkowitoliczbowy lub typ wyliczenia niewystępującego w zakresie i "<<" niedozwolone, prawy operand jest typu double.

Proszę o
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

wyrażenie musi mieć typ całkowitoliczbowy lub typ wyliczenia niewystępującego w zakresie i "<<" niedozwolone, prawy operand jest typu double.


@cerbi96: weź sobie ustaw angielski jak cywilizowany człowiek -.-
  • Odpowiedz
Jak zabrać się do "rozbierania"/deserializacji przykładowego wyniku od zapytania z API? Konkretniej wyciągam coś z API w formie JSONA/czegokolwiek i w jaki sposób mogę to przerzucić do konkretnych zmiennych/bazy danych cokolwiek?

Wrzucić wszystko co dostałem do string? Czy wcześniej stworzyć strukturę/klasę i utworzyć obiekt i przekazać wartości do niego?

Jak mogę rozróżnić które dane z wyniku requestu mnie interesują? Np. żeby ignorował, przecinki, nawiasy które są używane do serializacji wyniku?

#naukaprogramowania
Metoksyfenidyna9 - Jak zabrać się do "rozbierania"/deserializacji przykładowego wynik...

źródło: comment_HQP5Nv2fElb60VVK6D4zOTH7WyvtA6cL.jpg

Pobierz
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jak zabrać się do "rozbierania"/deserializacji przykładowego wyniku od zapytania z API? Konkretniej wyciągam coś z API w formie JSONA/czegokolwiek i w jaki sposób mogę to przerzucić do konkretnych zmiennych/bazy danych cokolwiek?

Wrzucić wszystko co dostałem do string? Czy wcześniej stworzyć strukturę/klasę i utworzyć obiekt i przekazać wartości do niego?


@Metoksyfenidyna9: zrób funkcję, który przyjmuje string a zwraca twoją strukturę. W c++ nie da się mapować automatycznie jsona do struktur, więc
  • Odpowiedz
@snejdan: Dzięki! Tą wersje z returnem miałem właśnie, ale mówiąc szczerze nie wiem która jest bardziej czytelna.

Co do 1. doszedłem dlaczego nie mogłem tego zrobić, ale pozostaje pytanie odnośnie czytelności - która wersja jest bardziej "czysta"?

pairOfMinAndMax =
  • Odpowiedz
Mireczki z #cpp #programowanie, potrzebuje malej pomocy. Piszę sobie konsolową bazę danych z wczytywaniem z pliku i napotkałem mały problem. Mam strukturę student, która składa się z int id, string nazwisko, string specjalnosc i int srednia. Do tej pory wczytywalem wszystko przez strumień (plik2 >> nazwisko), ale przez to nie mogłem wpisywać białych znaków. Teraz chciałem to zrobić getlinem, ale id i sredna musza byc konieczne typem
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Metoksyfenidyna9: Wyjątki są do sytuacji, które nie powinny się zdarzać podczas normalnego działania programu. Wyjątkiem obsługujesz sytuacje, kiedy kończy Ci się pamięć, ifem obsługujesz sytuację, kiedy użytkownik nie wprowadził swojego loginu w formularzu.
  • Odpowiedz
@Metoksyfenidyna9: Exception driven development to największy rak jaki mógłby istnieć. Wyjątki, jak sama nazwa mówi, to sytuacje wyjątkowe, które nie powinny mieć miejsca. Sterowanie przepływem programu za pomocą wyjątków to jak jednoznaczne stwierdzenie, że Twój program działa w oparciu o błędy ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@Metoksyfenidyna9:
- masz tu książki/pdfy/prezentacje, poczytaj sobie
- wyrób sobie certyfikaty/dostępy/inne firmowe p--------o
- przygotuj sobie środowisko

a jakieś faktycznie zadanie, to jak się znajdzie jakiś łatwy task, to junior dostanie
  • Odpowiedz
Kolejna zagadka, tym razem głupsza:
Mając poniższy kod i tylko poniższy kod, skompiluj go przy pomocy GCC (Clang nie zadziała), żeby po uruchomieniu wypisał na konsoli nazwę strony ze śmiesznymi obrazkami:

">spoiler="">Warunek: nie można używać opcji -D, -I` i pokrewnych. Żadnych trików z makrami czy alternatywnym
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@zwei: @fizyk20: No tak, to nie było aż takie trudne.
Dodam, że próbowałem użyć opcji /source-charset:utf-8 /execution-charset:.037 z MSVC, ale dostałem tylko "W`,?p". Widocznie MSVC nie konwertuje wszystkich znaków.
Jutro może wymyślę mądrzejsze zagadki.
  • Odpowiedz
Próbuję ogarnąć projekt w #cpp z użyciem #cmake i mam problem z podpięciem #sfml. Jakiś czas temu zmienił się sposób łączenia tej biblioteki i nie podłącza się już FindSFML.cmake tylko SFMLConfig.cmake i nie jestem w stanie tego zmusić do działania.
Zadanie: podpiąć SFML tak żeby mi działało i na Linuksie, i na Windowsie, bez potrzeby instalowania go (w przypadku Linuksa). Mam pobrane źródła, wrzuciłem je do
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@BoKoR: ma działać i tu, i tu, docelowo ma to być projekt na RPi, ale nie chcę się ograniczać, bo wiem, że może pójść w drugą stronę ¯\_(ツ)_/¯, szczególnie, że RPi ma ograniczoną wydajność.
2. Mam taki dość ciekawy projekt, jako wytchnienie od tych wszystkich generycznych Magic Mirrorów i RetroPi - grę, która wykorzysta dużo elektroniki i może nawet dodatkowych, maleńkich ekranów. Nie chcę się jakoś mocno nad tym rozwodzić,
  • Odpowiedz
Zagadka: mając poniższy kod w C lub C++ i zakładając standardowy target x86 lub x64, odpowiedz, najlepiej bez kompilowania kodu, co powinna zwrócić funkcja f:

unsigned int m(unsigned short a, unsigned short b) {
return a * b;
}
unsigned int f()
  • 24
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@dupasmoka: @b33zon: Dzyń dzyń dzyń mamy prawidłową odpowiedź!
Standard mówi, że operacje arytmetyczne na małych typach dzieją się przez promocję do int. Zakładając 16-bitowe shorty i 32-bitowe inty, to o ile mnożenie dwóch unsignedshortów zmieściłoby się w unsignedincie, to już nie w zwykłym incie. Kompilator widzi, że 49999×49999 jest większe niż INT_MAX i że wynik m musiał się zmieścić w nieujemnym incie, więc wie, że niemożliwym wg
  • Odpowiedz
Hej mireczki, dysponuje może ktoś pdf'em do książki C++ - Szablony. Vademecum profesjonalisty sama książka jest już niedostępna w sprzedaży, na allegro nic nie ma, a nowsze wydanie po angielsku kosztuje ok 500 zł ( ͡° ʖ̯ ͡°)

#cpp #programowanie #programista15k
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Robię projekt z kompresją Hoffmana. Mam problem z vektorem, do którego chcę upchać dane. Myślałem nad tym, aby vektor miał 127 wolnych miejsc (na ASCII), do niego zliczałbym ilość każdego znaku. Następnie potrzebuję to posortować, a później z wektora odczytać ile ma każda litera wystąpień - i z tym mam kłopot. Czy może mnie zainspiruje ktoś rozwiązaniem? Ew. zainspiruje jeszcze rysowaniem drzewa w algorytmie Hoffmana?
Z góry dziękówka :)

PS. Jeszcze jedno
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach