Skocz do zawartości

Will

Użytkownicy
  • Postów

    781
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Will

  1. Will

    39dll w C++

    nope. Poszperaj i sprawdź.
  2. Will

    39dll w C++

    Jest to funkcja, która wywołuje się co jakiś czas. np w jakiejś fixed pętli, która sprawdza czy jakiś client nie chcę się połączyć. Jeśli napiszesz wersje z event'ami działa to na zasadzie pętli komunikatów w winapi. Zapewne zrobiłeś to w standardowy sposób, który opisałem na początku więc -1 oznacza, że żaden client nie chcę się połączyć w danej "chwili". edit: Oczywiście sam system wywoływania co jakiś czas musisz napisać sam. Trzeba też przed tym ustawić socket na nasłuchiwanie.
  3. Will

    39dll w C++

    Pisząc najprościej: Kiedy używasz #include preprocessing wkleja całą zawartość z .h do danego cpp. Pliki .h to pliki z deklaracjami a cpp z definicjami danych funkcji, klas itd(teoretycznie) Zgodnie z oryginałem zaincluduj pliki .h W twoim przypadku potrzebujesz jeszcze dorzucić bibliotekę/i(undefined reference wyraźnie to pokazuje). Powinno to być gdzieś w: Project->Build options...->Linker settings Dodaj tam wymagane biblioteki"lib'y". Jeśli masz np np dll o nazwie 39dll.dll szukaj czegoś podobnego np: 39dll.lib czy jeśli są wersje debug: 39dll_d.lib. edit: Musisz jeszcze zapewne dodać ścieżkę, szukaj czegoś jak: Linker settings>>Link Libraries Jak będziesz mieć problem ze znalezieniem poszperaj w necie.
  4. Will

    Filmy

    Film jest na podstawie książki. A "przeniesienie" jest nieźle zrobione(w filmie nie wiem, nie oglądałem) i nie dotyczy samej Grecji ale to już trzeba przeczytać.
  5. Will

    Optymalizacje

    Dobra.. ale co w związku z tym? Najpierw to trzeba nauczyć się podstaw języka, potem rozwiązywać problemy a dopiero potem rozwiązywać problemy w optymalny sposób. Po co komu zejście z kwadratówki skoro na samej pamięci straci przykładowo na jedną alokacje(pokazał gdzieś wcześniej) 2 context-switch'e+całość na stringach jeszcze a o miss'ach nie wspominając. Ten tekst pasuje do kogoś kto już wie co piszę i jest na etapie gdzie problemem nie jest samo rozwiązanie tylko dostatecznie szybkie rozwiązanie, które zmieści się w czasie.
  6. Will

    Optymalizacje

    Wszystko wydaje się ciężkie dopóki się tego nie pozna. Poznaj podstawową teorie grafów i zrób jakieś najprostsze testy. Jeśli to lubisz pobawisz się grafami kilka dni i zrozumiesz. Najlepsza metoda to książka albo wpisać w google teoria grafów(różne tego wariacje) i czytać wszystkie wprowadzenia. W końcu trafi się takie , które zrozumiesz.
  7. Will

    Optymalizacje

    W przypadku algorytmów wystarczy logiczne myślenie, podstawowa znajomość struktur danych i obeznanie z najpowszechniejszymi algorytmami. Tu nie tyle chodzi o wbicie do głowy miliona elementów tylko odpowiednie podejście. To jest po prostu problem, który trzeba rozwiązać: a) dzieli się go na mniejsze części b ) rozwiązuje poszczególne party, który "wyszły" z podziału c) skleja w całość na jakimś pseudokodzie d) przerzuca na kod c++/java/c# itd Pierwsze 3 części nie mają nic wspólnego z kodem żadnego języka, po prostu trzeba znaleźć rozwiązanie, która "niszczy" dany problem w najmniejszej ilości kroków.
  8. Will

    Optymalizacje

    W krótkich programach widać na oko, w większych prosty warstwowy profiler szybko pokaże co trzeba poprawić.
  9. Will

    Optymalizacje

    Zapewne w jakimś tam stopniu można ale zasada 80-20 wychodzi i takie optymalizowanie nie ma po prostu sensu bo zysk jest bliski zeru.
  10. Will

    Optymalizacje

    Wybrałeś taki przykład gdzie nie bardzo jest co optymalizować. Pętle to pętle, wiadomo, że jak walniesz dostateczną ilość przejść to będą działać wolno i to żadna nowość.
  11. Will

    O co chodzi?

    Ok, w takim razie jaki jest warunek zakończenia tej funkcji? Nie ma go, będzie się zapętlać w nieskończoność więc jak to ma działać? Zakładając, że: Wykona się maksymalną ilość 150: 150 razy malloc! i to w pętli a najważniejsza zasada to: "Keep heap allocations to a minimum, and never allocate from the heap within a loop" Potem przy każdym porównaniu 3 przypisania. Skorzystaj z tablic statycznych. Zrób jedną na dane a drugą dla indeksów, porównuj dane a modyfikuj tablice indeksów. Potem przy wypisywaniu: cout<<dataArray[indexArray ]; Wtedy zamiast 3 przypisań, które mogą składać się z setek elementów masz 3 przypisana zwykłych liczb. Nie wiem jak działa funkcja porównująca string'a ale napisz swoją dla tablicy char i sprawdzaj oczywisty wariant jak długość sekwencji czy co tam jeszcze wymyślisz żeby ograniczyć liczbę porównań. E: Jeśli masz tylko liczby i mieszczą się w jakimś long long czy co tam oferuje twój kompilator o największej pojemności to oczywiście z tego skorzystaj a nie baw się w tablicę.
  12. Will

    O co chodzi?

    else { if (zmiana==true) { zmiana=false; sort(); } } } To się wykona jak x==nn-1 więc co dalej chcesz sortować? temp=n[x]; n[x]=n[x+1]; n[x+1]=temp; zmiana=true; Dlaczego wybierasz najwolniejszą wersję jaką zna świat?
  13. Trudno pomóc w zadaniu, które sami nie potrafimy rozwiązać. Można tylko przeszkodzić. Nikt z tego forum nie dałby rady napisać mmorpg a sama umiejętność rzeczywistej oceny własnych możliwości jest bardzo cenna i oszczędza sporo czasu.
  14. Odpuść sobie :) Napisać prostą grę przez sieć można, napisać mmorpg nie. Test: Napisz ponga przez sieć i to powinno Cię nauczyć dlaczego nie masz szans.
  15. Zadanie: Napisz ten kod w ide i checknij disassembly window?
  16. Poszukaj: Navigation Graph Generalnie w takim prostym przypadku całość nie jest zbytnio skomplikowana: budujesz sobie strukturę przechowującą sąsiadów+opcje według, których wybierasz najkrótszą ścieżkę a potem rzucasz na to A*.
  17. Will

    Olimpiada z Informatyki

    Jak szukałeś książek musiałeś wybrać akurat tą,, która jest najgrubsza i najmniej dostępna? Tutaj masz dobrą na początek nawet cena poniżej 40 dych: http://selkar.pl/algorytmy_struktury_danyc...i_p_141781.html Na zawody w gim na pewno all co tam jest wystarczy a już w 100% nie będziesz jednym z tych, który "wymyślił" nową strukturę danych światu znaną jako lista.
  18. Will

    Olimpiada z Informatyki

    Kup książkę o algorytmach bo wiedzę na ten temat masz zerową. Jeśli rzeczywiście zależy Ci na olimpiadzie jutro zasuwaj do sklepu.
  19. Will

    pliki binarne

    Przede wszystkim sprawdzaj ile danych się wczytało i ile zapisało. np: plik.read(reinterpret_cast<char*>(tablica),sizeof(*tablica)); -> sizeof(*tablica) wczyta tylko jeden element. Tutaj jeszcze jakieś cuda wyczyniasz: tablica ->strTytul = "Suicide for dummies"; tablica ->strAutor = "Ktostam"; tablica ->intRok = 2532; Masz wskaźnik na tablice, nie na pojedynczy obiekt. Przykład poprawnego zapisu/wczytania: #include <iostream> #include <fstream> #include <string> using namespace std; struct book { char strTytul[256]; char strAutor[256]; int intRok; }; int main() { book* arr=new book[1500]; fstream plik("data.txt",ios::binary|ios::out); arr[5].intRok=3456; arr[7].intRok=345; arr[1234].intRok=12; plik.write((char*)&arr[0],1500*sizeof(book)); plik.close(); plik.open("data.txt",ios::binary|ios::in); book* arr2=new book[1500]; plik.read((char*)&arr2[0],1500*sizeof(book)); cout<<"5: "<<arr2[5].intRok<<"\n"; cout<<"7: "<<arr2[7].intRok<<"\n"; cout<<"1234: "<<arr2[1234].intRok<<"\n"; delete []arr; delete [] arr2; int k=0; cin>>k; } Zmienione dane po wczytaniu są tam gdzie powinny czyli działa, rozpisać już możesz sobie sam.
  20. Will

    pliki binarne

    Pomyśl, jak możesz tak zapisywać strukturę, która ma taką budowę? To nie jest POD więc nie ma prawa działać. Użyj takiej: struct Book { char tytul[256]; char autor[256]; int rok; }; edit: oczywiście kod ma więcej błędów, przede wszystkim trzeba sprawdzać co zwraca nam dana funkcja. Np: plik.read(reinterpret_cast<char*>(tablica),sizeof(*tablica)); Zapewniam Cię, że to nie będzie działać tak jak tego oczekujesz(o ile dobrze zrozumiałem co chcesz tu zrobić).
  21. Nie wiem czy jest brzydka bo nie widziałem :) Wyraźnie napisałem: "(nie piszę o sytuacji gdzie team robi za free)". Jeśli robi się wspólnie na "jedno konto" to sprawa wygląda zupełnie inaczej i taka współpraca jest znacznie lepsza.
  22. Co to niby jest? Takie coś to sobie można użyć do przesyłania danych na lokalu dla zabawy. Pewnie nie zrozumiałeś tematu ale nikt zapewne nie pisał o takich podstawach podstaw i równie dobrze się to nadaje do gier multi jak kartonowy walec do prac przy budowie drogi.
  23. Znajdź mi grafików, którzy za tysiaka zrobią modele/tekstury do całej gry(co najwyżej kilka modeli). Za te kilka tysięcy, które opisujesz to nawet prostej komercyjnej platformówki nie zrobisz a nawet nie wyjdziesz z fazy design'u(nie piszę o sytuacji gdzie team robi za free).
  24. Za taką kasę może dostać co najwyżej jakiś syf. mmo to nie tylko przesyłanie sobie paczek i jest git. Chyba, że za mmo uznajemy gry na kilkanaście graczy. Wystarczy poszukać gotowej biblioteki: http://www.jenkinssoftware.com/index.html Byłby idiotą jakby zabulił tysiaka za coś co i tak mu się nie przyda.
×
×
  • Dodaj nową pozycję...