Klient i zgjuar apo budalla? Krijimi i një strategjie nga e para - një udhëzues i detajuar Krijimi i hartave për një strategji të bazuar në kthesa.

Formimi i strategjisë
Ju nuk mund t'u besoni amatorëve:
planet e tyre mund të funksionojnë papritur,
dhe askush nuk është gati për këtë.

(A. Cuningham)

Në dy numrat e mëparshëm mësuam bëni lojëra të thjeshta 2D, kontrolloni spritet, lëvizni ekranin e lojës, gjurmoni përplasjet e objekteve të lojës, ndërtoni një ndërfaqe (butonat, miun, tastierën, zonat e tekstit) dhe punoni në modalitetet me ekran të plotë dhe me dritare. E gjithë kjo u bë duke përdorur një lojë arcade si shembull.

Këtë herë ne do të kalojmë nga lojërat arcade në një zhanër më "serioz" - strategjitë. Këtu do të duhet të zotërojmë një seri të tërë mekanizmash të rinj, por as këtu nuk do të ketë asgjë të komplikuar. Në këtë artikull ne Le të studiojmë strukturën e një strategjie të bazuar në kthesa(dhe gjithashtu strategji në kohë reale- është edhe më e lehtë për ta bërë këtë me LKI-Creator) dhe ne do të bëjmë një lojë shembull, të krijuar, megjithatë, vetëm për me shumë përdorues modaliteti (dhe gjithashtu redaktori i hartës për të). Ne do të merremi me modalitetin me një lojtar në numrin e ardhshëm të kolonës sonë - kushtuar bazat e inteligjencës artificiale.

Meqenëse ky është tashmë mësimi i tretë, ne nuk do të hyjmë në detaje të gjitha kodi shembull - për fat të mirë, shumë është bërë saktësisht njësoj si dy herët e mëparshme. Për referencë, ekziston një program shembull (ka shumë komente në të) dhe artikuj të mëparshëm.

Epo, materialet nga klasat tona të kaluara mund t'i gjeni në faqen tonë CD, në seksionin "Bëje vetë lojën" e krijuar posaçërisht për këtë qëllim.

Formulimi i problemit

Le të shkruajmë një lojë strategjike që përbëhet nga një betejë midis dy ushtrive fantazi. Qëllimi i betejës është të kapni disa obeliskë, vendosur në hartë. Para betejës ne vendosim trupat tona, të përbëra nga 6 shpatar, 4 harkëtarët, 2 kalorësit, 2 magjistarët dhe 1 fantazmë, brenda territorit të caktuar për ne. Përveç tyre, në hartë ka edhe ato neutrale dragonj.

Karakteristikat e luftëtarëve
Luftëtar Lëvizja Hitet Gama Dëmtimi Mbrojtja aftësitë
Shpatar4 8 1 7 2 -
Shigjetari4 5 7 5 1 -
Kalorës3 15 1 9 4 Shërimi, goditja e kalorësit
Magjistar3 12 5 6 0 Top zjarri
Fantazmë4 7 2 5 5 Rigjenerimi
Dragoi6 30 2 12 5 Fluturimi

Karakteristikat e luftëtarëve janë paraqitur në tabelë. Mjekimi- kjo është e drejta për të shëruar një luftëtar fqinj (përveç një fantazmë) në shëndet të plotë një herë në betejë. Goditja e Kalorësit- e drejta për të shkaktuar dëme të trefishta një herë në lojë. Top zjarri- Sulmi i magjistarit heq pikat e goditjes jo vetëm nga objektivi i menjëhershëm, por edhe nga sheshet përreth. Rigjenerimi- rikuperimi i 1 goditje për kthesë. Fluturimi- e drejta për të lëvizur mbi pengesa.

Loja luhet në modalitetin me shumë lojtarë, në versionin Hot Seat (luaj nga një kompjuter, lëviz me radhë). Pasi lojtarët të kthehen, dragonjtë neutralë bëjnë radhën e tyre, duke sulmuar çdo armik brenda një rrezeje prej 7 qelizash.

Festa përfundon kur njëra palë ose kap më shumë se gjysmën e obeliskëve të pranishëm në hartë ose vdes plotësisht.

Harta fillimisht u vendos në redaktuesin e hartës. Ka obeliskë, dragonj dhe pengesa (objekte nëpër të cilat nuk mund të lëvizësh ose të sulmosh).

Përgatitja për punë

Para se të fillojmë, do të duhet të riinstalojmë paketën LKI-Krijuesi. Fakti është se në krahasim me herën e kaluar i janë bërë shumë ndryshime dhe shtesa.

(Shpresoj që Delfi ju tashmë keni instaluar; nëse jo, atëherë lexoni rekomandimet për këtë temë në artikullin tonë të mëparshëm - në numrin e qershorit të revistës ose në CD-në e këtij numri ose në faqen e internetit.)

Është e rëndësishme: versioni i mëparshëm i LKI-Creator kishte disa probleme përputhshmërie me versionet e reja të Delphi. Në këtë version ato eliminohen.

Merrni skedarin me tekste programi dhe fotografi nga CD-ja jonë (seksioni "Lojë me duart tuaja") dhe shpaketoni atë në drejtorinë e projektit.

Tani mund të shkarkoni skedarët e nevojshëm nga këtu .

Duhet të kemi tre nëndrejtori. One - Units - ruan bibliotekat DirectX dhe modulet e paketës LKI-Creator. Në një tjetër - Projekt - ne do të punojmë; Fotot që do të na duhen dhe versioni i mëparshëm i lojës sonë arcade janë vendosur aty paraprakisht. Në të tretën - Escort - një program i gatshëm në të cilin duhet të kemi sukses.

Tani le të instalojmë (riinstalojmë) LKI-Creator. Në menynë Delphi, hapni artikullin Komponenti dhe zgjidhni Instalo Komponentin. Nëse e keni instaluar tashmë këtë paketë, qëndroni në skedën "Në paketën ekzistuese", përndryshe shkoni në skedën "Në paketën e re" dhe plotësoni rreshtat bosh siç tregohet në figurë (në rreshtin e sipërm, mënyra më e lehtë është të zgjidhni LKI2dEngine. pas skedarit duke përdorur butonin Browse, dhe në fund thjesht shkruani LKI). Pastaj klikoni OK dhe zgjidhni Instalo. Tani duhet të shihni skedën LKI në panelin e sipërm të Delphi.

Tani gjithçka që mbetet është të ngarkojmë projektin tonë. Në menynë File, zgjidhni Hap, hapni skedarin Project\Obelisk.dpr…

Ku është harta, Billy? Na duhet një hartë!

Megjithatë, përpara se të hyjmë në gjërat e mëdha, do të duhet të punojmë pak më shumë në motorin grafik.

Në Star Escort, projekti ynë i mëparshëm, "harta" nuk kishte asnjë kuptim: yjet u vendosën në mënyrë të rastësishme dhe nuk ndikuan asgjë, dhe pozicioni i objekteve të tjera ose u specifikua drejtpërdrejt në kod ose u përcaktua rastësisht. Kjo nuk është e përshtatshme për çdo projekt. Kjo do të thotë se është koha që ne të shtojmë motorin tonë harta e zonës.

Ju ndoshta tashmë mund ta merrni me mend se si do të duket - ne vendosim një objekt harte në dritaren e projektit dhe më pas e regjistrojmë atë në pronë Harta motori ynë.

Kështu është... por ne kemi më shumë se një klasë karte. Le të hedhim një vështrim më të afërt ...

Llojet e kartave

Harta përbëhet nga diçka peizazhi Dhe objektet instaluar në të. Peizazhi më së shpeshti (por jo gjithmonë) ndahet në qeliza të quajtura pllakave- pllakave.

Siç e dimë nga një kurs i gjeometrisë shkollore, një plan mund të mbulohet pa boshllëqe ose mbivendosje me shumëkëndësha të rregullt të tre llojeve: trekëndësh (barabrinjës), katror, ​​gjashtëkëndësh. Fushat trekëndore nuk janë veçanërisht të përshtatshme, kështu që qelizat katrore ose gjashtëkëndëshat përdoren më shpesh.

Në një farë kuptimi, të jetosh me katrorë është më e lehtë: nëse kemi një grup qelizash dydimensionale, është menjëherë e qartë se si të gjejmë qelizat ngjitur me një qelizë të caktuar. Këto janë +1 dhe -1 për secilin nga dy indekset. Me gjashtëkëndëshat, gjithçka është pak më e ndërlikuar... por bordi gjashtëkëndor ka një veti shumë të vlefshme: të gjitha drejtimet në të janë të njëjta. Ky nuk është rasti me një rrjet katror: diagonalet janë dukshëm të ndryshme nga horizontalet dhe vertikalet. Prandaj, për llogaritjet strategjike serioze, gjashtëkëndëshat mund të jenë më të mirë se katrorët.

Ka edhe karta pa pllaka. LKI-Creator mbështet dy lloje: grafik dhe lara-lara.

Një hartë grafike është një hartë në të cilën vetëm disa pika kyçe kanë kuptim, plus ndoshta zona të veçanta (për shembull, ato të pakalueshme), dhe pjesa tjetër është thjesht një model që nuk ka efekt loje. Kështu bëhen shpesh hartat e yjeve, si, le të themi, Master of Orion: yjet dhe vrimat e zeza janë pika kyçe, pjesa tjetër është sfond. Në këtë mënyrë, ata ndonjëherë bëjnë harta globale, për shembull, për një lojë me role.

Harta e lara-lara është e ndarë në zona, dhe brenda zonës të gjitha pikat janë të njëjta; Kjo është e mirë për strategjitë globale, ku një provincë është njësia minimale e territorit.

Shembuj të letrave nga lojëra të ndryshme, që tregojnë llojin, janë në foto.

Pra shumica dy dimensionale hartat (tre-dimensionale - një artikull i veçantë) mund të ndahen në katër klasa:

  • Drejtkëndëshe- TLKIRect Map. Kjo është një hartë me pllaka, qelizat janë katrore. Një hartë e tillë, për shembull, në Civilization III.
  • Gjashtëkëndor- TLKIHexMap. Hartë me pllaka me qeliza gjashtëkëndore. Përdoret në shumë lojëra luftarake, dhe jo vetëm: kështu, për shembull, është bërë tradicionalisht harta e betejës Heroes of Might & Magic.

    Këto dy lloje kartash janë pasardhës të klasës së përgjithshme TLKITile Map.

  • Grafovaya- TLKIGHarta. Kjo kartë ka sfond (vetia e sfondit) dhe pikat kyçe të theksuara në të janë objekte statike. Pozicioni i objekteve të tjera në këtë hartë shprehet ose me koordinata të zakonshme (si një anije kozmike në hapësirën ndëryjore) ose duke iu referuar një objekti (e njëjta anije në orbitën e një planeti). Këto janë kartat Master of Orion, Arcanum (global), e kështu me radhë.
  • lara-lara- TLKICluster Map. Ka një veti të sfondit, si grafiku, dhe një veçori të dytë - maskë, e cila përcakton se cila pikë i përket cilit rajon dhe pronën kufijtë, i cili përcakton lidhjet midis "shreds". Kështu janë rregulluar hartat, për shembull, në Mesjetare: Total War ose Victoria.

Është e rëndësishme: Klasat e hartës nuk përshkruhen në modulin LKI2dEngine, por në LKI2dMap.

Këndet e animit

Por nëse mendoni se kjo shteron aftësitë e LKI-Creator për shfaqjen e hartave, atëherë gaboheni shumë.

Harta mund të paraqitet pamje nga lart ose izometrike- shikoni në një kënd në vertikale. Për shembull, harta e Civilization III ose Heroes of Might & Magic IV është izometrike, ndërsa Civilization I adopton një pamje nga lart-poshtë.

Në mënyrë tipike, izometria përdoret për hartat me pllaka, ndërsa hartat grafike përdoren me pamje nga lart, pasi shkalla e hartave grafike është zakonisht më e vogël. Por ka përjashtime: për shembull, në Mesieval: Total War ekziston një hartë izometrike me lara-lara.

Vetia e hartës është përgjegjëse për izometricitetin Isometrike dhe dy parametra që përcaktojnë këndin në të cilin duket kamera jonë: Phi Dhe Theta.

E para është përgjegjëse për rrotullimin e hartës në lidhje me boshtin vertikal: për shembull, nëse e vendosni në 45 gradë (ajo matet në gradë), atëherë qeliza e rrjetit drejtkëndor do të orientohet me një kënd lart, si në Civilization. . Në Phi=0, njëra nga anët e qelizës do të jetë horizontale.

E dyta kontrollon animin e kamerës në lidhje me vertikalen. Për lehtësi, është dhënë si raport i njësive horizontale dhe vertikale të gjatësisë. Le të themi, nëse duam që qeliza jonë të jetë sa e gjatë sa është e gjerë, duhet të vendosim Theta në 2.

Me një hartë me pllaka, nuk na lejohet të zgjedhim këto kënde në mënyrë arbitrare: në fund të fundit, ne nuk kemi (ende) 3D. Ato varen drejtpërdrejt nga parametrat e pllakave. Për shembull, nëse kemi një bosht në formë diamanti me një kënd lart, dhe boshti vertikal është gjysma e madhësisë së boshtit horizontal, atëherë duhet të vendosim parametrat 45 dhe 2.

Por hartat grafike dhe lara-lara ju japin të drejtën t'i caktoni këto parametra ashtu siç dëshironi (dhe madje, nëse dëshironi, t'i ndryshoni ato në proces), por nuk duhet të tërhiqeni me këtë - përveç faktit që kthesa të tilla marrin një shumë kohë, ata gjithashtu nuk duken shumë të lezetshëm. Dhe mos harroni se nëse harta juaj është artistike, me foto, mbishkrime etj., atëherë ata do të kthehen me të... Në përgjithësi, ndonjëherë është më e lehtë të vizatoni një hartë lara-lara duke marrë parasysh rrotullimin e kërkuar - për fat të mirë, distancat shpesh nuk luajnë ndonjë rol atje.

Nyje

Harta e lara-lara, pamja e sipërme.

Hartat e pllakave kanë një problem tjetër - bashkimin e pllakave. Ai kontrollohet nga parametri TileBorderStyle. Më shpesh kjo tjegull Drejt, një mënyrë në të cilën pllakat thjesht përshtaten së bashku pa asnjë efekt skaji, ose tjegullBorder, në të cilat vizatohen linja që ndajnë një pllakë nga tjetra - kufijtë e qelizave (në rastin e fundit, mos harroni të përcaktoni ngjyrë grilat në parametra TileBorderColor).

Por ekziston një mundësi më dinake, kur pllakat identike janë ngjitur me njëra-tjetrën pa ndryshime, dhe të ndryshme përdoren duke përdorur një pllakë të veçantë "kalimtare". Kjo zakonisht bëhet nëse harta përbëhet kryesisht nga hapësira të gjera të një lloji territori, të themi, zona të gjelbra të mëdha, dhe një qelizë individuale nuk është e rëndësishme dhe nuk duhet të vërehet nga lojtari. Kjo është karta Heroes of Might Magic. Por nëse çdo qelizë përpunohet veçmas, si në Civilization, atëherë kjo metodë nuk është e përshtatshme dhe është më mirë të ndahen qartë qelizat nga njëra-tjetra. Teknologjia "e shkrirë" (e quajtur gjithashtu maskë) është specifikuar nga vlera TileBorderStyle e barabartë me tjegullMaskuar. Ne do të flasim për strukturën e tyre një herë tjetër - kjo është një temë mjaft komplekse.

Pllakë

Elementi i hartës - objekti i klasës TLKITile- ka një strukturë të thjeshtë. Fillimisht përmban: koordinatat, spritin që e vizaton, kodin e llojit të pllakës (i cili përcakton se çfarë kemi këtu - një kodër, shkretëtirë, rrugë, det?) dhe aftësinë ndër-vend (kjo është e rëndësishme në shumicën e lojërave). E fundit është numri i njësive të lëvizjes që shpenzohen për lëvizjen nëpër këtë pllakë tokë skuadër. Për pllakat e pakalueshme, ky është një numër negativ.

Një tjetër parametër - Objektet, një listë e objekteve të vendosura në këtë pllakë (lloji TLKIGameObject).

Për të zbuluar se në cilën qelizë është klikuar, harta ka një metodë MouseTile(x,y) duke e kthyer pllakën e zgjedhur.

Metodat e pllakave përfshijnë Është Fqinji(Pllakë, Distanca). Ky funksion kthehet i vërtetë nëse Tile nuk është më shumë se qelizat Distance larg nga pllaka e dhënë (si parazgjedhje ky parametër është i barabartë me një, domethënë, nëse thjesht shkruani IsNeighbour(Tile), funksioni do të kthehet i vërtetë për pllakën menjëherë ngjitur tek pllaka e dhënë Për një rrjetë katrore, ato pllaka që kufizohen diagonalisht konsiderohen gjithashtu "fqinj".

Funksione Fqinji i Parë Dhe Fqinji i ardhshëm përdoren për të kontrolluar të gjitha qelizat ngjitur me një të dhënë. E para prej tyre tregon një qelizë fqinje, dhe e dyta mund të thirret vetëm pasi të telefononi të parën, dhe ajo jep fqinjët e ardhshëm, një nga një.

Numërimi i fqinjëve

// Duke shkaktuar dëme në një qelizë

procedurë TObeliskTile.Damage(dmg: integer);

nëse(Objekte.Numërimi > 0) dhe// ne mund të kemi

// jo më shumë se një objekt për qelizë

(Objektet.ID > 0) // Objektet pasive

// nuk është dëmtuar

Dhjetor (Objekte. Hite,

// Zbrisni automatikisht mbrojtjen nga dëmtimi

Max(0,dmg-(Objekte si TObeliskGameObject).Mbrojtja);

nëse Objektet.Hitshen Die; // Ne heqim të vdekurit

// Sulmi i topit të zjarrit

procedurë TObeliskTile.Fireball;

var Fqinji: TObeliskTile;

Neighbor:= First Neighbour si TObeliskTile;

Fqinjë.Dëme(6);

Neighbor:= Fqinji tjetër si TObeliskTile;

deri sa Komshiu = zero; // Derisa të mbarojnë fqinjët

Një shembull është në shiritin anësor "Enumerating Neighbors". Kjo procedurë llogarit topin e zjarrit që godet një qelizë dhe të gjithë fqinjët e saj.

Kjo eshte interesante: për punën e saj nuk ka fare rendesi, kemi një grilë gjashtëkëndore ose një katror.

Shpesh na duhen disa parametra të tjerë, dhe zakonisht klasa e pllakave që përbëjnë hartën - pasardhës TLKITile. Pra, në shembull - TObeliskTile është trashëguar nga TLKITile.

Është e rëndësishme: Nëse sjellim një hartë me pllaka në ekranin e lojës sonë, koordinatat, si dhe metodat TLKIGameObject të lidhura me distancën, si parazgjedhje fillojnë të matin distancën në pllaka dhe jo në pika. Koordinatat e butonave, ikonave, etj. vazhdo të matet në pixel! Por kjo mënyrë mund të fiket - kjo mund të jetë e dobishme për strategjitë në kohë reale.

Zgjedhja e një karte

Pra, le të fillojmë me një grilë drejtkëndore (TLKIRectMap), një hartë izometrike (parametrat këndorë 0, 1.5). Lëreni rrjetin të vizatohet (stili tileBorder). Le t'i themi motorit që kjo hartë e veçantë duhet të shfaqet. Deri më tani, të gjitha veprimet e nevojshme janë kryer pa shkruar asnjë rresht kodi.

Këto operacione duhet të kryhen përpara inicializimi i motorit, si dhe deklarimi i fontit.

Shifrat, si më parë, do t'i shpallim sprite.

Redaktori i hartës

Harta lara-lara, izometrike.

Këtu ka mjaft vështirësi. Pikërisht i njëjti motor, të njëjtat deklarata të pllakave... Ndërfaqja, si zgjedhja e një pllake, ngarkimi/ruajtja, etj., mund të bëhet lehtësisht duke përdorur mjetet standarde të Delphi: askush nuk na detyron ta kalojmë në modalitetin e ekranit të plotë. Ne nuk do ta analizojmë këtë këtu - gjithçka është në skedarin e shembullit. Kodi i shembullit përdor qëllimisht metodën më të thjeshtë; Nëse dëshironi, mund të bëni, për shembull, paletën e objekteve dhe paletën e pllakave grafike.

Redaktori ka vetëm dy veçori që janë të panjohura për ne. E para është mjaft e thjeshtë: është një veçori e re e miut e krijuar posaçërisht për hartat e pllakave. Funksioni TLKIRectMap.SelectTile kthen një tregues në pllakën e saktë që është klikuar, kështu që ne mund ta trajtojmë me lehtësi klikimin.

Por produkti i dytë i ri meriton një konsideratë më të kujdesshme.

Në fakt, ka shumë mënyra për të ruajtur të dhënat në një skedar dhe për të lexuar të dhëna prej tij. Ne zgjodhëm metodën e koduar në skedar Baza e topave. Cannon është një mjet për të lexuar dhe shkruar objekte pasardhëse TCannonObjekt me kontrollin e tipit dhe disa veçori të tjera.

Le të shohim kodin ("Write card").

Hyrja e kartës

procedurë TObeliskMap.Save;

var i,j: numër i plotë;

InitSave (FName);

WriteStr(Name Map);

Write(Map.Width, SizeOf(Map.Width));

Shkruani (Harta. Lartësia, Madhësia e (Hartës. Lartësia));

për i:=0 te Harta.Gjerësia-1 bëj

për j:=0 te Harta.Lartësia-1 bëj

Write(Map.Tiles.Code, SizeOf(integer);

Ja si funksionon. Së pari ju duhet të hapni skedarin duke përdorur një procedurë të veçantë InitSave, parametri i vetëm i të cilit është emri i skedarit. Pastaj ruajmë kokën për kontrollin e tipit duke përdorur një procedurë të veçantë WriteHeader. Pastaj shkruajmë gjithçka që na nevojitet duke përdorur procedurën WriteStr për vargjet dhe për të gjitha fushat e tjera - Shkruaj(parametri i dytë i tij është madhësia e të dhënave të shkruara në bajt). Ju mund të shkruani procedurat tuaja për fushat e objekteve sipas nevojës Ruaj me një regjistrim të kokës. Në fund mbyllim skedarin me procedurën FinSave.

Të gjitha objektet që kanë kokën e tyre duhet të deklarohen veçmas. Në kapitull Inicializimi moduli (seksioni opsional që vjen më pas Zbatimi, i cili përmban komanda që duhet të ekzekutohen që në fillim, kur filloni programin), duhet të shkruani rreshtin e mëposhtëm, për shembull:

RegisterUserName (tpMap, "TObeliskMap");

TpMapështë një konstante që edhe ju duhet ta deklaroni. Barazoni atë, le të themi, me 1. Dhe në konstruktorin e objektit TObeliskMap, caktoni vlerën e kësaj konstante në parametrin Lloji ID.

Pse gjithë kjo bujë? Përveç përputhjes së tipit, ju merrni një përfitim shumë të rëndësishëm.

Nëse formati i skedarit ndryshon, të themi, për shkak të shtimit të fushave të reja, nuk do të keni nevojë të shkruani ndonjë "konvertues" që konverton skedarët e vjetër në të rinj. Kodi juaj do t'i lexojë ato automatikisht.

Ky kod do të inicializojë automatikisht fushën e re si boshe nëse nuk ruhet në skedar. Dhe mund të shkruani një skedar thjesht duke shtuar rreshtin WriteStr(Name) deri në fund.

Koment: Nëse ende nuk e kuptoni se për çfarë është ky proces, mos u shqetësoni. Mund të përdorni metoda më konvencionale të regjistrimit dhe ruajtjes. Por në projektet e lojërave me të vërtetë në shkallë të gjerë, kjo rrugë ofron avantazhe të rëndësishme.

Le te luajme

Para së gjithash, ne duhet të krijojmë një klasë të re që rrjedh nga TLKIGameObject. Do na mungojnë pronat e të vjetrës. Në klasën e re, duhet të shtoni fusha për karakteristikat kryesore: diapazoni, lëvizja, etj.

Është e rëndësishme: Parametri ynë i vjetër i shpejtësisë mbetet me ne, por ai tregon shpejtësinë e lëvizjes së pjesës nëpër ekran dhe jo distancën që do të përshkojë për kthesë. Nëse do të bënim një strategji në kohë reale, nuk do të kishim nevojë për një parametër të ri, por përndryshe do të na duhet ta prezantojmë atë.

Në ekranin tonë ne do të aplikojmë butonat TLKIButton në formën e harkëtarëve, shpatarëve, magjistarëve, fantazmave, kalorësve.

Së pari kemi rregullimin. Le të përcaktojmë zonën e vendosjes për njërën anë si tre "vijat" e sipërme të hartës, për tjetrën - si tre "vijat" e poshtme.

Kodi funksionon kështu. Kur shtypni ndonjë nga butonat, aktivizohet instalimi i luftëtarit përkatës; Klikimi në një katror të pazënë në zonën e vendosjes e vendos figurën atje dhe çaktivizon butonin. Sapo të gjithë butonat çaktivizohen, lëvizja i transferohet armikut.

Në fillim të çdo lëvizjeje të re, të gjithë butonat ndizen përsëri: kjo bëhet në mënyrë që të jetë më e lehtë për një person të vërejë se kujt nuk i ka ngjan ende. Në përputhje me rrethanat, duke klikuar mbi butonin zgjedh figurën, dhe sapo të bëhet një lëvizje, butoni zhduket. Një buton tjetër - "Përfundimi i kthesës" - shfaqet vetëm pas fazës së vendosjes.

Herën e fundit ne kemi bërë tashmë operacione për të aktivizuar dhe çaktivizuar elementët e ndërfaqes, kështu që ne nuk do ta analizojmë këtë operacion në detaje - shikoni kodin e shembullit.

Lëvizja e pjesës

// Nëse qeliza e zgjedhur është e pushtuar nga armiku, ne sulmojmë,

// nëse jemi të lirë, ne lëvizim, nëse jemi të zënë me tonat

// ose një pengesë - injoroni klikimin

Pllakë:= Map.MouseTile(MouseX, MouseY);

nëse(Pllakë = zero)// Klikoni jashtë dritares së lojës

pastaj dalje;

// Duke lëvizur

nëse(Tile.Objects.Count = 0)

dhe(Dist (Vetë)

dhe jo Lëvizur pastaj

// Le të kontrollojmë nëse mund të arrijmë atje

nëse jo HasWay (tjegull) pastaj dalje;

MoveObj(ID, Tile.x, Tile.y);

// Loja është e bazuar në kthesa - ne lëvizim menjëherë

Moved:= e vërtetë;

//

nëse Sulmuar pastaj

Ikona.Është e dukshme:= i rremë;

// Sulmi

nëse(Pllakë.Objekte.Numërimi > 0)

dhe(Dist (Vetë)

dhe jo Sulmuar pastaj

Obj:= Pllakë.Objekte;

// Ne sulmojmë vetëm armiqtë

nëse Obj.Anë = Ana pastaj dalje;

Obj.Dëmtimi(dmg);

Sulmuar:= e vërtetë;

// Nëse lëvizja ka përfunduar, hiqni ikonën

nëse Lëvizur pastaj

Ikona.Është e dukshme:= i rremë;

Lëvizja përpunohet si më poshtë (shih "Lëvizja e pjesës"). Qeliza e klikuar ndodhet. Nëse ka një armik në të, dhe ata janë brenda rrezes, ai dëmtohet nëse është bosh dhe brenda rrezes, pjesa lëviz (nëse pengesat e lejojnë, por jo nga një armik, klikimi injorohet); .

Kur të dyja palët u afruan, dragonjtë vepruan. Ata veprojnë shumë thjesht: ata zgjedhin jo-dragoin më të afërt që është brenda 7 katrorëve prej tyre dhe sulmojnë. Shihni kodin e Veprimeve të Dragoit.

Veprimet e Dragoit

// Kontrollimi i pllakave brenda 7 katrorëve të dragoit

për i:= Maksimumi (0, x - 7) te Minima (Madhësia maksimale, x + 7) bëj

për j:= Maksimumi (0, y - 7) te Minima (Madhësia maksimale, y + 7) bëj

nëse (Harta.Pllakat.Objektet.Numri > 0) dhe

(Map.Tiles.Objects.Code>1)

// 0 - kodi i pengesës, 1 - dragua

pastaj fillojnë

// Zgjedhja e një pike për të lëvizur

nëse x=i pastaj sëpatë:=i

tjetër nëse x>i pastaj sëpatë:= i+2

tjetër sëpatë:= i-2;

nëse y=j pastaj ay:=j

tjetër nëse y>j pastaj ay:= j+2

tjetër ay:= j-2;

MoveObj(NO, sëpatë, ay);

// Le të sulmojmë

Harta.Pllakat.Dëmtimi(12);

// Thyerja e ciklit: jo më shumë se një sulm

// çdo dragua për raund

Më në fund, gjithçka që mbetet është të kontrolloni nëse më shumë se gjysma e obeliskëve janë të pushtuar nga trupat e njërës anë - dhe nëse janë, atëherë ndaloni lojën dhe shpallni fituesin!


Pra, ne kemi një lojë strategjike. Sidoqoftë, për lumturinë e plotë, ajo që mungon, para së gjithash, është inteligjenca artificiale, e cila do të bëjë të mundur t'i jepet lojës një modalitet me një lojtar (ne nuk e konsiderojmë procedurën më të thjeshtë për kontrollin e dragonjve). Këtë do të bëjmë herën tjetër. Shihemi pas një muaji!

Në numrat e ardhshëm

Në çështjet e mëposhtme do të flasim për:

  • sisteme grimcash për shfaqjen e tymit, shkëndijave, etj.;
  • duke punuar me transparencë;
  • motorë tredimensionale;
  • Bazat e AI;
  • korrigjimi i programit;
  • krijimi i një plani dhe skenari të lojës,
  • shkrimi i një dokumenti të projektimit;
  • bilanci i lojës;
  • të menduarit përmes personazheve të lojës dhe linjave të tyre;
  • puna me paketat Photoshop dhe 3D;
  • animacione;
  • muzikë dhe aktrim zanor;
  • edhe me shume.

Është mjaft e mundur të mësoni se si t'i bëni të gjitha këto me duart tuaja. Së shpejti do ta shihni këtë.

Na shkruani…

Për ata që mendojnë se paketa mund të plotësohet me diçka: së pari, mos harroni se në diskun tonë sot nuk ka ende versionin përfundimtar të paketës, por vetëm atë që zbaton funksionet e përshkruara në artikujt tanë. Ndoshta disa nga idetë tuaja tashmë janë zbatuar dhe po presin radhën e tyre (shih shiritin anësor "Në numrat e ardhshëm"). Dhe në çdo rast: kur na ofroni një ide, përpiquni të arsyetoni pse propozimi juaj është i dobishëm për shumë lojëra njëherësh, dhe jo vetëm për atë tuajën specifike.

Për punë të pavarur

Ndërsa prisni për numrin tjetër, mund të punoni në projektin tuaj ose mund të përpiqeni ta përmirësoni këtë. Këtu janë disa ide për t'i zbatuar vetë:

  • ndani objektet e pengesave në të shkatërrueshme (pemë dhe shkurre) dhe të pathyeshme (shkëmbinj) dhe sigurohuni që topat e zjarrit dhe fryma e dragoit të djegin bimësinë;
  • krijoni gropa (qelizë kafe) ose një zjarr që digjet për disa kthesa (qelizë e kuqe) në vendin ku u shkaktua sulmi me zjarr;
  • lejojnë shpatarët dhe kalorësit të mbulojnë fqinjët e tyre, duke u dhënë atyre +1 mbrojtjes;
  • bëjnë lëvizjen e figurave në ekran të qetë.

Po sikur në kohë reale?

Nuk është më e vështirë të bësh një lojë strategjike në kohë reale nëse thjesht u jep lojtarëve mjete të ndryshme të dhënash. Mënyra më e lehtë për ta bërë këtë është përmes rrjetit - ne do të flasim për këtë në një nga numrat e ardhshëm. Do të nevojiten gjithashtu ndryshimet e mëposhtme:

  • nuk ka nevojë për fushë Shpejtësia e lojës në klasë TObeliskObjekt- përdorni Speed ​​nga motori bazë (shpejtësia e lëvizjes nëpër ekran është e barabartë me shpejtësinë e lojës);
  • llogaritja e numrave të plotë të distancave është e çaktivizuar;
  • kodi i lëvizjes së figurës rishkruhet, duke marrë parasysh faktin se është e nevojshme të vizatoni një trajektore rreth pengesave;
  • Butoni "fundi i lëvizjes" hiqet.

Kjo eshte e gjitha. Do të përpiqeni ta bëni vetë?

Unë e konsideroj kompaninë tuaj një nga më të fortat në tregun e shërbimeve të konsulencës në vendin tonë. Më pëlqen që prek një gamë të gjerë problemesh menaxhimi dhe i mbulon ato me cilësi dhe thellësi të mjaftueshme. Unë gjej shumë informacione të dobishme në publikimet e kompanisë suaj, pasi është gjithmonë interesante të njiheni me përvojën e profesionistëve dhe të mësoni prej tyre.

Borisyuk Yuri Aleksandrovich, konsulent menaxhimi, Doktor i Shkencave Teknike

Më pëlqen shumë seria e klasave master që jepni. Personalisht, pasi kam qenë më parë drejtues i një fabrike, fillova të ndryshoj qasjet e mia ndaj menaxhimit, përfshirë. falë informacionit të marrë nga ju. Ajo disi iu përgjigj asaj që bëja dhe vëzhgoja në fabrikë. Që atëherë, fillova të mendoj se sa joefektive janë aftësitë industriale të Rusisë dhe sa i madh është potenciali dhe si mund të realizohet kjo. Duke u njohur personalisht me problemet e ndërmarrjeve të ndryshme (nganjëherë miqtë më ftojnë si ekspert), shoh se sa mund të bëhet, si të rritet si efektiviteti ashtu edhe efiçenca.

Dryagin Oleg Borisovich

Po, më pëlqejnë klasat tuaja master, një qasje shumë sistematike, njohje e materialit në nivel të lartë dhe, natyrisht, shumë përvojë praktike në çështjet që po shqyrtohen. Ajo që më tërheq është se Profesionalizmi i Aleksandrit dhe niveli i lartë i njohurive profesionale për këtë temë më lejon t'i shikoj gjërat tashmë të njohura ndryshe. Nga këndvështrimi im kjo ështëËshtë shumë e rëndësishme dhe e nevojshme t'i shikoni gjërat që dini në një mënyrë të re, sepse... Gjatë punës kirurgjikale, shumë shpesh syri “mjegullohet” dhe ju ndaloni të shihni, në fakt, gjëra të dukshme.

Elena Fedash, Drejtore e Burimeve Njerëzore, Korporata ATB, Dnepropetrovsk.

Në këtë artikull, nuk kam gjasa të prek ndonjë gjë të panjohur. Të gjitha llogaritjet janë të thjeshta dhe të kuptueshme për këdo që e di se çfarë është Ajax. Unë kam shkruar tashmë një artikull se si të kombinoj një klient me një server në lojëra në kohë reale (). Në këtë artikull, unë trajtoj të njëjtat çështje që zbatohen për lojërat e bazuara në kthesa.

Pra, çfarë është lojë e bazuar në kthesë? Në Wikipedia mund të gjeni përkufizimin e mëposhtëm strategji e bazuar në kthesa - është një zhanër i lojërave kompjuterike, tipari kryesor i të cilave është që lojtarët bëjnë lëvizje me radhë, në krahasim me strategjinë në kohë reale.. Unë do ta thjeshtoja pak këtë përkufizim:

  • Strategjia hap pas hapi - është një lojë strategjike e bazuar në kthesa.
  • Lojë strategjike - Ky është një zhanër lojërash në të cilat çelësi për të arritur fitoren është planifikimi dhe të menduarit strategjik..
  • Lojë e bazuar në kthesë - është një zhanër lojërash, tipari kryesor i të cilave është se lojtarët bëjnë lëvizje me radhë.
Lojërat me radhë përfshijnë:
  • Strategjitë e bazuara në kthesa
  • Lojera me letra
  • Lojëra tavoline (shah, go, monopol, etj.)
Vërej se lojërat e bazuara në kthesa vendosin më pak kufizime në kompleksitetin e protokollit të ndërveprimit në krahasim me lojërat në kohë reale. Domethënë, koha e reagimit ndaj një ngjarjeje të caktuar nuk luan një rol kyç. Lojtarit zakonisht i jepen 10 sekonda për të marrë një vendim. Edhe nëse ping është gjigant, le të themi 3 sekonda, atëherë lojtari ka ende 7 sekonda për të menduar. Përveç kësaj, ping mund të kërcejë dhe të kërcejë, por ne nuk na intereson fare kjo (në lojërat në kohë reale, kjo situatë praktikisht vret çdo protokoll).

Në mënyrë tipike (në 95% të lojërave me turne) pikërisht një lojtar e merr vendimin në çdo kohë të caktuar. Rrjedhimisht, numri i kërkesave të cilave duhet t'u përgjigjemi në mënyrë adekuate është ngushtuar.

Prandaj, kur krijojmë një protokoll, ne do të fokusohemi kryesisht në lehtësinë e zbatimit dhe mbështetjes së tij. Kjo do të na lejojë të bëjmë më shumë fitime në më pak kohë.

Arsyetimi i mësipërm bazohet në zhvillimin 2-mujor të një loje të caktuar me letra.

Klient i zgjuar apo budalla?

Së pari, le të vendosim se sa "i zgjuar" mund të jetë klienti ynë. Unë jam duke debatuar nëse ia vlen të dyfishoni logjikën e aplikacionit (rregullat e lojës) te klienti. Sigurisht, serveri duhet të jetë i zgjuar për të parandaluar hakimin e mundshëm të aplikacionit. Por a ia vlen t'i mësoni klientit logjikën e biznesit?

Kjo varet drejtpërdrejt nga sa peshon sasia e plotë e të dhënave për gjendjen e lojës suaj. Nëse kjo sasi e të dhënave është e madhe, kërkon një kohë të gjatë për t'u mbledhur në server dhe transferohet te klienti, atëherë ka kuptim të zbatoni një pjesë të logjikës në klient për të lehtësuar serverin. Për shembull, në Civilization matësi i kujtesës së përdorur është gjithmonë jashtë grafikëve. A mund të krijoni diçka të ngjashme, duke lënë vetëm UI në klient?

Nga ana tjetër, sa më i zgjuar të jetë klienti, aq më i shtrenjtë do të jetë zhvillimi i lojës. Më lejoni të vërej se koha e zhvillimit të serverit nuk varet në asnjë mënyrë nga erudicioni i klientit. Edhe nëse klienti është super-duper-mega i zgjuar, nëse përdoruesi dëshiron të ringarkojë dritaren e shfletuesit, serveri do të duhet të mbledhë dhe të mbledhë të gjitha të dhënat rreth lojës për t'ia transferuar atë klientit. A la "Ngarkimi i një loje të ruajtur". Përfundim: Një klient i zgjuar mund të përshpejtojë një aplikacion, por gjithmonë do të kërkojë burime shtesë për të zhvilluar aplikacionin.

Unë sugjeroj sa vijon provë:

1. A e lejon volumi i kanalit?

Vlerësoni peshën mesatare të sasisë së plotë të të dhënave të gjendjes së lojës. Më pas, shumëzoni me numrin mesatar të kërkesave në server për sekondë. Nëse numri i marrë tejkalon kapacitetin e kanalit të të dhënave dalëse, atëherë klienti budalla është i papranueshëm. Nëse ky numër tejkalon 20% të kanalit në dalje, atëherë duhet të mendoni nëse do të funksionojë?

2. A është punë intensive?

Vlerësoni kompleksitetin e algoritmit të mbledhjes së të dhënave të lojës (në fraksione të sekondës). Këtu, merrni parasysh të gjitha pyetjet në bazën e të dhënave. Më pas, shumëzoni me numrin mesatar të kërkesave në server për sekondë. Nëse koha kalon një sekondë, atëherë një klient budalla është i papranueshëm. Nëse ky numër i kalon 200 ms, atëherë duhet të mendoni nëse do të zgjasë?

Vazhdimi:

Në ditët e sotme, ju mund të gjeni lehtësisht shumë strategji tregtare, problemi i vetëm është se shumica e tyre ose nuk funksionojnë ose nuk janë mjaft efektive. Në një situatë të tillë, krijimi i një strategjie nga e para është një zgjidhje e shkëlqyer për problemin.

Dhe megjithëse në çdo situatë specifike krijimi i një automjeti do të jetë i ndryshëm, fazat kryesore mbeten të njëjta. Kjo do të thotë, ju mund të krijoni diçka si një udhëzues universal, duke kaluar vazhdimisht nëpër të gjitha fazat, dhe në fund do të marrim një sistem plotësisht të zbatueshëm.

Edhe pse ne do të shqyrtojmë opsionin e krijimit të një strategjie nga e para, duke filluar me një ide dhe duke përfunduar me futjen e një filtri dhe zhvillimin përfundimtar të automjetit, kjo nuk do të thotë që të gjitha sistemet e gatshme duhet të hidhen menjëherë si dukshëm joefektive. . Një numër TS mund të përdoret si bazë dhe thjesht të shtohen disa filtra për të hequr sinjalet e rreme.

Fazat kryesore të krijimit të një strategjie

Nëse merrni 5-7 tregues në mënyrë të rastësishme dhe përpiqeni të krijoni një automjet pune prej tyre, atëherë diçka e dobishme nuk ka gjasa të dalë. Së pari ju duhet të mendoni për idenë kryesore të strategjisë dhe vetëm atëherë të kaloni në zgjedhjen e mjeteve. Mund të sugjerohet sekuenca e mëposhtme e veprimeve:

  • nëse sistemi është krijuar nga e para, atëherë hapi i parë është të punohet mbi idenë. Në këtë fazë, ju vetëm duhet të vendosni se cili do të jetë stili juaj i tregtimit, për shembull, nëse transaksionet do të kryhen përgjatë trendit ose kundër tij, ose ndoshta strategjia është planifikuar ekskluzivisht për shpërthim. Nuk po mendojmë ende për specifika;
  • Pasi të zgjidhni stilin e duhur të tregtimit, mund të filloni të përpunoni detajet. Përpara se të zgjidhni instrumentet, duhet të përcaktoni qartë çiftet e monedhës së punës dhe afatet kohore, kohën e tregtimit, etj.;

E rëndësishme! Kur zgjidhni një kornizë kohore, nuk këshillohet të shkoni shumë të vogla, veçanërisht nëse tregtari nuk ka përvojë në spekulime në intervale të vogla kohore. Për fillestarët, në përgjithësi është më mirë të mos shkoni poshtë H1-H4, mund të lexoni më shumë rreth zgjedhjes së intervalit kohor optimal.

  • Faza tjetër është zgjedhja e instrumenteve të përshtatshme, dhe këtu bollëku i zgjedhjes mund të luajë një shaka mizore me tregtarin, sepse ai ka dhjetëra tregues në dispozicion, aftësinë për të përdorur shandanin, valën, analizën teknike dhe themelore. Nga e gjithë kjo shumëllojshmëri, ju duhet të zgjidhni disa instrumente që i përshtaten më së miri stilit tuaj të synuar të tregtimit;
  • Një nga rregullat kryesore të çdo strategjie është që sinjali i marrë duhet të konfirmohet nga disa filtra, por këshillohet që të kufizohet numri i tyre. Për shembull, për strategjitë e treguesve, është e padëshirueshme që numri i treguesve të kalojë 3-4, përndryshe do të ketë konfuzion në sinjale, dhe nëse planifikoni të punoni duke përdorur analizën teknike, atëherë treguesit do të luajnë një rol mbështetës;
  • janë zhvilluar rregulla për mbështetjen e pozicionit, rezultati duhet të jetë një algoritëm veprimesh për çdo skenar;
  • Faza e fundit është të ekzekutoni automjetin fillimisht në një llogari të historisë, dhe më pas në një llogari demo, ose më mirë akoma, në një llogari të vërtetë cent. Qëllimi kryesor është të testoni qëndrueshmërinë e strategjisë në kushte reale, dhe një llogari reale (madje edhe një cent) do t'ju lejojë të ndjeni të gjithë gamën e emocioneve, nga euforia deri te hidhërimi i humbjeve.

Ju gjithashtu mund të këshilloni që të mos vareni nga kompleksiteti i automjetit. Praktika tregon se kompleksiteti i tepërt nuk është aspak një tregues i efektivitetit. Sa më i thjeshtë të jetë sistemi, aq më e lehtë është të tregtohet.

Çfarë duhet të përfshihet në automjet?

Krijimi i një strategjie është paksa si një grup ndërtimi, thjesht duhet të zgjidhni pjesët e duhura. Kur krijoni një automjet, mund dhe duhet të përdorni:

  • treguesit. Për më tepër, nuk duhet të ndiqni as numrin e tyre, as kompleksitetin e tepërt edhe në automjete plotësisht mekanike, mjaftojnë 3-5 copë;
  • modele grafike - flamuj të mirënjohur, flamuj, trekëndësha, kokë dhe shpatulla, funde të dyfishta dhe majat ende funksionojnë mirë;
  • konstruksione grafike;
  • Nivelet e fibos;
  • elementet e analizës themelore - tani është e vështirë të fitosh para vetëm nga lajmet, por është e nevojshme të merret parasysh kalendari ekonomik në tregti. Të paktën thjesht lëvizni transaksionet në nivele të larta përpara publikimit të statistikave të rëndësishme për SHBA-në ose Evropën, ose madje mbyllni plotësisht fitimin.

Ekzistojnë gjithashtu një sërë teknikash, përfitimet e të cilave janë të dyshimta:

  • Martingale është një taktikë fillimisht jofitimprurëse, e vetmja mundësi suksesi është që para humbjes, do të jeni në gjendje të ktheni shumën e depozitës dhe të fitoni pak;

  • Është gjithashtu e padëshirueshme të përdoret mbyllja nëse nuk është absolutisht e nevojshme, atëherë është mjaft e vështirë të largoheni nga kështjella;
  • Është gjithashtu më mirë të mos përdorni sinjale nga jashtë. Sinjalet nga jashtë nënkuptojnë, për shembull, një krahasim të numrit të shitësve/blerësve, tregues të ndryshëm të gjendjes shpirtërore të shumicës së tregtarëve, etj. Por ka edhe një sërë burimesh që mund t'i dëgjoni, për shembull, Autochartist jep sinjale të mira bazuar në modele grafike;
  • Është gjithashtu më mirë të mos përdoren elementë të analizës së valës (të paktën për fillestarët). Edhe pse këtu ka përjashtime, për shembull, tregtimi në Wolfe Waves bazohet pikërisht në analizën e valëve, por nuk është veçanërisht komplekse.

Zhvillimi i një strategjie të thjeshtë tregues

Le të supozojmë se ideja kryesore e strategjisë është të tregtohet ekskluzivisht në drejtimin e trendit. Për më tepër, ju do të hyni në treg jo në momentin e shfaqjes së një tendence mjaft të rrezikshme, por pas përfundimit të një korrigjimi të vogël.

Strategjia duhet të funksionojë në pothuajse çdo çift monedhe, kjo është e nevojshme sepse, për shkak të kornizës së madhe kohore, sinjalet nuk do të ndodhin shumë shpesh. Pra, situata do të vlerësohet duke përdorur 5-7 çifte monedhash në të njëjtën kohë. Sa i përket kornizës kohore, D1 është i përshtatshëm, ne vijmë nga fakti se Forex në fazën fillestare është vetëm një shtesë në punën kryesore, prandaj ne do të tregtojmë qirinj të përditshëm.

Tani duhet të vendosni se si do të përcaktohet saktësisht momenti për të hyrë. Ka shumë mundësi për identifikimin e një tendence:

  • vizualisht - por një vlerësim i syve nuk do t'ju lejojë të zhvilloni rregulla të qarta tregtare;
  • duke përdorur një ose më shumë mesatare lëvizëse;
  • sipas vlerës së treguesit ADX, nëse më shumë se 30, atëherë ka një tendencë të fortë, më pak se 20, tregu është i qetë;
  • duke përdorur konstruksione grafike;
  • Bands Bollinger ju lejon të gjykoni fuqinë e një tendence nga distanca midis kufijve të sipërm dhe të poshtëm të kanalit.

Në përgjithësi, ka shumë opsione, por duke qenë se strategjia duhet të jetë sa më e thjeshtë, ne do të fokusohemi në mesataret lëvizëse. Ose më mirë, një MA, ne do të gjykojmë drejtimin e trendit nga pozicioni i çmimit në lidhje me të. Mund të filloni me periudha që mesatarizojnë çmimin për një periudhë të tërë kohore (javë, muaj, tremujor, etj.), për shembull, 20 do të mesatarizojnë çmimin gjatë muajit të kaluar. Gjëja më e vështirë është të zgjidhni periudhën e duhur MA, por këtu do t'ju duhet të vazhdoni me provë dhe gabim.

Ideja kryesore e tregtimit do të jetë si vijon: presim të shfaqet lëvizja e trendit, më pas pason një korrigjim brenda një dite, pas përfundimit të tij është lidhur një marrëveshje. Nëse e gjithë kjo paraqitet në formën e rregullave të qarta, atëherë algoritmi i veprimeve do të duket kështu (duke përdorur shembullin e blerjeve):

  • së pari kontrollojmë pozicionin e çmimit në lidhje me MA, çmimi duhet të jetë mbi vijën;
  • Më pas duhet të gjejmë një lëvizje trendi, na duhet një qiri me trup të madh dhe hije të vogla (është e këshillueshme që vlera e hijes të mos kalojë 10-15% të madhësisë së trupit të qiririt);
  • duhet të pasohet nga një qiri me një diapazon të vogël ditor (distanca nga Lartë në Afër). Çmimi i mbylljes nuk duhet të arrijë nivelin e 50% të ditës së mëparshme - në këtë ditë ndodh korrigjimi i çmimit.

Në këtë rast, korrigjimi mund të bëhet sipas 2 skenarëve:

  • Kur formohet një qiri me një hije të gjatë poshtë, ju mund të hapni një tregti menjëherë në mbyllje të ditës. Kjo formë e qiririt tregon që korrigjimi tashmë ka përfunduar;
  • një opsion i mundshëm është kur qiriu korrigjues mbyllet në minimum, d.m.th. kthimi nuk ka përfunduar ende, në këtë rast duhet të prisni derisa qiriri tjetër të mbyllet, nëse është i bardhë, mund të hapni një pozicion të gjatë;

Sa i përket ruajtjes së pozicionit dhe urdhrave mbrojtës, ndalesa duhet të vendoset të paktën përtej mesit të qiririt me një trup të madh. Për të marrë nivelin e synuar, mjafton të lini mënjanë vlerën e të njëjtit qiri nga niveli i blerjes, mund të përdorni një ndalesë pasuese.

Rregullat e strategjisë janë formuar, mbetet vetëm ta testojmë në veprim. Praktika tregon se edhe një algoritëm kaq i thjeshtë prodhon më shumë se gjysmën e tregtimeve fitimprurëse (dhe nëse e transferoni tregtinë në zero herët, gjasat për një humbje zvogëlohen).

Hyrja në fillim të trendit

TS i propozuar më sipër humbet një pjesë të lëvizjes së trendit, por nuk kërkon shumë kohë për analizën e tregut. Nëse është e mundur të gjurmoni sjelljen e çmimit të ditës, atëherë mund të përpiqeni të hipni në trend që në fillimin e formimit të tij. Pra, ideja kryesore e strategjisë është të futet në treg pasi çmimi të fillojë të dalë nga kanali horizontal.

Dhe këtu është shumë e rëndësishme të merrni një sinjal të besueshëm në kohë, në fillim të trendit. Mesatarja lëvizëse mund të vijë përsëri në shpëtim, por ato do të përdoren disi ndryshe nga strategjia e mëparshme. Ju mund të merrni disa MA me periudha të ndryshme dhe të gjykoni formimin e një tendence nga vendndodhja e tyre në lidhje me njëri-tjetrin.

Kjo nuk është një qasje revolucionare, Bill Williams përdori diçka të ngjashme në Alligatorin e tij të famshëm. Pra, ky tregues mund të merret edhe si bazë e TS.

Nëse shtojmë Alligator me cilësime standarde në H1, mund të shohim se ai jep shumë sinjale false. Për ta bërë këtë, ne do të hyjmë në treg me një urdhër në pritje, dhe niveli i vendosjes së tij do të përcaktohet duke përdorur Fractals.

Si rezultat, rrjedha e punës do të duket kështu (duke përdorur shembullin e blerjeve):

  • Ne po kërkojmë një zonë të sheshtë në tabelë (të gjitha linjat e Alligatorit janë të ndërthurura në mënyrë kaotike me njëra-tjetrën);
  • Tjetra, keni nevojë për një qiri fraktal (dhe duhet të jetë i vendosur mbi vija, pa i prekur as me hijen e poshtme);
  • një urdhër ndalimi për blerje vendoset pak mbi maksimumin e tij dhe një urdhër mbrojtës vendoset përtej kufirit të poshtëm të zonës së konsolidimit;
  • TP është ose fikse (50-70 p), ose përdorni një ndalesë pasuese. Në përgjithësi, është mjaft e vështirë të parashikohet fuqia e një lëvizjeje trendi, kështu që është më mirë të përdorni një ndalesë pasuese sesa një TP fikse ose të përcaktoni nivelin e synuar duke përdorur të njëjtën analizë teknike.

Ky shembull nuk është zhvillimi i një strategjie nga e para, por një përshtatje e lehtë e një strategjie tashmë të njohur me tregun modern.

Shembull i një sistemi të thjeshtë të kombinuar

Ideja është ende e njëjtë - hyrja në fund të korrigjimit, por ne do ta zgjidhim këtë problem në një mënyrë tjetër. Qëllimi mbetet i njëjtë - të përcaktojmë momentin e përfundimit të korrigjimit dhe të futemi në drejtimin e trendit, por nëse më herët kemi përdorur mesataren lëvizëse, tani do të përdorim nivelet Fibo dhe oshilatorin për të përcaktuar përfundimin e rikthimit.

Ne do të jemi të interesuar për një lëvizje të theksuar trendi, ajo gjithashtu mund të përcaktohet vizualisht. Pas kësaj, ju vetëm duhet të shtrini nivelet Fibo në të, kjo është e nevojshme për të përcaktuar nivelet e mundshme për përfundimin e korrigjimit. Niveli më i rëndësishëm i korrigjimit është 38.2% që lejohet të tregtohet me rikthim nga 50% dhe 61.8%.

Por fakti që çmimi prek nivelin e Fibos nuk është i mjaftueshëm. Stochastic mund ta përballojë këtë detyrë mjaft mirë (mund të provoni të përdorni RSI për të njëjtin qëllim). Për shembull, për një transaksion blerjeje, çmimi duhet të jetë afër nivelit të korrigjimit dhe Stochastic në atë kohë duhet të jetë në zonën e mbishitur.

Pasi çmimi të prekë nivelin, ne presim derisa Stochastic të largohet nga zona e mbishitur dhe të blejë. Ndalesa mund të vendoset përtej nivelit tjetër të korrigjimit dhe TP mund të vendoset të paktën në nivelin më të lartë të fundit përpara fillimit të tërheqjes.

Nivelet e fibo-s dhe një oshilator janë vetëm minimumi i nevojshëm për të marrë një sinjal. Nëse dëshironi, mund ta komplikoni sistemin duke futur filtra shtesë.

Strategjitë e bazuara në analizën teknike

Nëse analiza teknike përdoret në formën e saj të pastër, atëherë detyra bëhet disi më e thjeshtë, nuk është më e nevojshme të zhvillohet një automjet nga e para. Ka një sërë teknikash dhe mjetesh, efektiviteti i të cilave është testuar ndër vite dhe tregtari mund të zgjedhë vetëm të përshtatshmet dhe t'i përdorë në ndërtime.
Në parim, për tregti të suksesshme mjafton:

  • linjat e trendit - ne i ndërtojmë ato në korniza të ndryshme kohore, duke filluar nga më e larta dhe gradualisht duke zbritur në atë të punës;
  • Nivelet e Fibo-s, ato duhet të shtrihen në lëvizje të rëndësishme të çmimeve në histori. Nivelet e korrigjimit prej 38.2, 50 dhe 61.8% do të jenë të një rëndësie kyçe, praktika tregon se korrigjimi më së shpeshti përfundon në këto nota;
  • MT4 gjithashtu zbaton një sërë mjetesh të tjera të analizës teknike, për shembull, pitchforks Andrews, një grup mjetesh Gann, disa lloje kanalesh, etj.

Por për një parashikim mjaft të saktë, nivelet e Fibo-s dhe linjat e tendencës janë të mjaftueshme për zonat e përqendrimeve të niveleve dhe linjave zakonisht si mbështetje/rezistencë. Tregtimi mund të kryhet si për një shpërthim ashtu edhe për një rikthim nga nivelet dhe linjat.

Sa i përket filtrave shtesë, mund të shtoni modele shandani dhe një lloj treguesi për të kërkuar divergjenca (të njëjtat Stochastic ose MACD). Mund të lexoni më shumë rreth përdorimit të analizës teknike.

Filtra për sistemet e tregtimit

Çdo mjet tregtar, edhe nëse ideja funksionon dhe tregtimi në përgjithësi është fitimprurës, gjeneron shumë sinjale dhe disa prej tyre janë jofitimprurëse. Pasi të jenë formuar rregullat e sistemit, mund të përdorni një numër filtrash universalë që do të ndihmojnë në përmirësimin e raportit të transaksioneve fitimprurëse/jofitimprurëse.

Ka një numër filtrash që do t'i përshtaten pothuajse çdo strategjie:

  • situatën në afate më të larta kohore. Nëse, për shembull, strategjia kryhet në H1 sipas një strategjie mekanike, atëherë nuk do të ishte e gabuar të shikonim se çfarë po ndodh në H4 dhe D1;
  • diapazoni mesatar ditor, që do të thotë distanca që përshkon çmimi mesatarisht në ditë kur tregtoni brenda ditës, kjo do të ndihmojë në filtrimin e një numri sinjalesh; Le të imagjinojmë që gjatë ditës çmimi të lëvizë mesatarisht 100-120 pipa, nëse në një nga ditët çmimi deri në mbrëmje kishte kaluar tashmë 90-100 pips në një drejtim, dhe TS jep një sinjal për të hyrë në treg në drejtimi i njëjtë, atëherë ka kuptim ta shpërfillni atë, statistikat thonë se trafiku nuk ka gjasa të vazhdojë në këtë ditë;

E rëndësishme! Pajtueshmëria me këtë rregull do të çojë në faktin se disa tregti fitimprurëse do të mungojnë, por raporti i tregtive fitimprurëse/humbëse do të rritet.

  • Numri i qirinjve pas formimit të sinjalit gjithashtu ka rëndësi, madje ka një filtër prej 5 qirinjsh, për të cilin do të ndalemi më në detaje.

Kur TS jep një sinjal, atëherë në mënyrë ideale situata duhet të fillojë të zhvillohet në favorin tonë pothuajse menjëherë pas përfundimit të transaksionit (domethënë në 1-3 qirinjtë e ardhshëm). Nëse kjo nuk ndodh, atëherë sa më shumë kohë të ketë kaluar nga përfundimi i transaksionit, aq më pak ndikim në treg do të kenë ata faktorë që kishin rëndësi kur tregtari hyri në treg. Ndikimi i tyre zbehet me kalimin e kohës.

Ju mund të merrni 5 qirinj si kriter nëse, pasi të keni lidhur një marrëveshje, çmimi nuk ka lëvizur në një drejtim fitimprurës për 5 qirinj, atëherë është më mirë të mbyllni marrëveshjen me dorë. Kjo do të thotë një skenar ku grafiku mbetet në vend, por nëse çmimi ka shkuar në anën joprofitabile, atëherë ky filtër nuk zbatohet.

Ky kusht vlen pothuajse për të gjitha afatet kohore (me përjashtim të m1-m5). Natyrisht, ekziston ende mundësia që çmimi, pasi ka lëvizur rreth një pike, të lëvizë në drejtimin e duhur, por zgjedhja jonë është stabiliteti. Është më mirë të sakrifikoni disa tregti fitimprurëse, por shmangni 3-5 ato jofitimprurëse.

Duke përmbledhur

Fillimi i punës pa një sistem tregtar është si vdekja, çdo tregtar duhet ta mbajë mend këtë. Në këtë rast, humbja e depozitës është vetëm çështje kohe.

Zgjedhja e një automjeti të përshtatshëm nuk është e vështirë për më tepër, ju mund të gjeni sisteme të mira pune në domenin publik. Ju gjithashtu mund të shqetësoheni për krijimin e strategjisë tuaj, veçanërisht pasi kjo nuk kërkon njohuri të gjuhëve të programimit, thjesht duhet të keni një ide dhe të paktën njohuri themelore se si funksionon tregu dhe cilët tregues përdoren për çfarë qëllime.

Vetë procesi të kujton montimin e një komplete ndërtimi - së pari vendosim një problem, dhe më pas thjesht zgjedhim mjetet e nevojshme për ta zgjidhur atë. Pas kontrollit të historisë, mund të vazhdoni në testin TS në një llogari demo ose cent.



 

Mund të jetë e dobishme të lexoni: