Orodha ya maudhui:
- Hatua ya 1: Vifaa
- Hatua ya 2: Jua Mpango - Bodi
- Hatua ya 3: Jua Programu - Tile
- Hatua ya 4: Jua Programu - Mchezo
- Hatua ya 5: Njia Muhimu - Harakati
Video: Panga Mchezo Wako 2048 W W / Java !: Hatua 8
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:48
Kwa PranP1My (haijakamilika) Tovuti Fuata Zaidi na mwandishi:
Ninapenda mchezo 2048. Na kwa hivyo niliamua kupanga toleo langu mwenyewe.
Ni sawa na mchezo halisi, lakini kuipanga mwenyewe kunanipa uhuru wa kubadilisha chochote ninachotaka wakati wowote ninataka. Ikiwa ninataka mchezo wa 5x5 badala ya 4x4 ya kawaida, mabadiliko rahisi kwa kutumia mjenzi wa 'Bodi' yataniruhusu kufanya hivyo. Sema nataka kufanya mchezo kuwa mgumu zaidi, nikiongeza vipande kwenye nafasi ambazo zitaifanya iwe ngumu zaidi kwa mchezaji badala ya nasibu. Kutumia algorithm rahisi, naweza kufanya hivyo tu. Ingawa sitashughulikia marekebisho haya yote katika hii inayoweza kufundishwa, nina mpango wa kuongeza zaidi ninapoenda.
Kwa sasa, hata hivyo, tutapanga mchezo wako wa kawaida wa 2048.
Tuanze!
(Ujumbe wa pembeni: Hii inayoweza kufundishwa inahitaji ujuzi wa wastani wa programu - haswa na Java)
Hatua ya 1: Vifaa
Hutahitaji mengi kwa mradi huu kwani ni safari ya programu tu.
Vifaa:
- Laptop
- Eclipse (au IDE yoyote ya chaguo lako)
Ndio. Hiyo ndio.
Hatua ya 2: Jua Mpango - Bodi
Nilipakia nambari yangu yote kwenye GitHub - itazame hapa:
Niligawanya mchezo hadi darasa tatu: Bodi, Tile na Mchezo.
Bodi:
Maelezo: Darasa la Bodi linahusika na ubao wa michezo, kuanzisha safu ya vitu vya 'Tile', kupata alama ya sasa na tile ya juu zaidi, na kuweka safu katika kamba (itakayotumika baadaye katika 'Mchezo'). Mantiki nyingi pia ziko hapa, darasa linatoa njia za kuzaa 2 na 4 katika maeneo yasiyofaa, kusonga juu, chini, kushoto na kulia, na kuwajulisha wachezaji wakati mchezo umekwisha.
Waundaji:
/ * Mtengenezaji chaguo-msingi wa Bodi - anaweka matriki 4x4 * /
Bodi ya umma () {…}
/ * Mjenzi wa Bodi - huweka matriki na saizi ya gridi maalum * /
Bodi ya Umma (gridi za ndani) {…}
Mbinu:
/ * Njia ya Getter ambayo inarudisha bodi * /
Tile ya umma getBoard () {…}
/ * Njia ya Getter ambayo inarudisha alama * /
public int getScore () {…}
/ * Inatafuta tile ya juu kabisa ubaoni na kuirudisha * /
public int getHighTile () {…}
/ * Chapisha bodi kwenye koni - kwa madhumuni ya upimaji * /
chapisho batili la umma () {…}
/ * Hurejesha bodi kama Kamba - iliyotumiwa katika GUI * /
Kamba ya umma toString () {…}
/ * Inazaa 2 (au 4) kwenye nafasi tupu wakati mwingi hoja imefanywa * /
mbegu tupu ya umma () {…}
/ * Inakagua kuona ikiwa bodi imezimwa kabisa na ikiwa iko, itawashawishi wachezaji kuanza upya * /
boolean ya umma nyeusiOut () {…}
/ * Hundi ili kuona ikiwa mchezo umeisha - wakati bodi imezimwa na hakuna tiles yoyote inayoweza kuchanganya * /
mchezo wa boolean wa umma () {…}
/ * Inayoitwa wakati 'w' au mshale wa juu umesisitizwa - piga simu 'wimaSonga' kwa kila tile kwenye ubao na parameter 'up' * /
utupu wa umma () {…}
/ * Inayoitwa wakati 's' au mshale wa chini umebanwa - inaita 'verticalMove' kwa kila tile kwenye ubao na parameter 'chini' * / utupu wa umma chini () {…}
/ * Inayoitwa wakati 'd' au mshale wa kulia umebanwa - inaita 'usawa Hoja' kwa kila tile kwenye ubao na parameter 'kulia' * / utupu wa umma kulia () {…}
/ * Inayoitwa wakati 'mshale' au kushoto inabanwa - piga simu 'usawa Hoja' kwa kila tile kwenye ubao na parameter 'kushoto' * /
utupu wa umma kushoto () {…}
/ * Inalinganisha maadili ya tile mbili pamoja na ikiwa ni sawa au ikiwa moja ni sawa na 0 (tile wazi) - maadili yao yanaongezwa (mradi tiles tunazilinganisha ni tiles mbili tofauti na zinaelekea kwenye mwelekeo unaofaa) - unarudia kupitia safu * /
umma utupu usawa
/ * Inalinganisha maadili ya tile mbili pamoja na ikiwa ni sawa au ikiwa moja ni sawa na 0 (tile wazi) - maadili yao yanaongezwa (mradi tiles tunazilinganisha ni tiles mbili tofauti na zinaelekea kwenye mwelekeo unaofaa) - inarudia kupitia safu * /
public void verticalMove (mstari wa ndani, safu ya ndani, mwelekeo wa Kamba) {…}
Ndio, hiyo ni njia nyingi - lakini usijali, nyingi ni rahisi kuelewa. Juu ya hayo, darasa la 'Bodi' ni ngumu zaidi, kwa hivyo kila kitu baada ya hii kitakuwa rahisi.
Hatua ya 3: Jua Programu - Tile
Tile:
Maelezo: Darasa la Tile linahusika na vigae vya kibinafsi, na ni ndogo kuliko darasa zote. Kila tile ina thamani kamili na rangi. Ina wajenzi wawili ambao huunda Tiles za thamani 0 (chaguo-msingi) au thamani #. Njia hizo zinajielezea zaidi, na njia za 'kupata' na 'setter' zinaunda jumla ya jumla.
Waundaji:
/ * Inaunda tile ya msingi na thamani ya 0 * /
Tile ya umma () {…}
/ * Huunda tile yenye thamani ya nambari * /
Tile ya umma (nambari ya int) {…}
Mbinu:
/ * Inapata thamani ya tile * /
public int getValue () {…}
/ * Inaweka thamani ya tile - hutumiwa wakati wa kuongeza tiles mbili pamoja * /
batili ya umma setValue (thamani ya int) {…}
/ * Inawakilisha tile kama Kamba - inayotumiwa katika GUI * /
Kamba ya umma toString () {…}
/ * Inaweka rangi ya tile kulingana na thamani yake * /
setColor ya utupu wa umma () {…}
/ * Anapata rangi ya tile * /
umma utupu GetColor () {…}
Hatua ya 4: Jua Programu - Mchezo
Mchezo
Maelezo: Darasa la Mchezo lina njia kuu, njia nyingi za GUI na mwingiliano muhimu. Inachukua darasa zote za Tile na Bodi, na inawawezesha kufanya kazi pamoja.
Waundaji:
Hakuna
Mbinu:
/ * inaweka GUI na saizi inayofaa na inaongeza Msikilizaji Muhimu * /
hadharani tuli setUpGUI () {…}
/ * Hukagua ikiwa funguo za wasd au mshale zimebanwa na hufanya vitendo mwafaka - sasisha JFrame kwa kila hoja * /
kitufe cha utupu wa umma kimeshinikizwa (KeyEvent e) {…}
/ * Inapaka rangi GUI na safu ya masharti, bodi, vigae na inahakikisha zinapakwa rangi tena wakati mchezo umekwisha * /
rangi batili ya umma (Graphics g) {…}
/ * huchota tile ya kibinafsi - inayoitwa kutoka kwa njia ya rangi * /
vigae vya utupu vya umma (Graphics g, Tile tile, int x, int y) {…}
/ * Njia kuu - inaweka GUI na kuanza mchezo * /
hadhi kuu ya umma iliyo wazi (Kamba args) {…}
Hatua ya 5: Njia Muhimu - Harakati
Njia za harakati ni muhimu kuelewa, lakini habari njema ni mara tu unapoelewa harakati za wima, unaweza kutumia uelewa huo kwa harakati zenye usawa. Kwa kweli, njia tatu za harakati za wima ni sawa sawa na harakati tatu za usawa, isipokuwa moja inapita kwenye safu na nyingine kwenye safu zote. Kwa sababu hiyo, wacha tuangalie tu njia za harakati za wima.
wima ya kibinafsi wimaMove (mstari wa ndani, int col, mwelekeo wa Kamba)
{Tile awali = bodi [mpaka] [col]; Linganisha tile = bodi [safu] [col]; ikiwa (initial.getValue () == 0 || initial.getValue () == kulinganisha.getValue ()) {if (row> border || (direction.equals ("down") && (row <border))) {int addScore = initial.getValue () + linganisha.getValue (); ikiwa (initial.getValue ()! = 0) {alama + = addScore; } awali.setValue (addScore); linganisha. Seti ya Thamani (0); }} mwingine {if (direction.equals ("down")) {border--; } mwingine {border ++; } wimaSonga (safu, kololi, mwelekeo); }}
Njia iliyo hapo juu, wimaMove, inaitwa na njia za 'juu' na 'chini'. Wacha tuangalie njia ya 'juu'.
utupu wa umma ()
{kwa (int i = 0; i <gridi; i ++) {border = 0; kwa (int j = 0; j <grids; j ++) {if (board [j] .getValue ()! = 0) {if (border <= j) {verticalMove (j, i, "up"); }}}}}
Njia hii hupitia bodi nzima na inaita verticalMove kwa kila tile na parameter "juu". verticalMove kisha inalinganisha tile katika nafasi 'j' na 'i' na tile kwenye msimamo 'mpaka' na 'i'. Ikiwa wawili ni sawa, wameunganishwa. Ikiwa sio, tile ya mpaka imeongezwa kwa 1 (kama parameter iliyopo ni 'up'), na verticalMove inaitwa tena.
Ilipendekeza:
Tengeneza Mchezo wako wa 1D Pong: Hatua 5 (na Picha)
Tengeneza Mchezo wako wa 1D Pong: Kwa mradi huu nitakuonyesha jinsi nilichanganya bodi ya MDF na vifungo vya buzzer, LEDs na Arduino Nano ili kuunda Mchezo wa 1D Pong ambao ni wa kufurahisha kucheza. Njiani nitakuonyesha jinsi ya kuunda mzunguko wa umeme na jinsi tofauti
Fanya Uonyesho Wako Wako (aina ya) Uwazi: Hatua 7
Fanya Onyesha yako ya Aina ya Uwazi: Maonyesho ya uwazi ni teknolojia nzuri sana ambayo inafanya kila kitu kuhisi kama siku zijazo. Walakini kuna nyuma chache za kuteka. Kwanza, hakuna chaguzi nyingi zinazopatikana. Na pili, kwa sababu kawaida ni maonyesho ya OLED, wanaweza
Mdhibiti wa Mchezo wa Arduino Na Taa Akijibu Mchezo Wako wa Umoja :: Hatua 24
Mdhibiti wa Mchezo wa Arduino na Taa Akijibu Mchezo Wako wa Umoja :: Kwanza niliandika kitu hiki kwa neno. Hii ni mara yangu ya kwanza kutumia kufundisha kwa hivyo kila ninaposema: andika nambari kama vile ujue kwamba ninazungumzia picha iliyo juu ya hatua hiyo. Katika mradi huu ninatumia 2 arduino ’ s kuendesha kidogo 2 tofauti
Andika Mchezo wako mwenyewe wa Tic Tac Toe katika Java: Hatua 6
Andika mchezo wako mwenyewe wa Tic Tac Toe katika Java: Nina hakika nyote mnajua juu ya mchezo wa kawaida wa Tic Tic Toe. Tangu miaka yangu ya shule ya msingi, Tic Tac Toe ulikuwa mchezo maarufu ambao nilikuwa nikicheza na marafiki zangu. Nimekuwa nikivutiwa na unyenyekevu wa mchezo. Katika mwaka wangu mpya, yangu
Tengeneza Wahusika Wako Wako Wako katika Windows. 4 Hatua
Tengeneza Wahusika Wako Wako Wako katika Windows. Ndio na vitu. Jihadharini na picha ambazo zimetengenezwa kwa rangi. Wanaweza kutisha