Fervi_ Opublikowano 12 Marca 2014 Udostępnij Opublikowano 12 Marca 2014 Witajcie! Muszę na sieci neuronowe rozwiązać "Problem Komiwojażera" - nie ważne w czym ;P Więc chcę użyć GM'a Na razie mam problem (z GM6 i Enigma) z obliczeniem dystansu do obiektu Najłatwiej byłoby obliczyć dystans z obiektu 0 do obiektu 1 (obj_0 i obj_1), ale nie wiem czy dobrze kombinuję (i tak coś nie działa) GML score=obj_1.distance_to_object(obj_2) Kod nie działa pod GM6 (wywołuje błąd), pod Enigmą się kompiluje, ale zwraca 0 (może funkcja distance_to_object nie działa poprawnie); anyway - jak wy byście zmierzyli Dystans między objektem 1, a 2 (lub 0 i 1, obojętne) Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 12 Marca 2014 Udostępnij Opublikowano 12 Marca 2014 point_distance() Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 12 Marca 2014 Filar Społeczności Udostępnij Opublikowano 12 Marca 2014 nie możesz funkcji wywoływać z kropki w gamemakerze with( obj1 ) global.distance = distance_to_object( obj2 ); //edit: opcjonalnie point_distance( obj1.x,obj1.y,obj2.x,obj2.y ); jak napisal threef miałem kartę długo otwartą i się nie skapnąłem, że ktoś już zdążył Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 12 Marca 2014 Autor Udostępnij Opublikowano 12 Marca 2014 Potwierdzam działanie, dziękuję wszystkim Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 16 Marca 2014 Autor Udostępnij Opublikowano 16 Marca 2014 Wasz znienawidzony Fervi, którego macie dość, potrzebuje jeszcze się coś dopytać 1) Czy istnieje zagadnienie "permutacji" w GM (chodzi mi o to, by GM przeanalizował wszystkie możliwe kombinacje cyfr od 0 do 7 (np. 01234567, 01234576) itd. Czasowo nie mam pytań Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 16 Marca 2014 Filar Społeczności Udostępnij Opublikowano 16 Marca 2014 http://gmc.yoyogames.com/index.php?showtopic=467756 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 16 Marca 2014 Autor Udostępnij Opublikowano 16 Marca 2014 To teraz najciekawsze i najgłupsze pytanie ever xD Mam plik o rozmiarze 362.9KB :D Z każdą możliwą możliwością 01234567 01234576 01234657 W takiej formie leci Jak zrobić, żeby (przykładowo na szybko) Każdy element był wyświetlany w jakiejś funkcji Ogólnie funkcja to distance_point(obj_0.x, obj_0.y,obj_1.x, obj_1.y) + distance_point(obj_1.x, obj_1.y,obj_2.x, obj_2.y) + itd. Chodzi o to, by pod obj_XYZ podkładać po kolei cyfry :D (w miejsce XYZ) Oj, czuję, że mój procesor eksploduje o ile ktoś pomoże z taką funkcją :D Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 16 Marca 2014 Filar Społeczności Udostępnij Opublikowano 16 Marca 2014 tablica obiektów? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 16 Marca 2014 Autor Udostępnij Opublikowano 16 Marca 2014 Istnieje takie pojęcie? Mogę zmienić np. nazwę obiektu z obj_XYZ na XYZ Tylko czy to ma jakiś głębszy sens Ewentualnie oszukam przeznaczenie i jakoś to będzie (na ograniczonej liczbie obiektów, nie 8, a np. 4 - 6) Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
szmalu Opublikowano 16 Marca 2014 Udostępnij Opublikowano 16 Marca 2014 No to nie operuj na nazwach, tylko na id tworzonych obiektów, wsadź je do najprostszej tablicy i zamiast XYZ w nazwie używaj indeksów tablicy. GML obj[0]=instance_create(); obj[1]=instance_create(); (...) point_distance(obj[0].x, obj[0].y,obj[1].x, obj[1].y) + point_distance(obj[1].x, obj[1].y,obj[2].x, obj[2].y)+(...) Możesz użyć prostej pętli żeby to wszystko dodać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 17 Marca 2014 Autor Udostępnij Opublikowano 17 Marca 2014 Inne pytanie funkcja min zwraca minimalne liczby (np. 0, 1, 2 da 0) Czy da się podając jako argument (ab, ac) wyciągnąć, który argument jest mniejszy (przykładowo ac)? Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 17 Marca 2014 Udostępnij Opublikowano 17 Marca 2014 Możesz bardziej sprecyzować? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Madness Opublikowano 17 Marca 2014 Udostępnij Opublikowano 17 Marca 2014 Inne pytanie funkcja min zwraca minimalne liczby (np. 0, 1, 2 da 0) Czy da się podając jako argument (ab, ac) wyciągnąć, który argument jest mniejszy (przykładowo ac)? Fervi Jeśli chodzi Ci o zwykłą funkcje min. to w GM'ie będzie to wyglądało chyba tak: GML a = argument0; b = argument1; if( a > b ) return b; else return a; Dawno nie pisałem nic w GM'ie, ale jeśli mnie pamięc nie myli, to robiło się coś w tym stylu. Rzecz jasna tworzysz sobie skrypt, i wklepujesz do niego powyższy kod. Potem zwykłe wywołanie skryptu w kodzie, gdzie Ci tam to potrzebne: GML zmienna = nazwa_skryptu( liczba, liczba ); // I oto do zmiennej zostanie zapisana ta mniejsza liczba.</span> Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 18 Marca 2014 Autor Udostępnij Opublikowano 18 Marca 2014 Opiszę o co chodzi (z nowym przykładem) To jest przykład Ogólnie na dzień dzisiejszy kod wygląda tak, że jest skrypt, który przyjmuje 8 argumentów, oblicza point distance i wyciąga minimum (np. 3000) Jednak mając 5000 danych do porównania dość ciężko wiedzieć, który jest minimum I chodzi o to, by wiedzieć, który jest minimum i jakie ma argumenty (argument0 itd.), by potem do draw_line wykorzystać Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 18 Marca 2014 Udostępnij Opublikowano 18 Marca 2014 Sprawdzaj minimum w pętli po tych pięciu k danych. GML var Min, dist, i; Min = $FFFFFF; // jakaś tam w uj duża liczba for ( i = 0; i < 5000; i++ ) { // tutaj obliczasz ten point distance if ( dist < Min ) Min = dist; } return Min; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 21 Marca 2014 Autor Udostępnij Opublikowano 21 Marca 2014 Prawdopodobnie ostatnie pytanie :D w Scripts -> Liczykon mam GML score=point_distance(argument0.x, argument0.y, argument1.x, argument1.y)+point_distance(argument1.x, argument1.y, argument2.x, argument2.y)+point_distance(argument2.x, argument2.y, argument3.x, argument3.y)+point_distance(argument3.x, argument3.y, argument4.x, argument4.y)+point_distance(argument4.x, argument4.y, argument5.x, argument5.y)+point_distance(argument5.x, argument5.y, argument6.x, argument6.y)+point_distance(argument6.x, argument6.y, argument7.x, argument7.y)+point_distance(argument7.x, argument7.y, argument0.x, argument0.y); if(score<lives) { return(min(lives, score)); global.a=argument0 global.b=argument1 global.c=argument2 global.d=argument3 global.e=argument4 global.f=argument5 global.g=argument6 global.h=argument7 } W obj_controller zrobiłem tester (Draw) GML draw_text(10, 10, score); draw_text(20, 10, a); draw_text(30, 10, b); draw_text(40, 10, c); draw_text(50, 10, d); draw_text(60, 10, e); draw_text(70, 10, f); draw_text(80, 10, g); draw_text(90, 10, h); I zwracany jest tylko score. Zakładam, że muszę zreturnować każdą ze zmiennych? Tylko jak to zrobić (nie ma chyba funkcji, która zwraca dwie wartości) Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 21 Marca 2014 Udostępnij Opublikowano 21 Marca 2014 draw_text(20, 10, global.a); Ale pamiętaj że global są... o zasięgu globalnym, więc w będą się nadpisywać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 21 Marca 2014 Autor Udostępnij Opublikowano 21 Marca 2014 Zrobiłem tak jak napisałeś (wstawiając wszędzie global) i nic Za to jeśli pod jedną ze zmiennych podstawiłem "health" - zadziałało D A F U Q Fervi PS. Globalvar (a, b, c, d, e, f, g, h); CHYBA DZIAŁA, CZEKAĆ Niestety, nie działa :| ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 21 Marca 2014 Udostępnij Opublikowano 21 Marca 2014 Ale chyba return ci przerywa i do tych globali już nie dochodzi. daj return niżej. W sumie musiał bym to sprawdzić. edit: Dobra sprawdziłem, tak return ci przerywa za wcześnie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 21 Marca 2014 Autor Udostępnij Opublikowano 21 Marca 2014 Faktycznie, sam sprawdziłem :| Ale noob ze mnie Dziękuję, pomyślę jak się odwdzięczyć Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się