Ang dula maoy usa ka matang sa kalingawan nga magamit sa mga tawo. Ang tanang matang sa mga dula anaa online, sa mga mobile device, sa mga desktop computer, ug uban pa. Dili na karon ang panahon sa paghimo og usa niadtong mahagiton nga mga dula.
Gamit ang Python, maghimo mig CLI nga tic-tac-toe nga dula. Gamiton nato ang Python sa paghimo og prangka nga Tic Tac Toe nga dula. Makatabang kini kanimo sa paghimo og lohika sa dula ug pagkat-on unsaon pag-organisar ang code.
Tic-Tac-Toe
Sa wala pa kami magsugod sa pag-coding, naghunahuna ko nga i-summarize dayon ang dula ug hisgutan ang akong plano alang sa pagpalambo niini.
Una, atong i-establisar ang pangagpas nga ang Xs kanunay nga mohimo sa inisyatiba ug mag-una, nga maghatag sa tiggamit ug higayon sa paglihok.
Gikan sa console, usa ka numero tali sa 1 ug 9 ang ma-input. Sa usa ka grid diin ang matag numero katumbas sa lahi nga numero (ibabaw sa wala mao ang 1, ubos sa tuo mao ang 9).
Ang kompyuter awtomatik nga magdeterminar ug mohimo sa paglihok niini sa higayon nga molihok ang user. Usa ka nag-unang dula loop nga nagtawag sa usa ka gidaghanon sa mga lain-laing mga rutina ang akong gamiton.
Unsa nga function ang ginahuman lagmit gipakita sa matag ulohan niining leksyon nga gibase sa teksto.
Pagdesinyo sa usa ka Lupon
Atong ihulagway ang atong board gamit ang grid layout, sama sa akong gipakita kaniadto. Maghimo kami usa ka lista nga ginganlag board sa Python aron mahimo kini, ug magsugod kini sa 10 nga walay sulod nga mga kantidad.
Tungod kay ang user makasulod lamang sa mga numero 1 hangtud 9, dili 0 ngadto sa 8, kita adunay 10 ka walay sulod nga mga bili kay sa 9. Busa, aron sa pagpayano sa mga butang, atong ihatag sa atong listahan ang unang entry sa bili nga "walay sulod nga teksto."
Niining paagiha, mahimo natong gamiton ang 1–9 imbes 0–8 sa pag-index sa mga entri sa atong listahan.
insertLetter()
Ang Letter ug Pos mao ang duha ka input alang niini nga function. Ibutang lamang niini ang gipangayo nga sulat sa gipangayo nga lokasyon.
spaceIsFree(pos)
Sa yano nga pagkasulti, kini nga pamaagi magpahibalo kanamo kung ang gitakda nga lugar libre. Busa, wala nay sulat didto. Ang Pos, ang bugtong argumento niini, mahimong usa ka integer tali sa 1 ug 9.
printboard(board)
Ang board gipadala isip argumento niini nga pamaagi, nga nagpakita niini sa console.
isWinner()
Pinasukad sa karon nga board, kini nga function magpahibalo kanamo kung ang gihatag nga sulat nakadaog. Kini adunay duha ka mga parameter: le ug board (sulat).
Kini kinahanglan nga usa ka "X" o usa ka "O." Tan-awa lang kung naa ba ang gipiho nga sulat sa matag potensyal nga linya sa pagdaog sa pisara.
punoan ()
Kung gusto namong sugdan ang dula, tawgon namo kini nga pamaagi. Tawgon niini ang matag usa sa daghang mga gimbuhaton sa among programa ug idirekta kung giunsa ang pagdagan sa programa.
isBoardFull()
Kung gihatag ingon usa ka input, kini nga pamaagi mobalik nga Tinuod kung ang board puno ug Mali kung dili.
playerMove()
Niini nga pamaagi, mangayo kami usa ka lakang gikan sa tiggamit ug i-validate kini. Ang sulat idugang sa board kung lehitimo ang lakang. Kung dili, magpadayon kami sa paghangyo sa feedback sa tiggamit.
CompMove() – AI
Magsugod na ang AI. Ang paglihok sa mga kompyuter makontrolar niini nga function. Susihon niini ang board ug pilion ang labing kaayo nga lakang nga himuon.
Ang mosunod usa ka lista sa algorithm nga among gamiton sa pagbuhat niini.
- Kung dili mahuman ang karon nga lakang, ipadayon ang sunod.
- Buhata ang kadaugan nga lakang kung mahimo nimo.
- Pagbalhin sa kana nga posisyon sa sunod nga turno kung ang magdudula adunay potensyal nga kadaugan nga lakang.
- Pagpili og usa ka eskina ug liko kini. Pagpili sa random kung adunay daghang mga kapilian.
- Ibutang ang imong kaugalingon sa tunga.
- Tagda ang usa sa mga ngilit. Pagpili sa random kung adunay daghang mga kapilian.
- Kung walay paagi sa paglihok, ang dula matapos sa usa ka tie.
pilia ang Random()
Gihatag ang usa ka lista sa mga potensyal nga lokasyon, kini nga function mopili sa random nga aksyon nga buhaton.
Pagsugod sa Dula
Masugdan na ang duwa karon nga nahuman na namo ang tanan namong mga buluhaton. Ang kinahanglan namong buhaton mao ang pagtawag sa panguna kung gusto namon nga modagan ang dula kausa.
Apan sa among sitwasyon, gusto namo nga magpadayon ang dula hangtod nga makahukom ang user nga dili na niya gusto nga magdula, mao nga magdugang kami og gamay nga while loop sa main line.
Kompleto nga Code
Ania ang tibuuk nga code alang sa among dula, nga karon kompleto na.
output
Panapos
Hurray!
Usa ka dula nga imong gihimo gikan sa wala. Dili kini dula nga kanunay namong gidula. Apan kini makatabang sa pagsulat sa lohika ug sa pagpadayon sa usa ka tin-aw nga istruktura sa code.
Malipayon nga coding!
Leave sa usa ka Reply