Videoludado estas unu formo de distro disponebla por homoj. Ĉiaspecaj ludoj estas disponeblaj interrete, sur porteblaj aparatoj, sur labortablaj komputiloj, ktp. Nun ne estas la tempo por krei unu el tiuj defiaj ludoj.
Uzante Python, ni faros CLI tic-tac-toe ludo. Ni uzu Python por konstrui simplan ludon Tic Tac Toe. Ĝi helpos vin krei ludlogikon kaj lerni kiel organizi kodon.
Tic-Tac-Toe
Antaŭ ol ni komencu kodigon, mi pensis, ke mi rapide resumos la ludon kaj diskutus mian planon por disvolvi ĝin.
Unue, ni establos la supozon ke Xs ĉiam prenas la iniciaton kaj moviĝas unue, donante al la uzanto la ŝancon agi.
De la konzolo, nombro inter 1 kaj 9 estos enigita. En krado kie ĉiu nombro respondas al malsama nombro (supre maldekstre estas 1, malsupre dekstre estas 9).
La komputilo aŭtomate determinos kaj faros sian movon post kiam la uzanto moviĝos. Unu primara ludbuklo kiu vokas kelkajn diversajn rutinojn estos uzata de mi.
Kiu funkcio finiĝas verŝajne estas indikita en ĉiu kaplinio de ĉi tiu tekst-bazita leciono.
Desegni Estraron
Ni bildigos nian tabulon uzante kradan aranĝon, kiel mi indikis antaŭe. Ni faros liston nomitan tabulo en Python por fari tion, kaj ĝi komencos kun 10 malplenaj valoroj.
Ĉar la uzanto povas nur enigi numerojn 1 ĝis 9, ne 0 ĝis 8, ni havas 10 malplenajn valorojn anstataŭ 9. Do, por simpligi aferojn, ni donos al la unua eniro de nia listo la valoron "malplena teksto".
Tiamaniere, ni povas uzi 1–9 anstataŭ 0–8 por indeksi la enskribojn en nia listo.
enmetiLetero()
Litero kaj Pos estos la du enigaĵoj por ĉi tiu funkcio. Ĝi nur metos la petitan leteron ĉe la petita loko.
spaceIsFree(poz)
Simple dirite, ĉi tiu metodo informos nin ĉu la specifita areo estas libera. Tial, ne ekzistas jam letero tie. Pos, ĝia sola argumento, estos entjero inter 1 kaj 9.
printTabulo (tabulo)
La tabulo estas sendita kiel argumento al ĉi tiu metodo, kiu montras ĝin sur la konzolo.
isWinner ()
Surbaze de la nuna tabulo, ĉi tiu funkcio informos nin ĉu la provizita letero venkis. Ĝi havas du parametrojn: le kaj tabulo (letero).
Ĝi devas esti "X" aŭ "O". Simple rigardu por vidi ĉu la specifita letero ĉeestas sur ĉiu ebla gajna linio sur la tabulo.
ĉefa ()
Kiam ni volas komenci la ludon, ni nomos ĉi tiun metodon. Ĝi vokos ĉiun unu el la multaj funkcioj de nia programo kaj direktos kiel la programo devas funkcii.
isBoardFull()
Kiam donita surŝipe kiel enigo, ĉi tiu metodo simple resendos Vera se la tabulo estas plena kaj False alie.
ludantoMovu()
En ĉi tiu metodo, ni petos movon de la uzanto kaj validigos ĝin. La letero estos aldonita al la tabulo se la movo estas legitima. Se ne, ni daŭre petos la komentojn de la uzanto.
CompMove () - AI
La AI nun komenciĝos. La movado de la komputiloj estos regata de ĉi tiu funkcio. Ĝi taksos la tabulon kaj elektos la plej bonan movon por fari.
Sekvas listo de la algoritmo, kiun ni uzos por fari tion.
- Se la nuna paŝo ne povas esti finita, pluiru al la sekva.
- Prenu la venkan movon, se vi povas.
- Movu en tiun pozicion sur la sekva turno se la ludanto havas eble venkan movon.
- Elektu angulon kaj turnu ĝin. Elektu hazarde se estas pluraj ebloj.
- Metu vin en la mezo.
- Konsideru unu el la randoj. Elektu hazarde se estas pluraj ebloj.
- Se ne estas maniero movi, la ludo finiĝas en egaleco.
elektu Hazarda ()
Donita liston de eblaj lokoj, ĉi tiu funkcio elektos hazarde la agon por fari.
La Ludo Komenco
La ludo nun povas komenciĝi nun kiam ni finis ĉiujn niajn taskojn. Ĉio, kion ni bezonus fari, estas nomi ĉefa se ni nur volus ruli la ludon unufoje.
Sed en nia situacio, ni volas, ke la ludo daŭrigu funkcii ĝis la uzanto decidas, ke ili ne plu volas ludi, do ni aldonos etan buklon dum al la ĉefa linio.
Kompleta Kodo
Jen la tuta kodo por nia ludo, kiu nun estas kompleta.
eligon
konkludo
Hura!
Ludo kiun vi faris tute de nulo. Ĝi ne estas ludo, kiun ni ludas regule. Sed ĝi helpas en la verkado de logiko kaj la konservado de klara strukturo en kodo.
Feliĉan kodigon!
Lasi Respondon