Skocz do zawartości

Raalsky

Użytkownicy
  • Postów

    52
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Raalsky

  1. Amaterasu, fajnie, na to to ja też wpadłem. Problemem stało się dla mnie przekształcenie tekstu. Potrzebowałbym znać podmiot, orzeczenie, synonimy danego słowa oraz najlepiej przekształcić to potem na bezokoliczniki lub id nadrzędnego słowa (bezokolicznika czy mianownika). Ma ktoś może bazę (nawet dość małą) synonimów w hierarchizowanej formie?
  2. Rozpoznawanie mowy już mam. Potrafię słuchać, ale nie rozumieć, co słyszę.
  3. Witam Poszukuję materiałów nt. przetwarzania języka naturalnego. Chciałbym stworzyć coś na podobieństwo Siri czy S-Voice jednak przeznaczeniem jest tutaj system sterowania domem. Jestem w stanie przetwarzać mowę na tekst z dość dobrymi wynikami oraz odczytywać odpowiedzi. Tekst jest już posegmentowany i poprawny ortograficznie. Poniżej coś, co chciałbym ostatecznie otrzymać: - Ustaw budzik na godzinę 6:30 - [budzik został nastawiony] - Obudź mnie o godzinie 6:30 - [budzik został nastawiony] itp. Mając grupę formuł czyli np. odnajdowanie czegoś, budzik itp. Chciałbym wyciągnąć kontekst i wymagane informacje niezależnie od formy zadanego pytania/polecenia. Google daje krótkie materiały lub odsyła do stron z ofertami zaprojektowania tego typu rozwiązań. Pozdrawiam i liczę na skromne podpowiedzi.
  4. A jaka jest różnica pomiędzy padem, a joystickem? (nie, nie w wyglądzie). Jakieś gałki, jakieś przyciski itp. Wszystko znajdziesz w eventach. Nie ma dla GM'a różnicy czy korzystasz z Joystick'a czy Pada
  5. Poszukuję ciekawszych artykułów na temat tworzenia silnika fizyki 2D/3D. Zależy mi głównie części teoretycznej jak radzić sobie z różnymi wektorami sił działających na ciało i implementację tego ewentualnie najlepszą strukturę danych. Język polski/angielski. Myślę, że temat przyda się innym.
  6. Tablica ma ograniczenie z tego powodu, że w pamięci przechowywana jest jako szereg komórek. Czyli tablica o rozmiarze n=10 zajmie w pamięci 10 kolejnych miejsc. System nie zawsze może znaleźć wystarczającą ilość wolnego miejsca i to sprawia, że mamy ograniczenia dla tablic. Najbezpieczniejszy rozmiar tablicy to coś koło 10^6. Listy wyglądają tak, że kolejne jej elementy trzymają się za rączki :D. Mamy element oraz wskaźnik na następny element tej listy, który może być w dowolnym miejscu w pamięci. Dlatego ograniczeniem dla list jest wyłącznie ilość pamięci jaką posiadamy. @down: Luzik, porównałem tylko zwykłą tablicę, a listę.
  7. Musiałbyś tutaj wykorzystać metrykę miejską, tzn. obrócić punkt o 45* otrzymując, że poruszanie się "izometryczne" stanie się normalnym. Musimy pamiętać o obracaniu przy każdym przemieszczeniu się. Nie mam tutaj GM'a więc nie mam jak tego pokazać. Mogę jednak jeszcze dodać miły wzorek na obrót punktu o 45*: x=x-y; y=x+y; Musisz trochę pokombinować z tym.
  8. To może lepiej jak nie lubisz pisać: Utwórz sprita pomniejszonego o 1px w każdą stronę czy jak tam chcesz i użyj go jako maski dla danego obiektu -> Masz to jako pole wyboru poniżej wyboru obrazka. Nie pamiętam czy GM dysponuje jakimś systemem tworzenia nowych obrazków i transformacji ich, bo można by wtedy wykorzystać raczej niezbyt skomplikowany kod, aby każdy wybrany obiekt od razu miał tak utworzoną klasę. @down: aaaa.... bo to tylko dla prostokątów...
  9. Witam Mam w C++ dość doświadczenia, aby przejść trochę dalej i wybrać jakąś bibliotekę "okienkową". W Pythonie używałem kiedyś GTK, ale podobno w C++ jest dość niekomfortowy na początek. W C++ myślałem o Qt, ale jakoś mi się nie podoba. Czy macie jakieś inne propozycje lub czy moglibyście wymienić swoje doświadczenia związane z GTK lub Qt? Dodam, że programuję pod Ubuntu z Gnome 3. Pozdrawiam
  10. GML t = true; zmienna = t*wartosc1+!t*wartosc2; t = !t; :-] Teoretycznie powinno działać. W C/C++ siedzę ostatnio, a tam raczej coś podobnego zadziała. Nie wiem tylko czy false interpretuje jako 0, a true jako 1. Jeśli tak to taki mój "smaczek".
  11. Zdarzenie kolizji wywołuj się tak szybko jaki masz room_speed cały czas jeżeli maski dwóch obiektów mają wspólne punkty. Możesz to wykorzystać sprawdzając wtedy pozycję obiektów.
  12. Miodnie. Tak, wiem co oznacza inline. Znam też klasy. Po prostu zbyt mało o strukturach znalazłem materiałów i nie wiedziałem jak głęboko sięga to utożsamianie się z klasami. Znasz jakiś dobry kurs średnio zaawansowanego C++? Uczyłem się z: http://cplusplus.com/files/tutorial.pdf ,jednak przyda się jeszcze jakieś materiały.
  13. Ja nie mówię, że to źle działa. Problem nie był z samym "this", ale z kolejnością definiowania struktur. Podałem poprawnie działający kod. Problem jest taki: struct a; struct b { a * parent; void bla( a * p ) { p->val = 4; }; }; struct a { int val; b * son; } I tutaj będzie problem. Bo, aby uniknąć problemów to najpierw definiuję tylko "wspomnienie" o strukturze A. Potem W strukturze B używam wskaźnika na A oraz mam metodę, która używa jakiejś właściwości z A, którą dopiero definiuję później. Czy jest możliwość, aby najpierw zdefiniować tak jakby część struktury, a potem dopisać do tego całą resztę? @up: spokojnie, użyłem tego szukając błędu. Poprzedni fragment wyglądał tak jak powinien "p->parent".
  14. Okej, problem leży trochę w innym miejscu. Daję pełny kod: #include <iostream> #include <vector> using namespace std; //Opakowanie strutkur w przestrzeń nazw "world" namespace world { //Preinformowanie kompilatora o użytych strukturach struct stTown; struct stHouse; struct stMan; //Struktura ulicy struct stStreet { //Nazwa ulicy string name; //Wektor wskaźników na domy vector<stHouse *>house; //Miasto do którego przynależy stTown * parent; //Konstruktor stStreet( string tName , stTown * p = NULL ) { name = tName; parent = p; }; }; //Typ do przechowywania informacji o płci danej osoby enum enSex { MALE , FEMALE }; //Struktura miasta struct stTown { //Każde miasto ma swoją nazwę np. "Warszawa" string name; //Wektor wskaźników na ulice vector<stStreet *>street; //Konstruktor stTown ( string tName ) { name = tName; }; //Dodawanie ulicy void push_street( stStreet * p ) { street.push_back( p ); street.back()->parent = this; } //Usuwanie ulicy void pop_street( stStreet * p ) { vector<stStreet *>::iterator it; int i; for( i=0; i<street.size(); i++ ) { if( street[i] == p ) break; } it = street.begin()+i; street.erase(it); } }; //Struktura domu struct stHouse { //Numer domu int number; //Wektor wskaźników na mieszkańców vector<stMan *>in; //Konstruktor stHouse( int tNumber ) { number = tNumber; }; }; //Struktura mieszkańca struct stMan { //Płeć enSex sex; //Wiek int age; //Imię string firstname; //Nazwisko string lastname; //Dom stHouse * home; //Konstruktor stMan( string tFirstname , string tLastname , int tAge , enSex tSex ) { firstname = tFirstname; lastname = tLastname; age = tAge; sex = tSex; }; //Przyłącz do domu void bind( stHouse * p ) { home = p; stMan * c = this; p->in.push_back( c ); }; }; //Globalne wektory zawierające same struktury vector<stTown>gTown; vector<stStreet>gStreet; vector<stHouse>gHouse; vector<stMan>gMan; }; Problem leży po stronie kolejności definiowania struktur itp. Gdy chcę się odwołać do właściwości, która jeszcze nie istnieje, ale mam zdefiniowany "nagłówek" struktury to kompilator wywala błąd. Ehh, dość ciężkie było do znalezienia.
  15. GCC(g++) jakoś nie trawił używania this wraz ze strukturą. Dzięki, że mi to pokazałeś. Będę dalej kombinował. Bodajże używałem this jako elementu a nie jako wskaźnika na element i dlatego miałem problemy.
  16. Witam Mam strukturę "street", która oznacza ulicę. Ma właściwość jaką jest parent, czyli do jakiego "miasta" przynależy, czyli wskaźnik na strukturę "town". W strukturze "town" mam wektor wskaźników na ulice oraz metodę, która dodaje kolejne wskaźniki do tego wektora. Chciałbym, aby przy każdym dodawaniu ulicy dana ulica miała ustawianego "ojca" na strukturę town dla której została wywołana ta metoda. Brzydkim rozwiązaniem byłoby wrzucanie tego przez argumeny metody, bo podobne metody mam jeszcze przy kilku strukturach. Poszukuję czegoś typu "this" z klas, ale dla struktur. struct town; struct street { town * parent; }; struct town { vector<street *>streets; void push_street( street * p ) { streets.push_back( p ); p->parent = WSKAŹNIK NA AKTUALNĄ STRUKTURĘ } }
  17. Dzięki Platyna. Tego szukałem. Dopiero teraz dowiaduje się jaki to mój kod jest anarchiczny stosując ciągłe tab[n]. Jakoś nigdy nie miałem "demonów".
  18. DMZ to strefa zdemilitaryzowana. To co tam się znajdzie nie wyjdzie do wewnętrznej sieci :D. Zrób przekierowanie portów (takie jakie używa Twój serwer). Najlepiej jeśli na początek będzie się bawił MMO na sieci lokalnej (ustawiasz ip serwerowi takie jakie ma on w sieci lokalnej i tyle). Edit: @down: pierwsze słyszę, aby DMZ grzebał w portach.
  19. Na obozie informatycznym miałem dylemat z kolegami z OIG'a i OI. Chodziło o to czy można zainicjować tablicę gdzie jej rozmiar będzie równy wartości danej zmiennej - tab[n]. Ja z kolegą z OIG'a byliśmy za tym - sam bardzo często to praktykuję. Koledzy z OI twierdzili, że to jest błąd. Skończyło się na tym, że pokazałem kod źródłowy i jak to działa. Temat jednak mnie trochę zaciekawił i chciałbym wiedzieć jak wy inicjujecie coś takiego jak proste tablice. Dałem 3 możliwości jakie ja najczęściej stosuję. Jeśli ktoś zna inne to proszę pisać. Według mnie argumentem za używaniem tab[n] czyli tablicy w której to rozmiar byłby równy wartości danej zmiennej jest to, że w przypadku np. skryptu po stronie serwera (WWW etc.) gdzie kod jest uruchamiany tyle razy ile mamy zapytań do serwera - dane mają różny rozmiar i jedne mogą zużyć mniej pamięci niż inne, ale przy praktyce stosowanej przez finalistów OI kosz zużycia pamięci przy każdym zapytaniu byłby taki sam. Rozumiem, gdyby pisali w C, a nie w C++...
  20. Raalsky

    Konsola do zmiennej

    Tak myślałem. Więc poczytaj o ifstream. Widziałem przykłady z plikami wykonywalnymi, ale nie chciało mi się jakoś tego analizować. Edit: Też myślałem o czymś takim jak zapisanie wyjścia do pliku, ale to zdecydowanie kiepskie rozwiązanie. W np. PHP to pamiętam, że była funkcja, która uruchamiała program z danym wejściem i wywalała wyjście, które można było pobrać do zmiennej. Kolejna biblioteka: http://www.cplusplus.com/reference/iostream/fstream/ Przy każdej pokazują jak zrobić odczyt z wyjścia programu. Przydałby się przykład w którym będzie pokazane jak odczytywać i zapisywać dane - taka komunikacja z innymi aplikacjami np. jedna aplikacja odbiera dane, wpisuje je na wejściu do programu, który je sortuje i odczytuje następnie z wyjścia posortowany ciąg. Wszędzie widzę tylko przykłady jak oczytać coś ala hello world.
  21. Raalsky

    Konsola do zmiennej

    http://www.cplusplus.com/reference/iostream/stringstream/ Poczytaj o sstream itp. Po prostu zamiast iostreamowego "cin" i "coat" używasz własnego strumienia jako wejście/wyjście. #include <iostream> #include <sstream> #include <string> using namespace std; int main () { stringstream oss; string mystr; oss << "Sample string"; mystr=oss.str(); cout << mystr; return 0; } -> http://www.cplusplus.com/reference/iostrea...ringstream/str/ Edit: Nie jestem pewien czy Ciebie dobrze zrozumiałem. Podaj jak uruchamiasz dany program. Edit2: Powinna Ciebie zainteresować też biblioteka "ifstream".
  22. Tak, ale wtedy by było trochę bawienia z chowaniem tych ludków itp. Lepiej wszystko w 3d i obrócić kamerę. http://www.reinerstilesets.de/ - raczej zasoby, które Tobie przydadzą się.
  23. Raalsky

    Grafika

    Używasz surfejsów?
  24. Kropkami? echo "<img src='gwiazdka.png' onmouseover=".'"document.getElementById('."'asd').style.display = 'block'">";
  25. Dodawaj kolejne id do stosu? Pewnie to wiesz, ale instance_create zwraca id danego obiektu. Ewentualnie tablica asocjacyjna i sobie je jakoś nazywaj. Indeksy rosną bodajże o stałą wartość w GM, więc jedynie musisz wiedzieć który to był obiekt z kolei. Wytłumacz trochę bardziej swój problem.
×
×
  • Dodaj nową pozycję...