-
11. Data: 2012-04-22 19:41:36
Temat: Re: nazwa dla procedury
Od: A.L. <l...@a...com>
On Sun, 22 Apr 2012 16:39:05 +0200, MalyWesolyTroll
<j...@s...pl> wrote:
>Dnia Sat, 21 Apr 2012 15:43:24 +0000 (UTC), f...@N...gazeta.pl
>napisał(a):
>
>> pytanie jak to nazwac (owa procedure), bo jakas
>> krotka nazwa by sie przydala a nie mam pojecia
>> jak to nazwac (ew mozna mowic 'centralna procedura ai'
>> ale nie jest to za dobre przydaloby sie cos krotkiego
>> i wlasciwego)
Proponuje alamakota(...)
A.L.
-
12. Data: 2012-04-22 20:42:56
Temat: Re: nazwa dla procedury
Od: "M.M. " <m...@g...pl>
<f...@g...pl> napisał(a):
> M.M. <m...@g...pl> napisał(a):
>
> > <f...@g...pl> napisał(a):
> > > co do tematu zlych nazw to mysle ze nalezy sie zajac tematem
> > > i podszkolic w tym temacie, przede wszystkim nauczyc odrozniac
> > > co jest zla nazwa a co dobra
> > Dobra to taka która pomaga zrealizować założony cel, zła to taka
> > która nie pomaga, albo wręcz przeszkadza. Często celem jest szybkie
> > napisanie aplikacji, więc zbytnie dumanie nad dobrymi nazwami nie
> > przybliży nikogo do tego celu, bo dumanie samo w sobie zajmuje czas :)
> >
>
> są 'projekty' ktore szybkie pisanie nie calkiem obejmuje bo nie
> chodzi o to by to szybko napisac tylko przede wszystkim by to
> wogole napisac, i jak sie pisze to sie mysli jak napisac to lepiej
> a nie szybciej (choc wiadomo ze dotyczy to bardziej tworczych
> projektow a nie po prostu funkcjonalnych - ja sam medytuje zauwazalna
> ilosc czasu
Wszystko co robimy jest funkcją czasu i pieniędzy. Może kiedyś programista
będzie żył wiecznie, albo będzie mógł się cofnąć w czasie i to prawo go
nie będzie obejmowało. Dziś gdy programista poświęci za dużo czasu na
zbędne rzeczy, to właśnie jak to piszesz "w ogóle tego nie napisze" bo
wcześniej umrze :)
Pozdrawiam
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
13. Data: 2012-04-23 08:16:28
Temat: Re: nazwa dla procedury
Od: " " <f...@g...pl>
M.M. <m...@g...pl> napisał(a):
> <f...@g...pl> napisał(a):
>
> > M.M. <m...@g...pl> napisał(a):
> >
> > > <f...@g...pl> napisał(a):
> > > > co do tematu zlych nazw to mysle ze nalezy sie zajac tematem
> > > > i podszkolic w tym temacie, przede wszystkim nauczyc odrozniac
> > > > co jest zla nazwa a co dobra
> > > Dobra to taka która pomaga zrealizować założony cel, zła to taka
> > > która nie pomaga, albo wręcz przeszkadza. Często celem jest szybkie
> > > napisanie aplikacji, więc zbytnie dumanie nad dobrymi nazwami nie
> > > przybliży nikogo do tego celu, bo dumanie samo w sobie zajmuje czas :)
> > >
> >
> > są 'projekty' ktore szybkie pisanie nie calkiem obejmuje bo nie
> > chodzi o to by to szybko napisac tylko przede wszystkim by to
> > wogole napisac, i jak sie pisze to sie mysli jak napisac to lepiej
> > a nie szybciej (choc wiadomo ze dotyczy to bardziej tworczych
> > projektow a nie po prostu funkcjonalnych - ja sam medytuje zauwazalna
> > ilosc czasu
> Wszystko co robimy jest funkcją czasu i pieniędzy. Może kiedyś programista
> będzie żył wiecznie, albo będzie mógł się cofnąć w czasie i to prawo go
> nie będzie obejmowało. Dziś gdy programista poświęci za dużo czasu na
> zbędne rzeczy, to właśnie jak to piszesz "w ogóle tego nie napisze" bo
> wcześniej umrze :)
No ale problem polegajacy na tym by cos napisac jest mz bardziej
pierwotny niz problem polegajacy na tym by to napisac szybko -
tak ze i tak trzeba sie koncentrowac na tym pierwszym, a to
pierwsze wymaga przemyslenia problemu, im lepiej go zrozumiem
tym latwiej i szybciej mi pojdzie
- zalezy od projektu bo teraz klepiac elementy prostego tilowego
erpega czyje sie zupelnie inczej niz wczesniej rotujac bitmapy,
jest to zestaw zupelnie innych zagadnien (az dziwne jak jedno
jest rozne od drugiego)
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
14. Data: 2012-04-23 09:21:30
Temat: Re: nazwa dla procedury
Od: zażółcony <r...@c...pl>
W dniu 2012-04-21 17:43, f...@N...gazeta.pl pisze:
> kiedy klepie sie ai dla botow to jest pewna
> glowna procedura owego ai, tam gdzie bot
> sprawdza aktualne warunki (zewn i wewn) i
> podejmuje decyzje nt swoich dzialan
>
> niekoniecznie jest to dlugie (moze miec kilkanascie
> linijek) i zwykle zawiera jakas doze ifów
>
> pytanie jak to nazwac (owa procedure), bo jakas
> krotka nazwa by sie przydala a nie mam pojecia
> jak to nazwac (ew mozna mowic 'centralna procedura ai'
> ale nie jest to za dobre przydaloby sie cos krotkiego
> i wlasciwego)
Ja akurat w przypadku ai botów spotkałem się z tym,
że nie ma centralnej procedury, tylko są różne
współpracujące strategie zachowania - i każda z nich
analizuje sama, to co ją interesuje.
Patrz 'strategy design pattern'.
Strategia ruchu, strategia sterowania radarem,
strategia kierowania lufą, strategia doboru
momentu wystrzału i siły ładunku.
http://robocode.sourceforge.net/
-
15. Data: 2012-04-23 10:03:41
Temat: Re: nazwa dla procedury
Od: " " <f...@g...pl>
zażółcony <r...@c...pl> napisał(a):
> W dniu 2012-04-21 17:43, f...@N...gazeta.pl pisze:
> > kiedy klepie sie ai dla botow to jest pewna
> > glowna procedura owego ai, tam gdzie bot
> > sprawdza aktualne warunki (zewn i wewn) i
> > podejmuje decyzje nt swoich dzialan
> >
> > niekoniecznie jest to dlugie (moze miec kilkanascie
> > linijek) i zwykle zawiera jakas doze ifów
> >
> > pytanie jak to nazwac (owa procedure), bo jakas
> > krotka nazwa by sie przydala a nie mam pojecia
> > jak to nazwac (ew mozna mowic 'centralna procedura ai'
> > ale nie jest to za dobre przydaloby sie cos krotkiego
> > i wlasciwego)
>
> Ja akurat w przypadku ai botów spotkałem się z tym,
> że nie ma centralnej procedury, tylko są różne
> współpracujące strategie zachowania - i każda z nich
> analizuje sama, to co ją interesuje.
>
> Patrz 'strategy design pattern'.
>
> Strategia ruchu, strategia sterowania radarem,
> strategia kierowania lufą, strategia doboru
> momentu wystrzału i siły ładunku.
>
> http://robocode.sourceforge.net/
raczej sa polaczone w jednym miejscu bo bot musi
zdecydowac czy w danym kwancie ruszyc lufa czy sie przesunac
a jak nie to powiedz jak mialoby wygladac to 'rozdzielenie'
- jakis rodzaj rozdzielenia mozna sobie wyobrazic, np
silnik czolgu ma osobne ai i wieza strzelnicza osobne
i dzialaja rownolegle,
ale i tak wszystko jest wywolywane we wspolnej galezi,
tak ze nie jest dla mnie calkiem jasne czy pojecie 'centralnej
procedury ai' sie tu nie stosuje - tak naprawde wydaje mi sie
ze bot to glownie ta procedura + api do jej realizowania,
tak ze nie wiem co tu by mozna pociac i w co powtykac
tak zeby to nie mialo takiej centralnej postaci
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
16. Data: 2012-04-23 10:36:20
Temat: Re: nazwa dla procedury
Od: zażółcony <r...@c...pl>
W dniu 2012-04-23 10:03, f...@g...pl pisze:
> zażółcony<r...@c...pl> napisał(a):
>
>> W dniu 2012-04-21 17:43, f...@N...gazeta.pl pisze:
>>> kiedy klepie sie ai dla botow to jest pewna
>>> glowna procedura owego ai, tam gdzie bot
>>> sprawdza aktualne warunki (zewn i wewn) i
>>> podejmuje decyzje nt swoich dzialan
>>>
>>> niekoniecznie jest to dlugie (moze miec kilkanascie
>>> linijek) i zwykle zawiera jakas doze ifów
>>>
>>> pytanie jak to nazwac (owa procedure), bo jakas
>>> krotka nazwa by sie przydala a nie mam pojecia
>>> jak to nazwac (ew mozna mowic 'centralna procedura ai'
>>> ale nie jest to za dobre przydaloby sie cos krotkiego
>>> i wlasciwego)
>>
>> Ja akurat w przypadku ai botów spotkałem się z tym,
>> że nie ma centralnej procedury, tylko są różne
>> współpracujące strategie zachowania - i każda z nich
>> analizuje sama, to co ją interesuje.
>>
>> Patrz 'strategy design pattern'.
>>
>> Strategia ruchu, strategia sterowania radarem,
>> strategia kierowania lufą, strategia doboru
>> momentu wystrzału i siły ładunku.
>>
>> http://robocode.sourceforge.net/
>
> raczej sa polaczone w jednym miejscu bo bot musi
> zdecydowac czy w danym kwancie ruszyc lufa czy sie przesunac
>
> a jak nie to powiedz jak mialoby wygladac to 'rozdzielenie'
> - jakis rodzaj rozdzielenia mozna sobie wyobrazic, np
> silnik czolgu ma osobne ai i wieza strzelnicza osobne
> i dzialaja rownolegle,
> ale i tak wszystko jest wywolywane we wspolnej galezi,
> tak ze nie jest dla mnie calkiem jasne czy pojecie 'centralnej
> procedury ai' sie tu nie stosuje - tak naprawde wydaje mi sie
> ze bot to glownie ta procedura + api do jej realizowania,
> tak ze nie wiem co tu by mozna pociac i w co powtykac
> tak zeby to nie mialo takiej centralnej postaci
Twój mózg nie ma żadnej centralnej procedury - a działa
całkiem inteligentnie.
Ale zostawiając mózg, a wracając do projektowania.
Wzorcem podobnym do 'strategy' jest wzorzec 'state'
lub 'state machine'.
Mówienie w tym wypadku o centralnej procedurze
jest niewłaściwe - bo istotne jest to, że masz
jakiś stan i on reaguje na zdarzenia. Może zareagować
zmianą stanu na inny itp. Istotne jest to, że nie
tworzysz jednej procedury zawierającej całą inteligencję,
ale rozpraszasz tę inteligencję pomiędzy wiele procedur
w różnych stanach. W rzeczywistej implementacji
oczywiście moze sie zdarzyć, że gdzieś tam istnieje jakiś
centralny dispatcher eventów, ale zajmuje się on wyłącznie
przepchnięciem ich do aktualnie ustawionego stanu
(lub też stanów - złożony organizm może się składać
z wielu maszyn stanów odpowiedzialnych za sterowanie
różnymi funkcjami).
Wracając do robocode, jest bardzo ładny designersko
robot 'rapture', który dobrze nadaje się imo właśnie
do nauki, jak wyglada 'strategy pattern':
http://robocoderepository.com/BotDetail.jsp?id=15
Być może u Ciebie jest na to za wcześnie, ale idea
jest taka, że różnym funkcjom 'organizmu' nadajemy
wysoką niezależność działania - dzięki temu izolujemy
kod, zawężamy cele procedur do rozwiązywania problemów
z konkretnych dziedzin, a nie 'wszystkich'. Dla
przykładu strategie ruchu są przykładowo takie:
- jedna nastawiona na unikanie przeszkód (zderzanie
ze ścianami jest bolesne) i włącza się, kiedy robot jest
blisko ściany
- kolejna jest nastawiona na unikanie tłumu, bo
'gdzie drwa rąbią tam wióry lecą' - duży tłok oznacza
dużo zderzeń i duże zagęszczenie odpalonych pocisków
- strategia włącza się, kiedy w pobliżu jest np. więcej
niż trzech przeciwników
- strategia trzymania optymalnej odległości i
'chaotycznego tańczenia' w walce z pojedynczym, wybranym
przeciwnikiem
Zauważ, że powyższe strategie zajmują się wyłącznie
sterowaniem podwoziem - wyborem miejsca na mapie,
do którego chcemy się udać i techniczną realizacją
- obróceniem się w wybranym kierunku i odpowiednia prędkość.
Osobno sterowany jest radar. Zasadniczo ma dwie strategie:
- skan ogólny - obserwowanie całego otoczenia w celu
rozeznania co się dzieje - policzenia wrogów, zgrubnego
oszacowania ich ruchów itp
- skanowanie podczas walki - radar drga w ograniczonym zakresie
kątów będąc skupionym na wybranym przeciwniku, dzięki czemu
uzyskuje na bieżąco dokładne informacje o jego położeniu
i prędkości, co jest kluczowe dla precyzyjnego strzelania.
Jest jeszcze, o ile pamiętam, zestaw strategii dla
wieżyczki i działa (np. dobór ładunku zależnie od
odległości, własnej energii i czegoś tam)
-
17. Data: 2012-04-23 10:55:22
Temat: Re: nazwa dla procedury
Od: " " <f...@g...pl>
zażółcony <r...@c...pl> napisał(a):
> W dniu 2012-04-23 10:03, f...@g...pl pisze:
> > zażółcony<r...@c...pl> napisał(a):
> >
> >> W dniu 2012-04-21 17:43, f...@N...gazeta.pl pisze:
> >>> kiedy klepie sie ai dla botow to jest pewna
> >>> glowna procedura owego ai, tam gdzie bot
> >>> sprawdza aktualne warunki (zewn i wewn) i
> >>> podejmuje decyzje nt swoich dzialan
> >>>
> >>> niekoniecznie jest to dlugie (moze miec kilkanascie
> >>> linijek) i zwykle zawiera jakas doze ifów
> >>>
> >>> pytanie jak to nazwac (owa procedure), bo jakas
> >>> krotka nazwa by sie przydala a nie mam pojecia
> >>> jak to nazwac (ew mozna mowic 'centralna procedura ai'
> >>> ale nie jest to za dobre przydaloby sie cos krotkiego
> >>> i wlasciwego)
> >>
> >> Ja akurat w przypadku ai botów spotkałem się z tym,
> >> że nie ma centralnej procedury, tylko są różne
> >> współpracujące strategie zachowania - i każda z nich
> >> analizuje sama, to co ją interesuje.
> >>
> >> Patrz 'strategy design pattern'.
> >>
> >> Strategia ruchu, strategia sterowania radarem,
> >> strategia kierowania lufą, strategia doboru
> >> momentu wystrzału i siły ładunku.
> >>
> >> http://robocode.sourceforge.net/
> >
> > raczej sa polaczone w jednym miejscu bo bot musi
> > zdecydowac czy w danym kwancie ruszyc lufa czy sie przesunac
> >
> > a jak nie to powiedz jak mialoby wygladac to 'rozdzielenie'
> > - jakis rodzaj rozdzielenia mozna sobie wyobrazic, np
> > silnik czolgu ma osobne ai i wieza strzelnicza osobne
> > i dzialaja rownolegle,
> > ale i tak wszystko jest wywolywane we wspolnej galezi,
> > tak ze nie jest dla mnie calkiem jasne czy pojecie 'centralnej
> > procedury ai' sie tu nie stosuje - tak naprawde wydaje mi sie
> > ze bot to glownie ta procedura + api do jej realizowania,
> > tak ze nie wiem co tu by mozna pociac i w co powtykac
> > tak zeby to nie mialo takiej centralnej postaci
>
> Twój mózg nie ma żadnej centralnej procedury - a działa
> całkiem inteligentnie.
>
> Ale zostawiając mózg, a wracając do projektowania.
> Wzorcem podobnym do 'strategy' jest wzorzec 'state'
> lub 'state machine'.
>
> Mówienie w tym wypadku o centralnej procedurze
> jest niewłaściwe - bo istotne jest to, że masz
> jakiś stan i on reaguje na zdarzenia. Może zareagować
> zmianą stanu na inny itp. Istotne jest to, że nie
> tworzysz jednej procedury zawierającej całą inteligencję,
> ale rozpraszasz tę inteligencję pomiędzy wiele procedur
> w różnych stanach. W rzeczywistej implementacji
> oczywiście moze sie zdarzyć, że gdzieś tam istnieje jakiś
> centralny dispatcher eventów, ale zajmuje się on wyłącznie
> przepchnięciem ich do aktualnie ustawionego stanu
> (lub też stanów - złożony organizm może się składać
> z wielu maszyn stanów odpowiedzialnych za sterowanie
> różnymi funkcjami).
>
> Wracając do robocode, jest bardzo ładny designersko
> robot 'rapture', który dobrze nadaje się imo właśnie
> do nauki, jak wyglada 'strategy pattern':
> http://robocoderepository.com/BotDetail.jsp?id=15
>
> Być może u Ciebie jest na to za wcześnie, ale idea
> jest taka, że różnym funkcjom 'organizmu' nadajemy
> wysoką niezależność działania - dzięki temu izolujemy
> kod, zawężamy cele procedur do rozwiązywania problemów
> z konkretnych dziedzin, a nie 'wszystkich'. Dla
> przykładu strategie ruchu są przykładowo takie:
> - jedna nastawiona na unikanie przeszkód (zderzanie
> ze ścianami jest bolesne) i włącza się, kiedy robot jest
> blisko ściany
> - kolejna jest nastawiona na unikanie tłumu, bo
> 'gdzie drwa rąbią tam wióry lecą' - duży tłok oznacza
> dużo zderzeń i duże zagęszczenie odpalonych pocisków
> - strategia włącza się, kiedy w pobliżu jest np. więcej
> niż trzech przeciwników
> - strategia trzymania optymalnej odległości i
> 'chaotycznego tańczenia' w walce z pojedynczym, wybranym
> przeciwnikiem
>
> Zauważ, że powyższe strategie zajmują się wyłącznie
> sterowaniem podwoziem - wyborem miejsca na mapie,
> do którego chcemy się udać i techniczną realizacją
> - obróceniem się w wybranym kierunku i odpowiednia prędkość.
>
> Osobno sterowany jest radar. Zasadniczo ma dwie strategie:
> - skan ogólny - obserwowanie całego otoczenia w celu
> rozeznania co się dzieje - policzenia wrogów, zgrubnego
> oszacowania ich ruchów itp
> - skanowanie podczas walki - radar drga w ograniczonym zakresie
> kątów będąc skupionym na wybranym przeciwniku, dzięki czemu
> uzyskuje na bieżąco dokładne informacje o jego położeniu
> i prędkości, co jest kluczowe dla precyzyjnego strzelania.
>
> Jest jeszcze, o ile pamiętam, zestaw strategii dla
> wieżyczki i działa (np. dobór ładunku zależnie od
> odległości, własnej energii i czegoś tam)
spook, (wiem jak to dziala bo u mnie to dziala tak samo),
z tym ze to nie mowi ze nie ma centralnej procedury decyzyjnej
a raczej o tym ze jest taka procedura i ja tu pytam jak to
sie naztwa/(jak to nazwac), dispatch bota czy wykonaj bota
są takie sobie
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
18. Data: 2012-04-23 11:04:00
Temat: Re: nazwa dla procedury
Od: zażółcony <r...@c...pl>
W dniu 2012-04-23 10:55, f...@g...pl pisze:
> spook, (wiem jak to dziala bo u mnie to dziala tak samo),
> z tym ze to nie mowi ze nie ma centralnej procedury decyzyjnej
> a raczej o tym ze jest taka procedura i ja tu pytam jak to
> sie naztwa/(jak to nazwac), dispatch bota czy wykonaj bota
> są takie sobie
To może execute() lub moje ulubione: doYourJob() ?
W przypadku maszyn stanów zdarza mi się onIdle()
dla odróżnienia od onEvent(...)
:)
-
19. Data: 2012-04-23 11:22:04
Temat: Re: nazwa dla procedury
Od: " " <f...@g...pl>
zażółcony <r...@c...pl> napisał(a):
> W dniu 2012-04-23 10:55, f...@g...pl pisze:
>
> > spook, (wiem jak to dziala bo u mnie to dziala tak samo),
> > z tym ze to nie mowi ze nie ma centralnej procedury decyzyjnej
> > a raczej o tym ze jest taka procedura i ja tu pytam jak to
> > sie naztwa/(jak to nazwac), dispatch bota czy wykonaj bota
> > są takie sobie
>
> To może execute() lub moje ulubione: doYourJob() ?
> W przypadku maszyn stanów zdarza mi się onIdle()
> dla odróżnienia od onEvent(...)
jest pare nazw do, act, move, live, wykonaj - ale kazda
nie do konca pasuje - chwilowo uzywam wykonaj choc moze
live jest lepsze, ew mozna zrobic przejsciowke spod wykonajBota
odpalac liveBot:/ drugi problem to 'ogolna' nazwa,
moze bede uzywac poki co jakichs slangowych nazw (skoro
nie znam oficjalnej krotkiej)
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
20. Data: 2012-04-23 11:31:31
Temat: Re: nazwa dla procedury
Od: zażółcony <r...@c...pl>
W dniu 2012-04-23 11:22, f...@g...pl pisze:
> zażółcony<r...@c...pl> napisał(a):
>
>> W dniu 2012-04-23 10:55, f...@g...pl pisze:
>>
>>> spook, (wiem jak to dziala bo u mnie to dziala tak samo),
>>> z tym ze to nie mowi ze nie ma centralnej procedury decyzyjnej
>>> a raczej o tym ze jest taka procedura i ja tu pytam jak to
>>> sie naztwa/(jak to nazwac), dispatch bota czy wykonaj bota
>>> są takie sobie
>>
>> To może execute() lub moje ulubione: doYourJob() ?
>> W przypadku maszyn stanów zdarza mi się onIdle()
>> dla odróżnienia od onEvent(...)
>
> jest pare nazw do, act, move, live, wykonaj - ale kazda
> nie do konca pasuje - chwilowo uzywam wykonaj choc moze
> live jest lepsze, ew mozna zrobic przejsciowke spod wykonajBota
> odpalac liveBot:/ drugi problem to 'ogolna' nazwa,
> moze bede uzywac poki co jakichs slangowych nazw (skoro
> nie znam oficjalnej krotkiej)
Na marginesie: oto, dlaczego warto korzystać z wzorców
projektowych. Robisz wzorzec - to i masz zazwyczaj
od razu propozycję nazwy dla metody w klasie (btw rozważ
jeszcze 'handle' :). I jak ktoś potem zajrzy w Twój kod
to też się będzie mniej zastanawiał, co to.
Tym samym, być może, będzie też w stanie lepiej Ci
coś doradzić, gdyby kiedyś zdarzył Ci się jakiś
dylemat :)