Gaming ass eng Form vun Ënnerhalung fir Leit verfügbar. All Zort Spiller sinn online verfügbar, op mobilen Apparater, op Desktop Computeren, etc. Elo ass net d'Zäit fir ee vun deenen usprochsvollen Spiller ze kreéieren.
Mat Python maache mir e CLI Tic-Tac-Toe Spill. Loosst eis Python benotzen fir en einfacht Tic Tac Toe Spill ze bauen. Et wäert Iech hëllefen Spilllogik ze kreéieren an ze léieren wéi Dir Code organiséiert.
Tic-Tac-Toe
Ier mer ufänken ze codéieren, hunn ech geduecht datt ech d'Spill séier géif zesummefaassen an iwwer mäi Plang fir et z'entwéckelen diskutéieren.
Als éischt wäerte mir d'Annahme feststellen datt Xs ëmmer d'Initiativ huelen an als éischt plënneren, wat dem Benotzer d'Méiglechkeet gëtt ze handelen.
Vun der Konsole gëtt eng Zuel tëscht 1 an 9 agefouert. An engem Gitter wou all Zuel eng aner Zuel entsprécht (uewen lénks ass 1, ënnen riets ass 9).
De Computer wäert automatesch bestëmmen a seng Beweegung maachen wann de Benotzer bewegt. Eng primär Spillschleife déi eng Rei vu verschiddene Routine nennt gëtt vu mir benotzt.
Wéi eng Funktioun fäerdeg ass, gëtt wahrscheinlech an all Header vun dëser textbaséierter Lektioun uginn.
Design vun engem Board
Mir wäerten eise Bord mat engem Gitter Layout beschreiwen, wéi ech virdru uginn. Mir maachen eng Lëscht mam Numm Bord am Python fir dëst ze maachen, an et fänkt mat 10 eidel Wäerter un.
Well de Benotzer nëmmen d'Zuelen 1 bis 9 aginn kann, net 0 bis 8, hu mir 10 eidel Wäerter anstatt 9. Also, fir d'Saachen ze vereinfachen, gi mir der éischter Entrée vun eiser Lëscht de Wäert "eidel Text."
Op dës Manéier kënne mir 1–9 benotzen anstatt 0–8 fir d'Entréen an eiser Lëscht ze indexéieren.
insertLetter()
Bréif a Pos wäerten déi zwee Input fir dës Funktioun sinn. Et wäert nëmmen de gefrote Bréif op der ugefrote Plaz setzen.
spaceIsFree (pos)
Einfach gesot, dës Method informéiert eis ob de spezifizéierte Gebitt gratis ass. Dofir ass et scho kee Bréif do. Pos, säin eenzegt Argument, wäert eng ganz Zuel tëscht 1 an 9 sinn.
printBoard (Board)
De Board gëtt als Argument op dës Method geschéckt, déi et op der Konsol weist.
ass Gewënner()
Baséierend op der aktueller Verwaltungsrot, wäert dës Funktioun eis matdeelen ob de geliwwert Bréif gewonnen huet. Et huet zwee Parameteren: le a Bord (Bréif).
Et muss en "X" oder en "O" sinn. Kuckt einfach fir ze kucken ob de spezifizéierte Bréif op all potenziell Gewënnlinn um Bord präsent ass.
Haapt ()
Wa mir d'Spill ufänken wëllen, wäerte mir dës Method nennen. Et nennt all eenzel vun de ville Funktiounen vun eisem Programm an dirigéiert wéi de Programm soll lafen.
assBoardFull()
Wann Dir u Bord als Input gitt, gëtt dës Method einfach richteg zréck wann de Board voll ass a falsch anescht.
SpillerMove()
An dëser Method wäerte mir e Beweegung vum Benotzer ufroen an et validéieren. De Bréif gëtt un de Verwaltungsrot bäigefüügt wann d'Beweegung legitim ass. Wann net, wäerte mir weider de Feedback vum Benotzer ufroen.
CompMove() - AI
Den AI fänkt elo un. D'Bewegung vun de Computere gëtt vun dëser Funktioun kontrolléiert. Et wäert de Board evaluéieren a wielt déi bescht Beweegung fir ze maachen.
Folgend ass eng Lëscht vum Algorithmus dee mir benotze fir dëst ze maachen.
- Wann den aktuelle Schrëtt net fäerdeg ass, fuert op dee folgenden.
- Huelt de Gewënner Beweegung wann Dir kënnt.
- Gitt an déi Positioun op der folgender Tour wann de Spiller e potenziell Gewënnbewegung huet.
- Wielt en Eck a dréit et. Wielt zoufälleg wann et e puer Méiglechkeeten sinn.
- Plaz selwer an der Mëtt.
- Betruecht ee vun de Kanten. Wielt zoufälleg wann et e puer Méiglechkeeten sinn.
- Wann et kee Wee ass fir ze beweegen, endt d'Spill an engem Tie.
selectRandom()
Gitt eng Lëscht vu potenzielle Plazen, wäert dës Funktioun zoufälleg d'Aktioun wielen fir ze huelen.
De Start vum Spill
D'Spill kann elo gestart ginn nodeems mir all eis Aufgaben ofgeschloss hunn. Alles wat mir maache mussen ass Main ruffen wa mir d'Spill just eemol wollte lafen.
Awer an eiser Situatioun wëlle mir datt d'Spill weider leeft bis de Benotzer entscheet datt se net méi spille wëllen, also fügen mir e klengt Wärend Loop un d'Haaptlinn.
Komplett Code
Hei ass de ganze Code fir eist Spill, dat elo fäerdeg ass.
Däischterheet
Konklusioun
Hurray!
E Spill dat Dir ganz vun Null gemaach hutt. Et ass kee Spill dat mir regelméisseg spillen. Awer et hëlleft beim Schreiwen vun der Logik an dem Ënnerhalt vun enger kloer Struktur am Code.
Glécklech Kodéierung!
Hannerlooss eng Äntwert