Ang paglalaro ay isang uri ng libangan na magagamit ng mga tao. Ang mga laro ng lahat ng uri ay magagamit online, sa mga mobile device, sa mga desktop computer, atbp. Hindi ngayon ang oras upang lumikha ng isa sa mga mapaghamong laro.
Gamit ang Python, gagawa kami ng CLI tic-tac-toe na laro. Gamitin natin ang Python para bumuo ng isang diretsong larong Tic Tac Toe. Tutulungan ka nito sa paglikha ng logic ng laro at pag-aaral kung paano ayusin ang code.
Pagkimbot ng laman-Tac-daliri ng paa
Bago tayo magsimulang mag-coding, naisip kong mabilis kong ibuod ang laro at talakayin ang aking plano para sa pagbuo nito.
Una, itatatag namin ang pagpapalagay na ang Xs ay palaging nagsasagawa ng inisyatiba at nauna, na nagbibigay sa user ng pagkakataong kumilos.
Mula sa console, isang numero sa pagitan ng 1 at 9 ang ilalagay. Sa isang grid kung saan ang bawat numero ay tumutugma sa ibang numero (sa kaliwang itaas ay 1, kanang ibaba ay 9).
Awtomatikong tutukuyin at gagawin ng computer ang paglipat nito sa sandaling lumipat ang user. Isang pangunahing loop ng laro na tumatawag sa maraming iba't ibang mga gawain ang gagamitin ko.
Aling function ang tinatapos ay malamang na ipinahiwatig sa bawat header ng araling ito na nakabatay sa teksto.
Pagdidisenyo ng Lupon
Ipapakita namin ang aming board gamit ang layout ng grid, tulad ng ipinahiwatig ko dati. Gagawa kami ng listahan na pinangalanang board sa Python para gawin ito, at magsisimula ito sa 10 walang laman na value.
Dahil numero 1 hanggang 9 lang ang mailalagay ng user, hindi 0 hanggang 8, mayroon kaming 10 walang laman na value sa halip na 9. Kaya, para pasimplehin ang mga bagay, ibibigay namin sa unang entry ng aming listahan ang value na “empty text.”
Sa ganitong paraan, maaari naming gamitin ang 1–9 sa halip na 0–8 upang i-index ang mga entry sa aming listahan.
insertLetter()
Ang Letter at Pos ang magiging dalawang input para sa function na ito. Ilalagay lamang nito ang hiniling na liham sa hiniling na lokasyon.
spaceIsFree(pos)
Sa madaling sabi, ang pamamaraang ito ay magsasabi sa amin kung ang tinukoy na lugar ay libre. Kaya lang, wala pang sulat doon. Ang Pos, ang tanging argumento nito, ay magiging isang integer sa pagitan ng 1 at 9.
printboard(board)
Ang board ay ipinadala bilang argumento sa paraang ito, na ipinapakita ito sa console.
isWinner()
Batay sa kasalukuyang board, ipapaalam sa amin ng function na ito kung nanalo ang ibinigay na sulat. Mayroon itong dalawang parameter: le at board (liham).
Ito ay dapat na isang "X" o isang "O." Hanapin lamang kung ang tinukoy na titik ay naroroon sa bawat potensyal na panalong linya sa board.
main ()
Kapag gusto nating simulan ang laro, tatawagin natin ang pamamaraang ito. Tatawagin nito ang bawat isa sa maraming function ng aming programa at ididirekta kung paano dapat tumakbo ang programa.
isBoardFull()
Kapag ibinigay bilang isang input, ang pamamaraang ito ay magbabalik lamang ng True kung ang board ay puno at False kung hindi.
playerMove()
Sa paraang ito, hihiling kami ng paglipat mula sa user at patunayan ito. Ang liham ay idaragdag sa board kung ang paglipat ay lehitimo. Kung hindi, patuloy kaming humihiling ng feedback ng user.
CompMove() – AI
Magsisimula na ang AI. Ang paggalaw ng mga computer ay makokontrol ng function na ito. Susuriin nito ang board at pipiliin ang pinakamahusay na hakbang na gagawin.
Ang sumusunod ay isang listahan ng algorithm na gagamitin namin para gawin ito.
- Kung hindi matatapos ang kasalukuyang hakbang, magpatuloy sa susunod.
- Gawin ang panalong hakbang kung kaya mo.
- Lumipat sa posisyong iyon sa susunod na pagliko kung ang manlalaro ay may potensyal na panalong hakbang.
- Pumili ng isang sulok at paikutin ito. Pumili nang random kung mayroong ilang mga pagpipilian.
- Ilagay ang iyong sarili sa gitna.
- Isaalang-alang ang isa sa mga gilid. Pumili nang random kung mayroong ilang mga pagpipilian.
- Kung walang paraan upang ilipat, ang laro ay nagtatapos sa isang kurbatang.
selectRandom()
Dahil sa listahan ng mga potensyal na lokasyon, pipiliin ng function na ito nang random ang aksyon na gagawin.
Simula ng Laro
Maaari na ngayong simulan ang laro ngayong natapos na namin ang lahat ng aming mga gawain. Ang kailangan lang nating gawin ay tumawag sa main kung gusto lang nating patakbuhin ang laro nang isang beses.
Ngunit sa aming sitwasyon, gusto naming magpatuloy sa pagtakbo ang laro hanggang sa magpasya ang user na hindi na niya gustong maglaro, kaya magdaragdag kami ng maliit na while loop sa pangunahing linya.
Kumpletuhin ang Code
Narito ang buong code para sa aming laro, na kumpleto na ngayon.
Pagbubuhos
Konklusyon
Hurray!
Isang laro na ganap mong ginawa mula sa simula. Ito ay hindi isang laro na regular naming nilalaro. Ngunit nakakatulong ito sa pagsulat ng lohika at pagpapanatili ng isang malinaw na istraktura sa code.
Maligayang coding!
Mag-iwan ng Sagot