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

A nagytestvér beleszőtt egy aspektust a csapatomba

2011.12.04. 19:13 nb

Ez a tizenkettedik hét (labor és előadás) posztja.A laborokra az előző héttől kezdődően már nem írok ki kötelező törzsanyagot, mert a főtéma a laborgyakorlat védése!

A PLP, PLK során már most is kitapintható volt a fejlesztési ciklusok megléte, amikor is egy vagy több csapat hirtelen akár klasszisnyi különbséget is tudott mutatni a játékban. Játsszunk el azzal egy gondolatkísérletet, hogy valaki kitalál egy mondjuk neurális hálós tanulásos algoritmust, ami az aktuális szinten verhetetlen, de az algoritmushoz szükség van a mérkőzésen az addig történt rúgások átlagos erejére és szögére... Mit tehet a mérnök hallgató? Veszi a forrásokat, a Játékos osztályt, annak gyermekét a Támadót, Védőt stb. azok gyermekeit, a Puskást, Zakariást stb. és amelyik módszerekben kick(erő, irány) van, azt bekommentezi és felvesz egy új módszert:

kickCsakEzenKeresztül(erő, irány)és ezzel proxyzza a továbbiakban a kick-et... de meg lehetne ezt csinálni egy 3742 osztályból álló 2.443.242 sort számláló alkalmazásban...

ez bizony egy átszövő új követelmény, egy átmetsző vonatkozás (crosscutting concept) , amit most az előadás Nagytestvér.aj aspektusát szőve a focicsapatunkba, egy pillanat alatt meg is valósítunk! Éljen az AspectJ!

Megoldásunkat a Golden Team FC 0.0.4-ben találja a kedves olovasó. Jól látható, hogy "szőttük be" a nagytestvértől jövő sorokat:

 

15 pont annak, aki megvalósítja a fenti szövést, azaz minden lövéskor kilogolja az addigi lövések számát és azok átlagos irányát és erejét!

42 komment

Címkék: kick aop aspectj crosscutting concept aspektus orientált programozás maven aspectj plugin

A bejegyzés trackback címe:

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

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.

Logos 2011.12.05. 19:43:04

Heló!

Tudna valaki segíteni, miért van az, hogy:

A játékosaim rendben mennek a labda felé, aztán amikor odaérnek, megállnak előtte és nem csinálnak semmit. A kód szerint attól függően, hogy mit látnak rúgniuk kéne valamerre a focit, de nem teszik. Mi lehet a baj?

A forrást megtaláljátok itt:

web.unideb.hu/~fortcondor/KalapacsFC-0.0.2.zip

Köszi

nb · http://fersml.blog.hu 2011.12.06. 19:10:14

@Logos: Kapcsolódik itt a téma a Prog1
nehogy.fw.hu/wp-content/uploads/Prog1_6.pdf
74 fóliás laborkártyájához. Át tudnád ezt írni Javába?

Tehát pl. mi lesz ebben a gyümölcskosárban:

public class P2Gyumolcskosar {

public static void main(String[] args) {

String s1 = "alma";
String s2 = "al";
String s3 = "ma";

s3 = s2 + s3;

System.out.println("["+s1+"]");
System.out.println("["+s3+"]");

if(s1 == s3)
System.out.println("korte");

if(s1.equals(s3))
System.out.println("banan");

if("alma".equals(s3))
System.out.println("dio");

}

}

Logos 2011.12.06. 20:38:51

@nb: Kipróbáltam és újra megnéztem a könyvben, tényleg így van (az == biteket hasonlít össze).

Megnézem mi történik, ha átírom .equals()-ra az összehasonlításokat, csak azt nem értem, hogy eddig miért tűnt úgy, mintha rendben lenne minden.

Egyébkén itt a kimenet:

[alma]
[alma]
banan
dio

Logos 2011.12.06. 20:46:10

@nb: Azt még elmondanád, hogy miért jobb ez:

"alma".equals(s3)

mint ez:

s3.equals("alma")?

Logos 2011.12.06. 21:24:22

Nem megy, ugyanaz a hiba, a játékosok állnak mint a...

Nem a labda távolságával lehet a gond, mert ha látják a saját kaput, szinte minden esetben sikeresen hátrapöckölik a focit.

nb · http://fersml.blog.hu 2011.12.07. 08:48:01

@Bandee90: ne számíts nagy összeesküvésre, legvalószínűbb, hogy egyerűen kimaradt (éppen azt néztem amikor bejött valaki stb.) de az sem kizárt, hogy még nem tartok időben a feldolgozásánál.

nb · http://fersml.blog.hu 2011.12.07. 08:49:23

@Logos: általában igaz, hogy a mélyben bitek összehasonlítása van, de itt a lényeg, hogy az első a referenciákat hasonlítja össze.

nb · http://fersml.blog.hu 2011.12.07. 08:50:36

@Logos: ha null értékű referencia metódusát hívod, az durva null pointer exception lesz, de a konstans, literáljával megadott sztring obj nyilván sosem null.

nb · http://fersml.blog.hu 2011.12.07. 08:51:54

@nb: ez tehát a K&R rongyosra olvasása közben még a prog1-ben felvett defenzív programozási taktikai elem megjelenése a prog2-ben.

anyahajónkabinajtóhajtogató 2011.12.07. 13:44:55

Tanár úr, az miért van, hogy a start.bat indításával nem áll a helyére 3-4 játékos? A pálya szélén állnak, és onnan szaladnak be a kezdéskor.

nb · http://fersml.blog.hu 2011.12.07. 19:37:15

@anyahajónkabinajtóhajtogató: ha a speep-et felveszed mondjuk 10 secre, akkor szép lassan csatlakoznak az ágensek, láthatóan kivárva a 10 mpt-?

anyahajónkabinajtóhajtogató 2011.12.07. 19:59:58

a sleep most 7-re van beállítva, mint a múlt heti laboron is ajánlva lett, de nem látszik rajta, sőt, most kipróbálva mindegyik játékos a pálya szélén van, senkit nem tett a helyére

Komee 2011.12.08. 18:31:23

A védéskor megbeszél feladat. Logolja a dash() hívások számát, átlagos és pillanatnyi sebességet.

noob.hu/2011/12/08/aspectj.jpg

aka801 2011.12.08. 19:56:02

@nb:
Elnézést Tanár úr, de hogy hogy eltűntek az 'a' betűs vadászok a táblázatból?

nb · http://fersml.blog.hu 2011.12.08. 20:05:02

@aka801: valóban eltüntek és tényleg valami zavart érzek az erőben.

Logos 2011.12.08. 21:37:11

Valaki, aki ráér, megnézhetné a kódomat, mert tényleg nem tudok rájönni, mi lehet a baj és így védésről szó sem lehet. Mikor tesztelésnél loggoltam, a vezérlés eljutott a vezesdAFocit() fgv-be, ami "tele van" kick() paranccsal, de valamiért mégsem akarnak belerúgni a fociba.
Valami farkas hiba lehet az oka, de eddig nem tudtam kitalálni, mi a megoldás. Jól jönne egy kis segítség.

Köszi

phloriaN 2011.12.09. 09:07:11

15 pont annak, aki megvalósítja a fenti szövést, azaz minden lövéskor kilogolja az addigi lövések számát és azok átlagos irányát és erejét!

- noob.hu/2011/12/09/aspect.JPG

beigli767 2011.12.10. 00:46:30

Azt szeretném megkérdezni, hogy akkor pontosan melyik csapatot is kell legyőznie a csapatomnak, hogy meglegyen a beugró védéshez?

Rankerz 2011.12.10. 16:25:50

most hogy is van a robocup server? soccerwindow2 vel nem lehet csatlakozni vagy nem éles még?

nb · http://fersml.blog.hu 2011.12.10. 16:44:18

@Rankerz: nekem ment rcssmonitorral és soccerwindow2-vel is (egyedül a sima SoccerWindow-al Win alól nem) de csatlakoztak vagy nyolcan-tízen, majd kiteszek erről is videót.

Izgalmas meccsek voltak, a Tiéd is, kár, hogy élőban nem láttad.

16.45-kor kezdődik a kupa döntő! (Eddig is mentek zsinórban 16.00-tól)

Rankerz 2011.12.10. 16:45:49

@nb: mennyi lett a meccsem eredménye ha lehet tudni?

phloriaN 2011.12.10. 17:05:59

@nb: nekem a soccerwindow2-vel se megy a csatlakozás

nb · http://fersml.blog.hu 2011.12.10. 17:08:12

@phloriaN: az utolsó mai meccs 16.45-től ment, tehát már nem csoda, hiszen nem megy a szerver.

@Rankerz: izgalmas volt! Hamarosan frissítem a lapokat, addig is 3:2

phloriaN 2011.12.10. 17:08:53

@nb: jah, akkor kicsit lekéstem :D

ZrZ 2011.12.10. 17:28:34

A döntőről lehet tudni valamit?

Rankerz 2011.12.10. 17:39:02

@nb: ebből én nem sok mindent tudtam kivenni, nem lehetne számszerűen megadni a végeredményeket amíg nincs rcg? jó lenne tudni)

Rankerz 2011.12.10. 17:46:01

@nb: ja tényleg,nézem nézem

Rankerz 2011.12.10. 17:52:06

frissítve és grat a CrashFC nek,jó meccset játszott)

challonge.com/plk

phloriaN 2011.12.10. 18:09:10

hát, most már csak arra kéne rájönni hogy az a rejtélyes múlt heti 17-0-s vereség a csontdaráló ellen ezen a héten miért nem ismétlődött meg.

Lakers9 2011.12.10. 18:11:18

@phloriaN: mi volt abban a meccsben rejtélyes?

ZrZ 2011.12.10. 18:14:23

@Lakers9:Psszt PLB-ről van szó! :)

phloriaN 2011.12.10. 18:16:16

@Lakers9: az hogy ahányszor gólt kaptam és középkezdés volt, mindig elindult a csatár a labdával és második labdaérintésnél free_kick az ellenfélnek :D, am ez a 17-0 a PLK-ban volt múlthéten, az eheti volt PLB-s, ugyanúgy CSD ellen

ZrZ 2011.12.10. 18:18:26

Az azért volt mert középkezdéskor le kell passzolni és magadnak nyilván nem lehet.

phloriaN 2011.12.10. 18:44:03

@ZrZ: tökre véletlenül még az első heti meccsek közül kiválasztottam egyet, és azon jól látszik hogy pl Rankerz akkori csapata elkezdi középkezdés után vezetni a labdát, nem passzol hanem egyből viszi kapura, és ott mégsincs free_kick

www.inf.unideb.hu/~nbatfai/PLB2011osz/1/201110301004-Rankerz_2-vs-RozsdasFC_1.rcg
(semmi köze nincs a két csapatnak ahoz amiről msot szó van, csak példának választottam ezt a meccset ki)

szóval akkor mégse az lehet a gond amit írtál.

kecske20 2011.12.10. 19:06:37

@phloriaN: ez nyilván egy egész világot egyesítésre ösztönző kezdeményezés eleje. Összeállt még az rcssserver is ellened és egy mindent eldöntő háborúban akarnak veled végezni. Látszik, tökéletes a taktika, régóta szerveződtek.

phloriaN 2011.12.10. 19:12:26

@kecske20: nem tudom miért kell elkezdeni trollkodni, mikor tökre normálisan tettem fel egy kérdést, de már mindegy, úgyis végre vége ennek az egésznek.
süti beállítások módosítása