Java programozás - Szoftverfejlesztés fórum

üzenetek

hozzászólások


Kr1xX
(csendes tag)

:C Nahh! Gratula! Ugya milyen jó érzés három órás gondolkozás után erdményre jutni? (ráadásul végül te oldottad meg, és nem más) A paneles képbetöltést, még a MI elkészülse etőtt is publikálhatnéd ;) TOvábbi jó munkát, addig még én is vergődök a saját problémáimmal.


andriscs
(aktív tag)

Hi!

Persze, hogy örülök :D De rájöttem, hogy ez az MI dolog nem is olyan egyszerű. Ezzel is lesz pár gondolkodós órám úgy vélem. A panel-es cuccot nem tudtam megcsinálni, pedig egy másik órán ma erről tanultunk, de semmi ilyesmiről nem volt szó, csak annyit mondtak, hogy a panel a frame egy része. Szóval lehet, hogy azt hanyagolom.


Kr1xX
(csendes tag)

Hol, és mit tanulsz? Egyetem, középsuli??


Kr1xX
(csendes tag)

kövtkező kérdésem lenne bárki felé:
Írtam egy Snake-játékot, megy is rendesen. Egy gond van vele, néha. Ha gyorsan akarok irányt változtatni egyszerre két irányba (azaz háta arc), akkor van hogy gyorsabban ütöm le egymás után a billentyűket, mintamennyi ideig a program ''Sleep''-el /mert hogy az animáláshoz kell bele egy sleep, hogy szépen haladjon/. Tehát ha egy ilyen szünet alatt egyszerre két irányt tudok változtatni, akkor gyakorlatilag hátrafelé indulok el, azaz magamba megyek, és meghal a kígyó. Hogy lehetne ezt kiszűrni?


andriscs
(aktív tag)

Hi!

BME Informatikán vagyok.
Ami a problémádat illeti (bár nem tudom, hogy milyen formában oldottad meg), én általában az ilyen kölcsönös kizárású dolgokat flag-gel szoktam csinálni. A te esetedeben talán az lenne a legjobb, ha irányonként csinálnál boolean flag-eket, és az egymást kizáróakat nem engedélyeznéd (pl. if (előre && !hátra) ... stb. ) Persze emiatt kissé meg kellene variálni az irányítást, de elvileg működne. De ez csak egy ötlet, ha másnak jobb van, szóljon nyugodtan.


Kr1xX
(csendes tag)

Van én nem értelek, vagy te nem értesz. Azt már megoldottam, hogy ha pl felfelé haladok, akkor csak két irányt fogadjon el, jobbrát vagy balrát. Ez így rendben is van. De gondold el a kukacot, halad szépen előre... a következő kaja pont a kukac mellett lesz letéve, akkor hírtelen megfordulsz, egy gyors balra-le billtyűvel. Ha ezt elég gyorsan csinálod, akkor meg tudod azt csinálni, hogy mivel felfelé ment elfogadja a balrát, indulna is balra a kígyó, de olyan gyorsan leütötted a lefelét (ami már megengedett, mert épp balra megy), hogy igazából balra nem is lépett, hanem elindul lefelé. Azaz magába ütközik, meghal. A gond tehát, hogy a kígyó mozgásánál a késleltetés ideje alatt meg tudok fordulni 180 fokot, két billentyú leütéssel. Amúgy próbáld ki: www.sztyan.uw.hu/Sztyan/java/Snake/Snake.htm


fiola
(csendes tag)

tipp: esetleg hozz letre uj szalat a billentyuzet infok figyelesere


andriscs
(aktív tag)

Hi!

Kipróbáltam, tök pofás a játék. Tehát jó lehet az a szálas megoldás, mit egy másik kolléga ajánlott, vagy csinálhatod azt, hogy csak akkor engedélyez irányváltást, ha már legalább 1 ''egységet'' mozdult a kigyó feje jobbra vagy balra. Gondolom, hogy ez is megoldható, feltéve ha te nem egészen máshogy programozol, mint én :) Majd írd meg, hogy mire jutottál!


Kr1xX
(csendes tag)

Háhá... sikerált. Igaz nem a szálas megoldssal. Egy lista segítségével (adatszerkezetek című tantárgy), ha több billentyű kerül leütésre akkor azokat eltárolja, és a késleltetés szerint dolgozza fel. Így hiába nyomok bármilyen más billentyűt az adott pillanatban, mindig sorbaveszi a lita elemeit, azaz a billentyűk sorrendét. Nem tudom mennyire vilgos, de inkább próbáljátok ki :)

www.sztyan.uw.hu/Sztyan/java/Snake/Snake.htm

[Szerkesztve]


Kr1xX
(csendes tag)

De továbbra is maradtak bennem kérdések. Még mindig nem tudom, hogy lehetne megoldani a toplistát. Hogy lehet java applettel fájlokat kezelni. Álítólag ez le van tiltva... tud valaki bármilyen megoldást fájlkezelésre. Van milyen mekerülési lehetőségek vannak (pl tud-e egy applet egy java sriptel vagy php scriptel komunikálni, mertakor már tudnak fájlkat is kezelni) :F


btotyi
(tag)

Ha jól tudom csak csak signed aplettel lehet mert biztonsági okból van tiltva. Viszont hálózati kapcsolatot létrehozhatsz így egy távoli szerveren tárolhatod a toplista eredményét pld egy adatbázisban


Kr1xX
(csendes tag)

Thanks! És esetleg tudsz benne bővebben is segíteni? Mert még hálózati kapcsolattal sem volt dolgom.


andriscs
(aktív tag)

Hi!

Nem akarok hülyeséget mondani, de ha nem applet-ként csinálod a dolgokat, akkor a szerverre felrakott Java application simán kezeli a szerveren lévő file-okat. Lehet, hogy nem olyan szép egy Java frame, amint leugrik a böngészőből, de legalább normálisan lehetne file-t kezelni. Ha nagy hülyeséget mondtam, akkor bocsika.
Ami az én problémámat illeti, MI-t írni szerintem a legnehezebb programozási feladat. Eddig úgy viselkedik, mint egy kutya, amelyik nincs betanítva :) Egészen mást csinál, mint amit én szeretnék. Olvastam valahol egy oldalon, hogy lehet olyan progikat csinálni, amik fejlődnek idővel. Remélem, hogy ez is ilyen, mert egyelőre nagyon buta. Írt már valaki MI-t Java-ban?


andriscs
(aktív tag)

Hi!

Tudna valaki nekem segíten? Létrehoztam egy MenuBar-t, amiben beleraktam egy Menu-t, majd ebbe 2 feliratot. Hogy tudok erre eseménykezelővel hivatkozni? actionListener kell, vagy ItemListener? És hogy érem el pl a file menü ''Exit'' parancsát?
Eddig ezekkel probálkoztam:
class myChooser implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource().equals(file)) //file=new Menu(''File'')
{
dispose();
}
}
}
illetve:

class myChooser implements ItemListener
{
public void itemStateChanged(ActionEvent e)
{
if(e.getItem().equals(''Exit''))
{
dispose();
}
}
}

De egyik sem működik, mindkettő hibát ír ki. itemListener valszeg azért, mert azt elsősorban CheckBox-nál érdemes használni. Valaki magyarázza el, hogy hogy tudom kezelni a menümet!

[Szerkesztve]

[Szerkesztve]


andriscs
(aktív tag)

Hi!

Sajnos még nem sikerül megoldani a menü eseménykezelését, de haladok az MI-vel. Még nagyon buta, és mégis mindig nyer :) De talán pár hét alatt kissé sikerül lebutítani. Senki nem tudta még kipróbálni a menükezelést? Bárminemű hozzásszólást szívesen fogadok.


andriscs
(aktív tag)

Hi!

Sikerült a menükezelés, az IBM oldalán jó sok okosság van. Majd kirakom a játékot a honlapomra, és csinálok egy ''nyílt bétatesztet'' :C Aztán akinek ötlete van, az megírhatja a véleményét. Remélem, hogy hasznos lesz a dolog.


andriscs
(aktív tag)

Hi!

Alakul a dolog, már olyan az MI, mintha ''gondollkodna'', általában optimálisan próbál lépni (most még csak sor szerint optimális). Ha ezt összehozom, akkor megveregetem a vállam :) Remélem, hogy nem vesztem el a fonalat a kódolás közben, mert már így is elég bonyolult a dolog.


Kr1xX
(csendes tag)

Én most kezdek bele olyan jáva progikba, amik awt illetve swinget használ (eddig appleteket írtam). Azt vettem észre, hogy az ilyen alkalmazásokat jar-ba tömörítik, és az lesz futtatható... Kérdésem, hogy JCreatorban van-e lehetőség jar-ba tömöríteni (ezt az IDE-t használom), de már Eclipse vagy NetBeans-is segítség lenne (mármint ha ott ez megoldható volna). Igaz jart már sikerült csinálnom, de csak konzolban pötyögve, és az nem az igazi... nem kényelmes!


andriscs
(aktív tag)

Hi!

Legegyszerűbb ha írsz rá egy paraméteres batch állományt, ami megkönnyíti a dolgod. Mondjuk ez nem pont Java megoldás. Én Eclispe 3-at használok, de nem találtam meg még benne az automatizált jar állomány létrehozást. És az a legjobb, hogy nem is működik a jar-os megoldás, ugyanis a manifest file-t nem mindig fogadja el, ami felettébb érdekes, ugyanis fél órán keresztül magyarázták, hogy a jar készítés hogy történik, és a manifest file-nak mit kell tartalmaznia. Szóval így megy a dolog:
jar.exe -cvfm manifest akarmi.jar *.class *.jpg
és a manifest filenak ezt kell tartalmaznia:
Main-Class:'Foosztaly'
Ennyi lenne a dolog, szépen létre is hozza a jar file-t, azonban mikor futtatnám, akkor manifest hibával leáll, hogy a manifest által hivatkozott osztály nincs meg. Erre varjatok gombot...

[Szerkesztve]


Geza ba
(csendes tag)

Javaslom használd az antot ilyenre Bővebben: link. Ha jól emlékszem NetBeans/Eclipse/JEdit/stb-ben van hozzá GUI támogatás.

Edit: Link (harmadikra talán sikerül már :)

[Szerkesztve]

üzenetek