Kev ua si yog ib hom kev lom zem uas muaj rau tib neeg. Kev ua si ntawm txhua yam muaj nyob hauv online, ntawm cov khoom siv mobile, ntawm desktop computers, thiab lwm yam. Tam sim no tsis yog lub sijhawm los tsim ib qho ntawm cov kev ua si nyuaj.
Siv Python, peb yuav ua CLI tic-tac-toe game. Cia peb siv Python los tsim kev ua si ncaj nraim Tic Tac Toe. Nws yuav pab koj tsim kev ua si logic thiab kawm yuav ua li cas npaj cov cai.
Tic-Tac-Ntiv Taw
Ua ntej peb pib coding, kuv xav tias kuv yuav sau cov kev ua si sai sai thiab sib tham txog kuv txoj kev npaj rau kev tsim nws.
Ua ntej, peb yuav tsim qhov kev xav tias Xs ib txwm pib pib thiab txav mus ua ntej, muab sijhawm rau tus neeg siv los ua.
Los ntawm lub console, tus lej ntawm 1 thiab 9 yuav raug nkag. Nyob rau hauv ib daim phiaj uas txhua tus lej sib raug rau tus lej sib txawv (sab laug sab laug yog 1, hauv qab sab xis yog 9).
Lub khoos phis tawj yuav txiav txim siab txiav txim siab thiab ua kom nws txav mus thaum tus neeg siv txav mus. Ib lub voj kev ua si tseem ceeb uas hu rau ntau lub sijhawm yuav siv los ntawm kuv.
Qhov kev ua haujlwm twg tau ua tiav yog tej zaum qhia nyob rau hauv txhua lub taub hau ntawm cov ntawv nyeem raws li zaj lus qhia no.
Tsim ib lub Board
Peb yuav piav txog peb lub rooj tsavxwm uas siv daim phiaj xwm txheej, raws li kuv tau hais dhau los. Peb mam li ua ib daim ntawv teev npe board hauv Python ua qhov no, thiab nws yuav pib nrog 10 tus nqi khoob.
Vim tias tus neeg siv tsuas tuaj yeem sau cov lej 1 txog 9, tsis yog 0 txog 8, peb muaj 10 qhov tseem ceeb tsis yog 9. Yog li, txhawm rau ua kom yooj yim, peb yuav muab peb cov npe thawj zaug nkag tus nqi "cov ntawv tsis muaj."
Hauv qhov no, peb tuaj yeem siv 1–9 tsis yog 0–8 txhawm rau txheeb xyuas cov ntawv nkag hauv peb cov npe.
insertLetter()
Tsab ntawv thiab Pos yuav yog ob lub tswv yim rau txoj haujlwm no. Nws tsuas yog muab tsab ntawv thov rau ntawm qhov chaw thov.
spaceIsFree(pos)
Yooj yim hais, txoj kev no yuav qhia rau peb paub yog tias thaj chaw tshwj xeeb yog dawb. Li no, twb tsis muaj ib tsab ntawv lawm. Pos, nws qhov kev sib cav ib leeg, yuav yog tus lej ntawm 1 thiab 9.
printBoard (lub rooj tsavxwm)
Lub rooj tsavxwm raug xa mus raws li kev sib cav rau txoj kev no, uas qhia nws ntawm lub console.
yogWinner()
Raws li lub rooj tsav xwm tam sim no, txoj haujlwm no yuav qhia rau peb paub yog tias tsab ntawv tau txais yeej. Nws muaj ob qhov tsis muaj: le thiab board (ntawv).
Nws yuav tsum yog "X" lossis "O". Tsuas saib seb puas muaj tsab ntawv teev nyob rau ntawm txhua qhov muaj peev xwm yeej ntawm lub rooj tsavxwm.
lub ntsiab ()
Thaum peb xav pib qhov kev ua si, peb yuav tsum hu rau txoj kev no. Nws yuav hu rau txhua tus ntawm peb qhov kev pab cuam ntau txoj haujlwm thiab qhia seb qhov kev zov me nyuam yuav tsum khiav li cas.
yog BoardFull()
Thaum muab tso rau hauv ib qho kev tawm tswv yim, txoj kev no tsuas yog rov qab muaj tseeb yog tias lub rooj tsavxwm puv thiab False lwm yam.
playerMove()
Nyob rau hauv txoj kev no, peb yuav thov kom txav los ntawm tus neeg siv thiab siv tau nws. Tsab ntawv yuav muab ntxiv rau lub rooj tsavxwm yog tias qhov kev txav mus los yog raug cai. Yog tias tsis yog, peb yuav tsum thov tus neeg siv cov lus tawm tswv yim.
CompMove() – AI
Tam sim no AI yuav pib. Lub zog ntawm cov khoos phis tawj yuav raug tswj los ntawm qhov haujlwm no. Nws yuav ntsuas lub rooj tsavxwm thiab xaiv qhov zoo tshaj plaws txav los ua.
Hauv qab no yog cov npe ntawm cov algorithm peb yuav siv los ua qhov no.
- Yog tias cov kauj ruam tam sim no tsis tuaj yeem ua tiav, txav mus rau ib qho hauv qab no.
- Coj qhov kev yeej yog tias koj ua tau.
- Txav mus rau hauv txoj haujlwm ntawd nyob rau tom ntej no yog tias tus neeg ua si muaj peev xwm yeej txav tau.
- Xaiv ib lub ces kaum thiab tig nws. Xaiv ntawm random yog tias muaj ntau txoj kev xaiv.
- Muab koj tus kheej tso rau hauv nruab nrab.
- Xav txog ib qho ntawm cov ntug. Xaiv ntawm random yog tias muaj ntau txoj kev xaiv.
- Yog tias tsis muaj txoj hauv kev txav mus los, qhov kev ua si xaus rau hauv txoj hlua khi.
xaivRandom()
Muab cov npe ntawm cov chaw muaj peev xwm, qhov haujlwm no yuav xaiv ntawm qhov kev txiav txim siab los ua.
Kev Ua Si Pib
Qhov kev ua si tuaj yeem pib tam sim no uas peb tau ua tiav tag nrho peb cov haujlwm. Txhua yam peb yuav tau ua yog hu lub ntsiab yog tias peb tsuas yog xav khiav qhov kev ua si ib zaug.
Tab sis hauv peb qhov xwm txheej, peb xav kom qhov kev ua si txuas ntxiv mus kom txog thaum tus neeg siv txiav txim siab tias lawv tsis xav ua si lawm, yog li peb yuav ntxiv me me thaum lub voj voog mus rau kab tseem ceeb.
Ua kom tiav Code
Nov yog tag nrho cov cai rau peb qhov kev ua si, uas tam sim no ua tiav.
tso zis
xaus
Hurray!
Ib qho kev ua si uas koj tau ua los ntawm kos. Nws tsis yog ib qho kev ua si uas peb ua tsis tu ncua. Tab sis nws pab nyob rau hauv kev sau ntawv ntawm logic thiab kev saib xyuas ntawm ib tug meej qauv hauv code.
Zoo siab coding!
Sau ntawv cia Ncua