HTML

Programozó Páternoszter

Ez a Programozó Páternoszter (PP) blogja, a programozásról szól. Aktualitása, hogy a Debreceni Egyetem Informatikai Kara Magasszintű programozási nyelvek 1-2, C++ esattanulmányok, Java esettanulmányok című kurzusainak blogja is egyben.

A vadászat

A Debreceni Egyetem Programozói Évkönyve: az UDPROG projekt. A szakmai fórumunk a Facebook-en. Az új előadások a prezin.
A régi előadások:
Prog1:
1. C bevezetés
2. C tárgyalás
3. C befejezés
4. C a gyakorlatban
5. C++ bevezetés
6. C++ tárgyalás
7. C++ befejezés
8. C++ a gyakorlatban
9. Java platform bevezetés
10. Kvantuminformatikai alg. bev.
Prog2:
1. Java bevezetés
2. Java tárgyalás
3. Java befejezés
4. Java a gyakorlatban
5. Software Engineering bev.
6. Java EE bevezetés
7. AspectJ bevezetés
8. BPMN-BPEL SOA programozás
9. C++ haladó
10. Tensorflow

Kövess engem!

Friss topikok

Linkblog

Nem mindig a jobbik csapat nyer...*

2011.09.16. 15:33 nb

Ez a második hét (labor és előadás) posztja. Főleg focizni fogunk, de a labor elején, hasonlóan az első héthez, megismételjük a Prog1 második laborjának a feladatát, de most a megoldást ne C-ben, hanem Javában adjuk meg. Ehhez a Javát tanítok (1.12. példa - Titkosítás kizáró vaggyal) ad segítséget. A laboron 1/3 időt EXOR törjünk és 2/3 időben focizzunk!

5 trófea üti a markát annak, aki a laboron (vagy a blogon) első háromként (saját Java szoftverével) megtöri ezt a titkos szöveget (a kulcsról ugyanazt lehet feltenni, mint a hivatkozott Prog1 labor esetén).

További 3 trófeát kap, aki a laboron vállalja a Javát tanítok ExorTitkosító osztálya forrásának celebrálását, illetve +2, ha a saját törő programját is.

Fújjuk fel hát azt a labdát!

A következő pontok sikeres teljesítéséhez itt van segítségül a "Mesterséges intelligencia a gyakorlatban: bevezetés a robotfoci programozásba" című jegyzet, amiben már megtalálod az itt kiadott feladatokat, sok esetben egy megoldásukkal egyetemben, így hát olvass, tervezz, kódolj!

Aranylabor FC

2 trófeára válthatja az első három azt az Atan alapú programját, ami az Aranycsapat felállását veszi fel a középkezdéskor. Az évszázad mérkőzésének felállását például itt láthatjátok.

Csak a foci FC

4 trófeára válthatja az első három azt az Atan alapú programját, amiben minden játékosa egy emberként rohan a labda után a mérkőzés során.

 

Büntető FC

4 trófeára válthatja az első három azt az Atan alapú programját, amiben minden játékosa a saját büntetőterületén belül marad a mérkőzés során, de a büntető területen belül persze úgy viselkedik, mint az előző feladat csapata. 

 

Kapuba FC

4 trófeára válthatja az első három azt az Atan alapú programját, amiben minden játékosa a saját kapujában (gólvonalon) áll és onnan figyeli a labdát.

Foci iszony FC

4 trófeára válthatja az első három azt az Atan alapú programját, amiben a játékosok nemhogy a labda felé mozognak, hanem éppen menekülnek attól a mérkőzés során.

Ping-pong FC

6 trófeára válthatja az első három azt az Atan alapú programját, aminek minden játékosa a "játéktól" függetlenül oda-vissza vízszintesen mozog a mérkőzés során.

Mágnes FC

6 trófeára válthatja az első három azt az Atan alapú programját, amiben minden játékosa az ellenfél játékosai emberfogására törekszik.

Minden zsoldfizetés főnyeremény**

Mert ugye ez már nem is munka; sokkal inkább szórakozás: az előadás előkészületei alatt egyszerűen meccset nézünk...

aztán van előadás is:

*: Sebes Gusztáv: A magyar labdarúgás, Sport Lap- és Könyvkiadó, 1955.

**: (emlékeim szerint a szinkronos Aliens-ben) "A különleges osztagnál minden nap új kaland, minden étkezés lakoma, minden zsoldfizetés főnyeremény".

74 komment

Címkék: cia mesterséges intelligencia robocup robotfoci exor atan

A bejegyzés trackback címe:

https://progpater.blog.hu/api/trackback/id/tr443232008

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

nb · http://fersml.blog.hu 2011.09.18. 11:57:15

Futtatásra is van példa, pár oldallal később, pl.:
C:\Users\Norbi>java -cp Downloads\atan_0.4.3\atan.jar;Downloads\atan_0.4.3\log4j -
-1.2.16.jar;. CsakALabdaFC

Joe89 2011.09.18. 15:21:54

Sikerült feltörnöm a titkos.szoveg.p2.txt-t java progival. :D

Sz�zat

Haz�dnak rend�letlen�l
L�gy h�ve, oh magyar-.
B�lcs�d az s majdan s�rod is,
Mely �pol s eltakar.

A nagy vil�gon e k�v�l
Nincsen sz�modra hely;
�ldjon vagy verjen sors keze:
Itt �lned, halnod kell.

Ez a f�ld, melyen annyiszor
Ap�id v�re folyt;
Ez, melyhez minden szent nevet
Egy ezred�v csatolt.

Itt k�zdtenek hon�rt a h�s
�rp�dnak hadai;
Itt t�rtek �ssze rabig�t
Hunyadnak karjai.

...
......
........

Ha jó úgy akkor a kódot és a kulcsot majd holnap gyakon mutatnám meg csak hogy ne lőjem le a poént .. :D .. Elég csúnya program lett egyébként, ez azok között van amiket nem szívesen mutogatok .. :D .. De ahogy Yoda mester mondaná: "Még sokat kell tanulnod" .. aztán majd idővel szebbeket írok .. XD

A karakterkódolással pedig nem tudom mi a baj, az ékezetes betűk nincsenek meg. Remélem azért így is ér pár pontot ... :)

kovdog 2011.09.18. 15:52:00

én a "Javát tanítok" alapján akarom csinálni, ami ott is van progi, de a windows parancssor azt írja a "javac ExorTitkosito.java"-ra hogy : A megadott nevet(javac) a rendszer nem ismeri.....
pedig netbeansben tudok java programokat futtatni

Joe89 2011.09.18. 17:52:34

@kovdog: Én is a javat tanítok - ExorTitkosito.java alapján csináltam, bár a végére már nem nagyon lehetett ráismerni.
Én linuxon fordítottam, ott működött rendesen, titkosított is, és visszafelé is jó volt.

nb · http://fersml.blog.hu 2011.09.18. 18:05:03

@kovdog: szerintem a hibának semmi köze az ExotTitkosito.java-hoz... erről könnyen meggyőződhetsz azzal, hogy kiadod magában a javac parancsot és ugyanazt kapod, ha ez van, akkor a gyógyszer: nehogy.fw.hu/wp-content/uploads/Prog1_9.pdf 45. fólia 1 sora...

nb · http://fersml.blog.hu 2011.09.18. 20:09:10

@Joe89: így van, jó a törés.

Az ékezetes kiírás kapcsán:

itt az állatorvosi betű-példa:

public class Ekezet {
public static void main(String[] args) {
System.out.println("árvíztűrő tükörfúrógép");

}
}

fordítás és a lényeg a futtatásnál látod:

C:\Documents and Settings\Bátfai Norbert>javac Ekezet.java

C:\Documents and Settings\Bátfai Norbert>java -Dfile.encoding=Cp852 Ekezet
árvíztűrő tükörfúrógép

kovdog 2011.09.18. 21:12:06

@nb: Mostmár jó lett, Köszönöm!
(Ez az, ami Windows 7 alatt automatikusan beállítódik?)

nb · http://fersml.blog.hu 2011.09.18. 22:49:13

@kovdog: tapasztaltam ilyet :) a lényeg, hogy megy.

#Gerzson 2011.09.19. 16:39:36

Hazajöttem,elindítottam amit kell a robot focihoz és íme az eredmény a sample csapatokat egymásnak engedtem.
img94.imageshack.us/img94/6508/robotfoci.png
Gyakorlaton nem lehet dolgozni azokon a Sun-os gépeken -.-' volt olyan hogy kijelöltem valamit és teljesen megadta magát...

Abban kérek segítséget, hogy fordítjuk le a saját csapatunkat.

#Gerzson 2011.09.19. 17:22:55

Rájöttem :$ :D probléma megoldva :D

nb · http://fersml.blog.hu 2011.09.19. 17:57:33

és a másik csapat miért nem jött még ki az öltözőből?

nb · http://fersml.blog.hu 2011.09.19. 17:58:54

A robotfoci kapcsán majd figyeljetek, hogy jöjjön a kép persze, de mindig legyen mellette, hogy hol találom a felvételt a mérkőzésről, az rcg fájlt (aki nem tudja miért nem tudja => rcg kapcsán lásd a jegyzetet :)

basecamp 2011.09.19. 19:40:58

arról érdeklődnék hogy van e valami windowsos csapat ami komolyabb ellenfél amivel lehetne "edzeni" a csapatom vagy csak linuxon?

kovdog 2011.09.19. 20:32:32

Az a kérdésem, hogy nekem ha a BuntetoFC-t teszem csak be, akkor az oldalvonalon túl helyezkednek el a játékosok egy sorban, az kezdetnek jó?

A másik kérdésem, hogy a 2 csapatnak a JatekosAdaptere ne zavarja egymást, akkor a másik csapatot egy másik csomagba tegyem a hozzá tartozó adapterrel együtt? vagy valami más lenne itt a megoldás?

#Gerzson 2011.09.19. 20:53:09

Ha csak BuntetoFC teszed be akkor így kell elhelyezkedniük.. vagyis nekem így... :D
img6.imageshack.us/img6/9003/onlybuntetofc.png

kovdog 2011.09.19. 21:09:43

@#Gerzson: mostmár nekem is hasonló, köszi. (csak a portom nem volt átírva)

nb · http://fersml.blog.hu 2011.09.19. 23:08:26

@kovdog: nem kell csomagokkal bonyolítani, egyszerűen dolgozz egy másik könyvtárban a másik csapattal.

Rankerz 2011.09.19. 23:55:19

Kapuba FC, itt ugye az volt a lényeg hogy csak figyelhetik a labdát de nem mozdulhatnak meg?

noob.hu/2011/09/19/kapuba.png

rcg: data.hu/get/4244038/kapuba.rcg

Rankerz 2011.09.20. 00:46:47

Foci iszony FC: őőő, itt a srácok egy része már le is futott a pályáról

noob.hu/2011/09/20/iszonyfc.png

rcg: data.hu/get/4244090/iszony.rcg

tdemeter 2011.09.20. 13:10:26

Járnak még a trófeák?

Joe89 2011.09.20. 13:58:50

Aranylabor FC:

dl.dropbox.com/u/13871711/Aranycspat.jpg

Remélem még benne vagyok az első 3ban .. :P

nb · http://fersml.blog.hu 2011.09.20. 14:45:20

@basecamp: 2:1 egy szép akciógól, 1 kapushiba, de aztán jóvá tette. Egyelőre 4 pontot adok, mert a mégnes csapat sokszor "csak a másik" csapattá válik, kicsit még szofisztikálhatod 2 pontért, pl. ne mind ugyanazt fogja.

nb · http://fersml.blog.hu 2011.09.20. 14:51:46

@Rankerz: legyen mérkőzés és ne menjenek le a pályáról :)

nb · http://fersml.blog.hu 2011.09.20. 14:53:34

@tdemeter: a laboron is van a "3" és a blogon is, éljetek együtt a játékkal, számoljátok meg a kommentekben, hogy van-e még hely, itt megy a blogos beküldés teljesen transzparensen.

Logos 2011.09.20. 18:06:06

@nb: Tegnap magánban elküldtem az Aranycsapatos felállás JatekosAdapter forrását, de nem kaptam választ, hogy helyes-e.
Képet is kellene mellékelnem? Mert azt "bárki bárhonnan" szerezhet, nem?

Ha még aktuális, akkor feltölthetem.

Joe89 2011.09.20. 22:10:59

6 trófeára válthatja az első három azt az Atan alapú programját, aminek minden játékosa a "játéktól" függetlenül oda-vissza vízszintesen mozog a mérkőzés során.

Itt van az RCL és az RCG:
dl.dropbox.com/u/13871711/oda_vissza.rar

A játékosok oda rendesen, vissza pedig hátrafelé futnak, és hamar elfáradnak. :P

Próbáltam megoldani hogy megforduljanak, aztán úgy fussanak vissza, de nem tudtam rávenni őket hogy 180 fokot forduljanak, először csak simán a turn metódussal próbálkoztam, aztán próbáltam valamilyen viszonyítási pontot találni, ami felé fordulhatnak, de sehogy sem akart összejönni. Remélem azért így is jó, bár igazából kíváncsi lennék hogy hogy lehetne megoldani ezt a feladatot "normálisan" ..

phloriaN 2011.09.20. 22:26:44

5 trófea üti a markát annak, aki a laboron (vagy a blogon) első háromként (saját Java szoftverével) megtöri ezt a titkos szöveget (a kulcsról ugyanazt lehet feltenni, mint a hivatkozott Prog1 labor esetén).

A szöveg:Ha jól számolom, második vagyok.

Sz�zat

Haz�dnak rend�letlen�l
L�gy h�ve, oh magyar-.
B�lcs�d az s majdan s�rod is,
Mely �pol s eltakar.

A nagy vil�gon e k�v�l
Nincsen sz�modra hely;
�ldjon vagy verjen sors keze:
Itt �lned, halnod kell.

Ez a f�ld, melyen annyiszor
Ap�id v�re folyt;
Ez, melyhez minden szent nevet
Egy ezred�v csatolt.

Itt k�zdtenek hon�rt a h�s
�rp�dnak hadai;
Itt t�rtek �ssze rabig�t
Hunyadnak karjai.

Szabads�g! Itten hordoz�k
V�res z�szl�idat,
S elhulltanak legjobbjaink
A hosszu harc alatt.

�s annyi balszerencse k�zt,
Oly sok visz�ly ut�n,
Megfogyva b�r, de t�rve nem,
�l nemzet e haz�n.

S n�pek haz�ja, nagy vil�g!
Hozz�d b�tran ki�lt:
�Egy ezred�vi szenved�s
K�r �ltet vagy hal�lt!�

Az nem lehet, hogy annyi sz�v
Hi�ba onta v�rt,
S keservben annyi h� kebel
Szakadt meg a hon�rt.

Az nem lehet, hogy �sz, er
�s oly szent akarat
Hi�ba sorvadozzanak
Egy �toks�ly alatt.

M�g j�ni kell, m�g j�ni fog
Egy jobb kor, mely ut�n
Buzg� im�ds�g epedez
Sz�zezrek ajak�n.

Vagy j�ni fog, ha j�ni kell,
A nagyszer� hal�l,
Hol a temetkez�s f�l�tt
Egy orsz�g v�rben �ll.

S a s�rt, hol nemzet s�lyed el,
N�pek veszik k�r�l,
S az ember milli�inak
Szem�ben gy�szk�ny �l.

L�gy h�ve rend�letlen�l
Haz�dnak, oh magyar:
Ez �ltet�d, s ha elbuk�l,
Hantj�val ez takar.

A nagy vil�gon e k�v�l
Nincsen sz�modra hely;
�ldjon vagy verjen sors keze:
Itt �lned, halnod kell.

noob.hu/2011/09/20/exo5.png

darkfalcon 2011.09.21. 19:47:54

Nem tudom be férek-e még a 3 közé valamelyikkel, csak gondoltam kirakom:
noob.hu/2011/09/21/foci_01_0.png
noob.hu/2011/09/21/foci_02_0.png

basecamp 2011.09.22. 10:55:51

amit Tanárúrral beszéltünk órán a bodyFacingDirection nekem mindig nulla hogy lehet ez?

basecamp 2011.09.22. 13:00:41

Ping Pong FC:
www22.zippyshare.com/v/35460659/file.html

Kapuba FC - IszonyFc:
www63.zippyshare.com/v/78828423/file.html

Mágnes FC:
itt csak két játékosra állítottam rá a jobb láthatóság miatt a másik csapatból a vele azonos számút követi
www29.zippyshare.com/v/63677906/file.html

nb · http://fersml.blog.hu 2011.09.22. 14:27:14

@basecamp: szerintem mert a megfigyelést végző ágensed éppen egy lasztit néz, nem?

"BodyDir and HeadDir are only included if the observed object is a player"
l. még 36. oldalt a részletekért: netcologne.dl.sourceforge.net/project/sserver/rcssmanual/9-20030211/manual-20030211.pdf

nb · http://fersml.blog.hu 2011.09.24. 12:31:53

@Logos: csak nincs olyan a p2 kurzusban aki csalna. De egyébként is rcg-t kérünk RCSS témában.

nb · http://fersml.blog.hu 2011.09.24. 12:47:47

@phloriaN: már lement a hét így ide bátran forrást is pls.

phloriaN 2011.09.24. 14:41:39

public class EXOR
{
public EXOR (String kulcssz, java.io.InputStream be,
java.io.OutputStream ki) throws java.io.IOException
{
byte[] kulcs = kulcssz.getBytes ();
byte[] buffer = new byte[256];
int kulcsindex = 0;
int olvbajt = 0;
while ((olvbajt = be.read (buffer)) != -1)
{
for (int i = 0; i < olvbajt; ++i)
{
buffer[i] = (byte) (buffer[i] ^ kulcs[kulcsindex]);
kulcsindex = (kulcsindex + 1) % kulcs.length;
}
ki.write (buffer, 0, olvbajt);

}
}
public static void main (String[]args)
{
try
{
new EXOR (args[0], System.in, System.out);

}
catch (java.io.IOException e)
{
e.printStackTrace ();
}
}
}

jazmine 2011.09.24. 20:02:08

@phloriaN: ez a kód hogy töri fel? Ez csak ellenőrzi, hogy jó-e a kulcs, de hol az a kód, ami a kulcsot is megtalálta a titkos szöveg megfejtéséhez?

nb · http://fersml.blog.hu 2011.09.24. 20:58:54

@Joe89: ez a jegyzet terminológiájában a "minimalista megoldás" így 3 ponttal tudom majd honorálni (a "maximalistára adom a 6 pontot", lásd a jegyzetet)

illetve nem volt elég pontos a kiírás: a két gólvonal között nyomják!

nb · http://fersml.blog.hu 2011.09.24. 21:00:24

@darkfalcon: visszafelé számold meg a kommentekben, hogy hányadik vagy, ha <=3 akkor OK lehet, de rcg-t pls.

nb · http://fersml.blog.hu 2011.09.24. 21:05:03

@basecamp: alakul, de:

1.-re: lásd a korábbi hsz-t, ez is a 3 pontos lesz.

2.-re: nincs játék, a Kapuba FC-t engedd össze egy neutrálissal, mondjuk a Csak a labda FC-vel, hogy lássuk a viselkedsüket

3.-ra: itt ua., a kezdő csapat csak köröz, nem alakul ki a "játék", itt is a Mágnes FC játsszon a Csal a labda FC-vel szerintem.

nb · http://fersml.blog.hu 2011.09.24. 21:08:21

@bozont91: pl. 567-nél a 3-as mezt viselő csatár nem látom, hogy hanyatt-homlok menekülne a labdától...

nb · http://fersml.blog.hu 2011.09.24. 21:12:26

@bozont91: @basecamp: a Mágnes FC jó demonstrációja inkább az lenne, ha az ellenfél nem bolyban mozogna, legalább az elején... ha Nektek ilyen még nincs, a Kékhalál FC az elején "még nem zuhan össze" :)

erendil 2011.09.25. 08:37:22

data.hu/get/4259431/incomplete.rcl
itt az rcl file az arancsapatos kép mellé

phloriaN 2011.09.25. 18:38:26

Tudom kicsit elkésve, de sikerül működésre bírnom a focit, ami már magában fél siker, nekem legalábbis :)

noob.hu/2011/09/25/Capture2.JPG

Lenne viszont egy kérdésem: .rcg fájlt hogy lehet készíteni, valamint megnyitni létező-t?
- Mikor bepróbálkozok azt írja: Unsupported log file!

tdemeter 2011.09.25. 19:48:00

A getPlayer().dash pontosan mit is csinál?

nb · http://fersml.blog.hu 2011.09.25. 20:02:35

@phloriaN: pl. a soccerwindow2-5.0.0 progival nyisd meg ugyanazt akár, amire a másik most dobta az Unsupported log file!-t

nb · http://fersml.blog.hu 2011.09.25. 20:08:51

@tdemeter: API doksi és forrásodban a válasz (+holnap az előadáson is téma lesz)

forrásodból szerintem látszik, hogy a
getPlayer()-ed visszaad egy ActionsPlayer objektumot, azaz egy olyat, ami implementálja az atan.model.ActionsPlayer interfészt, amit az API doksiból ismerhetsz:

atan1.sourceforge.net/javadoc/atan/model/ActionsPlayer.html

és itt láthatod, hogy a dash mit csinál:
atan1.sourceforge.net/javadoc/atan/model/ActionsPlayer.html#dash%28int%29

azaz -100 és +100 közötti erővel fog futni arra, amerre áll.

tdemeter 2011.09.25. 20:10:56

@nb: Ahaaa, tiszta. Köszönöm! Akkor készen van a KapubaFC, de még lehet finomítani rajta.

nb · http://fersml.blog.hu 2011.09.25. 20:21:59

@tdemeter: OK., köszi, de rcg fájlt kérek mutatni, pls.

tdemeter 2011.09.25. 20:58:35

@nb: De igen, elnézést az elnevezésekért :)

phloriaN 2011.09.25. 21:06:30

@nb: az EXOR-os feladatért megkapom a pontot?

nb · http://fersml.blog.hu 2011.09.25. 22:23:23

@phloriaN: amíg nem látom a törést végző progit, addig nem hiszem (tehát azt, ami keresi is a kulcsot, lásd Prog1 1 labor vagy 2 :)

nb · http://fersml.blog.hu 2011.09.25. 22:24:33

@tdemeter: igen, valóban látványos az eleje, még az kéne, hogy azért legalább próbáljanak azért nagy félelmükben a pályán maradni :)

tdemeter 2011.09.26. 07:03:23

@nb: Egy példát kaphatnék, hogy hogy lehetne ezt megoldani? Arra gondoltam, hogy az infoSeeLine-t használom fel, ha az alap- vagy az oldalvonalhoz érnek, akkor valahogy álljanak meg, de nem jött össze...

tdemeter 2011.09.26. 07:16:58

Egy kis finomítás, de még mindig kimennek a pályáról:

dl.dropbox.com/u/7898742/201109260713-CsakALabdaFC_0-vs-IszonyFC_0.rcg

+a bedobás metódusa kellene, de egy olyan csapat nem fog bedobni, aki fél a labdától :D

nb · http://fersml.blog.hu 2011.09.26. 15:51:54

@tdemeter: a Ping Pong FC-ben van pl. gólvonal figyelés.

basecamp 2011.09.27. 08:23:45

KapubaFC itt már egy mozgékonyabb csapat ellen megy a móka

www2.zippyshare.com/v/7891590/file.html

phloriaN 2011.09.27. 19:26:33

@nb: a kulcsot kereső program C-ben van írva, mivel a java tudásom jelenleg kimerül a robotfoci Ctr+C, Ctrl+V-zésében, remélhetőleg ez később változni fog, de ameddig így van addig sajnos nem tudom belinkelni a trófeák feltételéül szolgáló forrsát, ellenben Joe89 kolléga aki megoldotta belinkelhetné a forrást, hogy a köznép láthassa... és tanulhasson.

nb · http://fersml.blog.hu 2011.09.27. 19:53:25

@phloriaN: persze, ez múlt heti móka volt, mindenki teheti ide és vesézgethetjük, sőt, kéne is közösen!
süti beállítások módosítása