|
Polski Portal COLOBOTa COLOBOT Polish Portal |
|
Problemy [programowanie] - Nieznana funkcja.
Berserker - 25-03-2009, 21:48 Temat postu: Nieznana funkcja. Wie ktoś może co ukrywa w sobie funkcja "final()"?
Przy okazji: W jaki sposób dokładnie robale zarażają roboty? Przez dotyk nie działa.
///brak polskich znaków (już nie będę zaznaczał) - Abadon
DOJO - 26-03-2009, 09:00
Jeśli chodzi o robale to dla mnie zagadka, bo jak do mojego bota podeszły - to był zawirusowany.. Ale oprócz tego nic się z nim nie działo.. Działał jak należy.
EDIT:
Robak wystarczy że podejdzie... A jak nie chcę zawirusować to niewiem. Bo w jego skrypcie nic o virusach nie znalazłem, tylko podchodzenie do robotów.
colobotwymiiata - 26-03-2009, 13:44
A podchodziłeś programowo, czy z użyciem selectinsect? Bo jeśli tak, to normalne.
Berserker - 26-03-2009, 16:40
"motor(1-dir/90, 1+dir/90);" - robal tylko sie pokrecil wokol robota... po 5 min lazenia litosciwie zbudowalem wieze.
Nikt nie wie o tym finalu?
colobotwymiiata - 04-04-2009, 21:28
Nie wiem nic o tym finalu, ale ja też odkryłem cośdziwnego: mianowicie funkcję "throw();". O ile mi wiadomo, służy ona do.......wyświetlania błędów! Gdy wpisywałem między nawiasy jakieś liczby, wyświetlało "Błąd". A najdziwniejsze jest to, że jak wpisałem "throw("AlienQueen"); to wyświetliło......... "Brak ogniwa elektrycznego"! Colobot coraz bardziej mnie przeraża.......nie będe dzisiaj spał spokojnie.........
DOJO - 05-04-2009, 00:20
Hmmm.. Throw to znaczy "rzuć".. Możesz podać dokładniejsze okoliczności tej komendy? Np: Jakim robotem to zrobiłeś, czy coś trzymał i tak dalej.
adiblol - 05-04-2009, 09:26
Throw to w języku C++ i Java coś z błędami... może w Colobocie działa składnia try..catch? Byłoby nieźle...
Największym moim marzeniem jest include(string filename);
[ Dodano: 05-04-2009, 09:30 ]
Aha no i throw przerywa działanie programu.
[ Dodano: 05-04-2009, 09:33 ]
Skąd w ogóle znacie te funkcje? Z dekompilacji? Z Obcych? Z neta?
[ Dodano: 05-04-2009, 09:34 ]
http://en.wikipedia.org/wiki/Final_(Java)
[ Dodano: 05-04-2009, 09:43 ]
Męczę się z tym finalem, wywala mi że "brak deklaracji typu", a typedef nie działa to nie jest normalne C++
colobotwymiiata - 05-04-2009, 10:32
Programer zdekompilował plik "Cbot.dll" i tam są te dziwne funkcje. Była tam też funkcja "catch();"! "try();" też było! Teraz zastanawia mnie funkcja "super". Co to ma być?? Naprawdę zaczynam się bać tej gry.
adiblol - 05-04-2009, 10:55
try i catch to NIE funkcje tylko elementy struktury!
colobotwymiiata - 05-04-2009, 11:19
Czyli co one robią? Bo mi sie udało napisać "try(WingedShooter);" tak jak "grab" czy "fire" ale po odpaleniu tej komendy nic sie nie dzieje. Ja sie pierwszy raz spotykam z takimi instrukcjami(strukturami czy jak im tam jeszcze), bo Cbot to mój pierwszy język programowania w życiu.
adiblol - 05-04-2009, 11:43
Kod: | try {
// ...
// instrukcje mogace wywolac bledy
throw(1); // wywal blad o numerze 1
// itp.
// ...
} catch(e) {
// instrukcje wykonywane w przypadku napotkania bledu
if (e==1) // blad o numerze 1
if (e==2) // blad o numerze 2
} |
Czy jakoś podobnie...
[ Dodano: 05-04-2009, 12:08 ]
No bawiłem się i coś takiego mi wyszło:
Kod: | extern void object::Nowy()
{
int e=0;
int chlam_niezainicjowany;
try {
// ...
// instrukcje mogace wywolac bledy
// e=2;
message("Przed wyjatkiem");
// message("Bleblebe"+chlam_niezainicjowany);
// fire(1);
throw(2); // wywal blad o numerze 1
message("Po wyjatku");
// itp.
// ...
} catch(e) {
// instrukcje wykonywane w przypadku napotkania bledu
message("Blad "+e);
}
} |
Czyli mamy undocumented feature, niestety źle działające (możecie spróbować)
colobotwymiiata - 05-04-2009, 12:23
Dodano: 05-04-2009, 12:23
A to może lepiej zostawie te komendy w spokoju.........i tak nic z tego nie rozumiem......
[ Dodano: 06-04-2009, 13:30 ]
Hmm.... Przeszukałem angielską Wikipedię i wyszło mi coś takiego:
http://en.wikipedia.org/w...mputer_science)
Wydaje mi się, że to coś z klasami. Czyli i tak nic z tego nie zrozumiem
lukas_j - 28-04-2009, 14:15
Dziwna funkcja, final... hmm nie znam
a co do zarazania wirusami, to mało prawdopodobne ze cos sie stanie, ale czasem tak.
On zmienia kod programu czasami
np wszystkie grab(); zamienia na drop();
mi tak zamienilo kiedys
PS: Mój 100 post
colobotwymiiata - 28-04-2009, 17:42
Zaraz, zaraz! Olśniło mnie z tym "try"! Skoro on reaguje na błędy, to jeśli uda mi się znaleźć numer błędu "Robot Zniszczony", będe mógł zrobić jeszcze jakąś komendę po śmierci? Do mrówek by się przydało... rozwalasz jedną a tu druga
Programerus - 28-04-2009, 18:11
Po prostu daj warunek, że osłona robota ma 0.0 lub mniej
colobotwymiiata - 29-04-2009, 15:51
Wtedy najprawdopodobniej robot nie zdąży wykonać polecenia... a ta komenda jest inna.. Zresztą nie znam się na tym(ale będe!)...
Programerus - 29-04-2009, 18:24
Tak, ale mi chodzi o to żeby dać taki warunek w instrukcji Try...Catch
lukas_j - 02-05-2009, 23:50
O widze ze jak zwykle 1000 pomysłow jak to wykorzystac
Dla mnie najlepiej jak by było #include, #define oraz inne. Obsluga plikow jest. Jeszcze by sie przydalo wstrzymanie programu na x sekund
adiblol - 03-05-2009, 11:49
Cytat: | Jeszcze by sie przydalo wstrzymanie programu na x sekund |
wait(x);
|
|