Wasa wani nau'i ne na nishaɗi da ake samu ga mutane. Ana samun wasanni na kowane nau'i akan layi, akan na'urorin hannu, akan kwamfutocin tebur, da sauransu. Yanzu ba lokacin ƙirƙirar ɗayan waɗannan wasannin ƙalubale bane.
Amfani da Python, za mu yi wasan CLI tic-tac-toe. Bari mu yi amfani da Python don gina madaidaiciyar wasan Tic Tac Toe. Zai taimaka muku ƙirƙirar dabaru na wasan da koyon yadda ake tsara lamba.
Tic-Tac-kafana
Kafin mu fara yin codeing, na yi tunanin zan taƙaita wasan da sauri in tattauna shirina na haɓaka shi.
Da farko, za mu kafa zato cewa Xs koyaushe suna ɗaukar yunƙuri kuma su fara farawa, suna ba mai amfani damar yin aiki.
Daga na'ura wasan bidiyo, za a shigar da lamba tsakanin 1 da 9. A cikin grid inda kowane lamba yayi daidai da lamba daban (saman hagu shine 1, ƙasa dama shine 9).
Kwamfuta za ta ƙayyade ta atomatik kuma ta motsa ta da zarar mai amfani ya motsa. Madauki ɗaya na farko wanda ke kira da yawa na yau da kullun zan yi amfani da ni.
Wanne aiki ake gamawa ana iya nuna shi a cikin kowane taken wannan darasi na tushen rubutu.
Zana allo
Za mu kwatanta allon mu ta amfani da shimfidar grid, kamar yadda na nuna a baya. Za mu yi jerin sunayen allo a Python don yin wannan, kuma zai fara da ƙima 10 mara komai.
Domin mai amfani zai iya shigar da lambobi 1 zuwa 9 kawai, ba 0 zuwa 8 ba, muna da darajoji 10 mara komai maimakon 9. Don haka, don sauƙaƙa abubuwa, za mu ba farkon shigarwar jerinmu darajar “rubutun wofi.”
Ta wannan hanya, za mu iya amfani da 1-9 maimakon 0-8 don tsara abubuwan da ke cikin jerin mu.
Saka Letter()
Harafi da Pos za su kasance abubuwan shigar guda biyu don wannan aikin. Zai sanya wasiƙar da aka nema kawai a wurin da aka nema.
SpaceIsFree(pos)
A sauƙaƙe, wannan hanyar za ta sanar da mu idan ƙayyadadden yanki kyauta ne. Don haka, babu wasiƙa a can tuni. Pos, hujjar sa guda ɗaya, zai zama lamba tsakanin 1 da 9.
PrintBoard (a allo)
Ana aika allon azaman hujja zuwa wannan hanyar, wacce ke nuna ta akan na'ura wasan bidiyo.
isWinner()
Dangane da allon yanzu, wannan aikin zai sanar da mu idan wasiƙar da aka kawo ta yi nasara. Yana da sigogi biyu: le da allo (wasika).
Dole ne ya zama "X" ko "O." Kawai duba don ganin ko ƙayyadadden harafin yana nan akan kowane layin da zai iya samun nasara akan allo.
babban ()
Lokacin da muke son fara wasan, za mu kira wannan hanyar. Zai kira kowane ɗayan shirye-shiryenmu da yawa ayyuka kuma ya jagoranci yadda shirin ya kamata ya gudana.
isBoardFull()
Lokacin da aka ba da shi a matsayin shigarwa, wannan hanyar za ta dawo Gaskiya ne kawai idan allon ya cika kuma Ƙarya ce in ba haka ba.
playerMove()
A wannan hanyar, za mu nemi motsi daga mai amfani kuma mu inganta shi. Za a ƙara wasiƙar a cikin hukumar idan matakin ya dace. Idan ba haka ba, za mu ci gaba da neman ra'ayin mai amfani.
CompMove () - AI
AI yanzu zai fara. Wannan aikin zai sarrafa motsin kwamfutocin. Zai kimanta hukumar kuma ya zaɓi mafi kyawun motsi don yin.
Mai zuwa shine jerin algorithm da za mu yi amfani da su don yin wannan.
- Idan matakin na yanzu ba a iya gamawa ba, matsa zuwa mai zuwa.
- Ɗauki matakin nasara idan za ku iya.
- Matsa zuwa wannan matsayi akan juyi na gaba idan mai kunnawa yana da yuwuwar yin nasara.
- Zaɓi kusurwa kuma juya shi. Zaɓi a bazuwar idan akwai zaɓuɓɓuka da yawa.
- Sanya kanka a tsakiya.
- Yi la'akari da ɗaya daga cikin gefuna. Zaɓi a bazuwar idan akwai zaɓuɓɓuka da yawa.
- Idan babu hanyar motsawa, wasan yana ƙare da kunnen doki.
zaži Random()
Idan aka ba da jerin yuwuwar wurare, wannan aikin zai zaɓi matakin da za a ɗauka ba da gangan ba.
Fara Wasan
Za a iya fara wasan yanzu bayan mun gama dukkan ayyukanmu. Abin da kawai za mu buƙaci mu yi shi ne kiran main idan muna son gudanar da wasan sau ɗaya kawai.
Amma a halin da muke ciki, muna son wasan ya ci gaba da gudana har sai mai amfani ya yanke shawarar cewa ba za su ƙara yin wasa ba, don haka za mu ƙara ɗan ƙaramin madauki zuwa babban layi.
Cikakken Code
Anan ga duka lambar wasan mu, wanda yanzu ya cika.
Output
Kammalawa
Hurray!
Wasan da kuka yi gaba ɗaya daga karce. Ba wasa ne da muke yi akai-akai ba. Amma yana taimakawa wajen rubuta dabaru da kiyaye tsayayyen tsari a lamba.
Abin farin ciki!
Leave a Reply