hra "Lines" a java

Programovacie jazyky, rady, poradňa...
STomko
Guru wannabe
Guru wannabe
Príspevky: 2212
Registrovaný: 28 feb 2007, 16:27
Bydlisko: BA

hra "Lines" a java

Príspevok od používateľa STomko »

Vie mi niekto pomoct s javou a s programovanim tejto hry?

Princip je jednoduchy, hracie pole napr. 10x10, a dajme tomu napriklad gulicky 4 roznych farieb, pri spusteni sa 3 nahodne umiestnia na plochu, po kliknuti na niektoru z nich a nasledne kliknutie na ine policko sa gulicka, ak sa to da, presunie tam, a zaroven sa dalsie 3 nahodne umiestnia na hracie pole.
Takto to pracuje az do zaplnenia pola, pritom 5 guliciek vedla seba (horizontalne/vertikalne/diagonalne) sa "odbije" a policka sa vyprazdnia.

Pouzivam eclipse, hodilo by sa mi nejake teoreticke nakopnutie, ako by som to dotiahol az do finalnej podoby, nejake tie podmienky?

Pripadne ak mi viete poradit prikaz, ktorym by som "importoval" nejaky gif obrazok (aby gulicky neboli fadne, ale aspon aby to ako-tak vyzeralo)

Dakujem
impact
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 401
Registrovaný: 17 nov 2005, 16:04

Príspevok od používateľa impact »

Myslis taketo nieco?

Skusal si uz sam spravit aspon nieco z toho ?
STomko
Guru wannabe
Guru wannabe
Príspevky: 2212
Registrovaný: 28 feb 2007, 16:27
Bydlisko: BA

Príspevok od používateľa STomko »

presne nieco podobne...
no taky zaklad uz mam, ako vytvorenie "hracieho pola", takisto nejake tie nahodne 3 farby aby sa mi ukazali....

No neviete niekto poradit ako na to, aby mi potom tie 3 gulicky hodilo na nahodnu X a Y suradnicu (pritom tie suradnice su presne stredy poli, ktore viem ake su, teda aby to bola nejaka nahodna hodnota z tych 10 hodnot), a zaroven ak ju hodi napr. na prve policko (50,50), aby si z X a Y suradnic "vyskrtlo" tieto 2 suradnice, teda aby dalsia gulicka nemohla byt polozena na to iste miesto (samozrejme iba za podmienky, ze sa nenajde 5 vedla seba rovnakych (vertikalne, horizontalne, diagonalne) a "neodskrtnu sa".... teda asi nejake pole? kde by sa uchovavali suradnice obsadenych poli? :shock: sorry za "nepresnost" vo vyjadrovani, snad niekto porozumie, o co mi ide :)

Kludne aj niekomu zaplatim, ak ta rada bude relevantna a k veci a pripadne poskytne aj nejaky source code :)
matwej
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 47
Registrovaný: 13 nov 2007, 21:17
Bydlisko: zvolen
Kontaktovať používateľa:

Príspevok od používateľa matwej »

chces to ako applet alebo samostatny program?
STomko
Guru wannabe
Guru wannabe
Príspevky: 2212
Registrovaný: 28 feb 2007, 16:27
Bydlisko: BA

Príspevok od používateľa STomko »

ako samostatny program...
STomko
Guru wannabe
Guru wannabe
Príspevky: 2212
Registrovaný: 28 feb 2007, 16:27
Bydlisko: BA

Príspevok od používateľa STomko »

Nenajde sa nik kto by pomohol? :?
pheo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 212
Registrovaný: 20 sep 2005, 16:53
Bydlisko: moje hniezdo
Kontaktovať používateľa:

Príspevok od používateľa pheo »

Hm, ako tak kukám, nie ke jednoduchšie(možno to tak máš, ale si to tu nenapísal) reprezentovať pole maticou o prvkoch 10x10 na začiatku ju vynuluješ = všetky polička su prazdne. Ked tam budeš chcieť hodiť nejakú ggulocku, pripadne ti poziciu vygeneruje pocitac cez random tak si tie suradnice preved na indexy matice:
napr pocitac -> nech ti poziciu generuje nahodne od 0 po 9 x a od 0 po 0 y, kukneš či na tej úpozícií sa už niečo nahádza (všetko > 0 obsadené, jednotlivé hodnoty sú farby, napr cervena 1 , modra 2, ....). Pozíciu pre awt pripadne swing z toho dostanes takto: (x+1) * sirka_gilicky - (sirka_gilicky /2)
čo sa týka vstupu od užívateľa tak dostaneš napríklad 231 x 166 (pritom sirka gulicky = 40, gulicka to byt nemusí môže to byť nejaký štvorec o dĺžke väčšej ako je gulicka ked ich nechceš mať na sebe nalepené):
x = X_swing/sirka_gulicky + (X_swing%sirka_gulicky > 0 ? 1 : 0) ;
tym dostaneš suradnice do matice.

Saomtné kontroly v matici už popisivať nebudem, .......

cau
STomko
Guru wannabe
Guru wannabe
Príspevky: 2212
Registrovaný: 28 feb 2007, 16:27
Bydlisko: BA

Príspevok od používateľa STomko »

Tak som to nejak spravil (aspon cast)

Pouzivam metodu onMouseClicked, no ta za kazdym kliknutim mysky prihodi 3 gulicky do pola nahodne.
No co v pripade, ak v hracom poli kliknem na gulicku. Normalne by sa po kliknuti na nu mal "ocakavat" dalsi klik a nasledne premiestnenie gulicky na danu poziciu. Teraz, kedze to nemam osetrene, sa aj po kliknuti na gulicku prihodia dalsie 3 + dalsie 3 sa prihodia ak povodnu presuniem.

Nevie niekto, ako tento pripad osetrit? Pripadne aby sa ignorovali kliky mimo hracieho pola? Dakujem

(prosim o zmazanie predosleho prispevku)
pheo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 212
Registrovaný: 20 sep 2005, 16:53
Bydlisko: moje hniezdo
Kontaktovať používateľa:

Príspevok od používateľa pheo »

Môžeš brať môj príspevok ako spam lebo tvoj problem nevyrieši.

Ja fakt neviem, takéto ľahké úlohy (je ich na tomto fore hafo )by si mali programatori riešiť sami a nie pýtať sa na komplet všetky detaily ovládania. Ide o to že takto sa naučíš myslieť algoritmicky ;) čo je nutnou podmienkou k napísaniu akéhokoľvek zložitejšieho programu.

A k tvojmu problému. Jednou z možností je rozoznávať stavy v akých sa hracia plocha nachádza. To sa rieši momocou listenerov(Action listener a pod.) vo swingu , ale to mnoho krat nestačí. je potrebne si vytvoriť extra premenne ktore ti indikuju stav. napr userIsDraging, kde na zaciatku priradis 1 a po uvolneni tlacitka priradis 0, ty ziskas dalsiu moznost ako rozoznavat stav. Tvoj problem nie nič iné ako niekoľko vnorených if else konštrukcií do seba

cau
Napísať odpoveď