hra "Lines" a java
hra "Lines" a java
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
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
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?
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
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?
Kludne aj niekomu zaplatim, ak ta rada bude relevantna a k veci a pripadne poskytne aj nejaky source code
-
pheo
Light Star
- Príspevky: 212
- Registrovaný: 20 sep 2005, 16:53
- Bydlisko: moje hniezdo
- Kontaktovať používateľa:
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
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
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)
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
- Príspevky: 212
- Registrovaný: 20 sep 2005, 16:53
- Bydlisko: moje hniezdo
- Kontaktovať používateľa:
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
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
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