Michezo ya kubahatisha ni aina mojawapo ya burudani inayopatikana kwa watu. Michezo ya kila aina inapatikana mtandaoni, kwenye vifaa vya mkononi, kwenye kompyuta za mezani, nk Sasa sio wakati wa kuunda moja ya michezo hiyo yenye changamoto.
Kwa kutumia Python, tutafanya mchezo wa CLI tic-tac-toe. Wacha tutumie Python kuunda mchezo wa moja kwa moja wa Tic Tac Toe. Itakusaidia katika kuunda mantiki ya mchezo na kujifunza jinsi ya kupanga msimbo.
Tic-Tac-toe
Kabla hatujaanza kusimba, nilidhani ningefupisha mchezo haraka na kujadili mpango wangu wa kuutayarisha.
Kwanza, tutaanzisha dhana kwamba Xs daima huchukua hatua na kusonga kwanza, kumpa mtumiaji fursa ya kuchukua hatua.
Kutoka kwa console, nambari kati ya 1 na 9 itaingizwa. Katika gridi ya taifa ambapo kila nambari inalingana na nambari tofauti (juu kushoto ni 1, chini kulia ni 9).
Kompyuta itaamua kiotomatiki na kufanya harakati zake mara tu mtumiaji anaposonga. Kitanzi kimoja cha msingi cha mchezo ambacho huita idadi ya taratibu mbalimbali kitatumiwa nami.
Ni kipengele kipi kinakamilishwa pengine kinaonyeshwa katika kila kichwa cha somo hili linalotegemea maandishi.
Kubuni Bodi
Tutaonyesha ubao wetu kwa kutumia mpangilio wa gridi ya taifa, kama nilivyoonyesha hapo awali. Tutatengeneza orodha iliyopewa jina la bodi katika Python kufanya hivi, na itaanza na maadili 10 tupu.
Kwa sababu mtumiaji anaweza tu kuingiza nambari 1 hadi 9, si 0 hadi 8, tuna thamani 10 tupu badala ya 9. Kwa hivyo, ili kurahisisha mambo, tutatoa ingizo la kwanza la orodha yetu thamani "maandishi tupu."
Kwa njia hii, tunaweza kutumia 1–9 badala ya 0–8 kuorodhesha maingizo katika orodha yetu.
ingizaBarua()
Herufi na Pos zitakuwa pembejeo mbili za chaguo hili la kukokotoa. Itaweka barua iliyoombwa tu katika eneo lililoombwa.
NafasiNiHuru(pos)
Kwa ufupi, njia hii itatujulisha ikiwa eneo maalum ni bure. Kwa hivyo, hakuna barua hapo tayari. Pos, hoja yake pekee, itakuwa nambari kamili kati ya 1 na 9.
Ubao wa kuchapisha
Ubao hutumwa kama hoja kwa njia hii, ambayo huionyesha kwenye koni.
isWinner()
Kulingana na ubao uliopo, chaguo hili la kukokotoa litatujulisha ikiwa barua iliyotolewa imeshinda. Ina vigezo viwili: le na bodi (barua).
Inapaswa kuwa "X" au "O." Angalia tu ikiwa barua iliyobainishwa iko kwenye kila safu inayoweza kushinda kwenye ubao.
kuu ()
Tunapotaka kuanza mchezo, tutaita njia hii. Itaita kila moja ya vipengele vingi vya programu yetu na kuelekeza jinsi programu inavyopaswa kuendeshwa.
isBoardFull()
Inapotolewa kama ingizo, njia hii itarudisha Kweli ikiwa ubao umejaa na Sivyo vinginevyo.
playerMove()
Kwa njia hii, tutaomba kuhama kutoka kwa mtumiaji na kuithibitisha. Barua hiyo itaongezwa kwa bodi ikiwa hatua hiyo ni halali. Ikiwa sivyo, tutaendelea kuomba maoni ya mtumiaji.
CompMove() - AI
AI sasa itaanza. Mwendo wa kompyuta utadhibitiwa na kazi hii. Itatathmini ubao na kuchagua hoja bora zaidi ya kufanya.
Ifuatayo ni orodha ya algorithm tutakayotumia kufanya hivi.
- Ikiwa hatua ya sasa haiwezi kukamilika, nenda kwa ifuatayo.
- Chukua hatua ya kushinda ikiwa unaweza.
- Sogea katika nafasi hiyo kwa zamu ifuatayo ikiwa mchezaji ana uwezekano wa kushinda.
- Chagua kona na ugeuke. Chagua bila mpangilio ikiwa kuna chaguzi kadhaa.
- Jiweke katikati.
- Fikiria moja ya kingo. Chagua bila mpangilio ikiwa kuna chaguzi kadhaa.
- Ikiwa hakuna njia ya kusonga, mchezo unaisha kwa sare.
selectRandom()
Kwa kuzingatia orodha ya maeneo yanayowezekana, chaguo hili la kukokotoa litachagua bila mpangilio hatua ya kuchukua.
Mwanzo wa Mchezo
Mchezo sasa unaweza kuanza kwa kuwa tumemaliza majukumu yetu yote. Tunachohitaji kufanya ni kupiga simu kuu ikiwa tunataka tu kuendesha mchezo mara moja.
Lakini katika hali yetu, tunataka mchezo uendelee kuendeshwa hadi mtumiaji aamue kuwa hataki tena kucheza, kwa hivyo tutaongeza kitanzi kidogo kwenye laini kuu.
Kamilisha Kanuni
Hapa kuna nambari nzima ya mchezo wetu, ambayo sasa imekamilika.
pato
Hitimisho
Hurray!
Mchezo ambao uliutengeneza tangu mwanzo. Sio mchezo ambao tunacheza mara kwa mara. Lakini inasaidia katika uandishi wa mantiki na udumishaji wa muundo wazi katika kanuni.
Furahia kuweka msimbo!
Acha Reply