Ciao e bentornato.
In questa conferenza, voglio farlo darti un'altra sfida.
È correlato alle funzioni, ma questa sfida riguarderà più
il divide et impera. Sta andando per essere più sull'organizzazione del tuo
programma intorno ai moduli, sta andando per concentrarsi maggiormente sulla risoluzione dei problemi.
Quello che voglio che tu faccia è che voglio scrivere un gioco da tris.
Questo ti aiuterà solo diventare un risolutore di problemi migliore
e ti aiuterà a organizzarti il tuo programma intorno alle funzioni.
Utilizzerai anche un array,
dovrai capire su come formattare determinati dati, ma
sarà un file simulazione di un gioco tris.
Non scriveremo su un computer.
Sarà un giocatore 1 contro giocatore 2.
Quindi voglio che tu scriva un file programma che riproduce tris.
Si spera che lo siano tutti familiarità con questo programma
o questo gioco, dovrei dire.
È solo un gioco che si gioca su una griglia 3 x 3 con due giocatori.
Fate i turni.
X è un naso.
Si spera che suoni un campanello.
Non volevo andare e spiegare questo gioco, ma si spera che tu
abbia familiarità con il tris.
Ho intenzione di fornire un po ' dimostrazione di come funziona
e come mi aspetto che l'output si svolga.
Ma è un semplice gioco da tris.
Quello che voglio fare è che tu sia
probabilmente sarà necessario creare un array per rappresentare il file scheda attuale, la griglia 3 x 3.
Penso che tu possa farla franca solo creando un array a dimensione singola.
Potresti effettivamente creare un file Anche array 2D per rappresentare le righe
e le colonne.
Il 2D sarebbe probabilmente di più intuitivo, ma
potrebbe essere un po 'più difficile da visualizzare nel codice.
Ma in entrambi i casi funziona.
La cosa buona della programmazione è ci sono molte soluzioni a un problema.
Ti racconto uno dei miei soluzioni e il mio approccio al design, ma
sentiti libero di cambiare il design.
Finché stai usando il c costruisce correttamente, questo è tutto ciò
che mi interessa.
Voglio che impari a usare c.
Finché il tuo programma è modulato ed è organizzato ed è
facile da mantenere, ed è un codice di qualità, questo è quello che mi preoccupa.
Quindi un modo per implementare un solo modo rappresenta il tabellone come un
array monodimensionale con dieci elementi.
Il motivo per cui ho dieci elementi qui è che non voglio che tu usi zero.
Questi dieci elementi stanno andando per
rappresentare il tabellone, ma rappresenteranno anche le coordinate sul tabellone.
Quindi ho intenzione di dimostrarlo e mostrarlo tu come sto pensando di lavorare.
Ma il modo in cui stai
andando per scegliere effettivamente la scatola in cui vuoi disegnare basarsi sul numero dell'elemento.
Oltre a creare un array per il consiglio, devi provare a pensare
a come risolvere questo problema in basso, come lo organizzerai.
Sto pensando al minimo che avrai bisogno di
almeno tre funzioni, probabilmente di più.
Ma devi almeno averne uno funzione che controlla i vincitori.
Questo fondamentalmente vedrà solo se una persona ha vinto la partita
o può anche controllare la patta
Dovresti avere una funzione che disegna il tabellone.
Perché disegnerai il tabellone dopo il turno di ogni giocatore.
E lo farai - così lo riutilizzerai.
Un'altra funzione per la marcatura la scheda,
questo accade quando l'utente vuole effettivamente mettere xo una o in una determinata casella.
Hai bisogno di una funzione da impostare quella scatola come una x o una o.
Quello che succederà è che probabilmente lo sarai popolando l'array con quella x o o.
E in questo modo puoi guardare il file array per vedere se hai vinto o perso.
E nel tabellone dei voti, esso consentirebbe anche di verificare la presenza di
una selezione non valida.
Quindi, se le selezioni valide fossero da uno a nove
e l'utente ha inserito dieci, diresti, ehi, non puoi farlo, riprova.
Il gioco dovrebbe essere facile da usare, dovrebbe essere intuitivo da usare per quanto
riguarda la prospettiva dell'utente e dovrebbe essere organizzato per quanto riguarda
una prospettiva di programmazione.
Pensa davvero a questo.
Prendi un po 'di pianificazione, fai un po' di pianificazione, tira fuori un po 'di carta, inizia a scrivere un progetto su
come affronterai questo problema e cosa funzioni che dovrai utilizzare.
Il modo in cui sto pensando di questo verrà eseguito, lascia
che ti mostri una piccola demo.
Non ti mostrerò nessuna fonte codice, ma questo è quello che immagino
sarà il gioco quando lo eseguiremo.
Forse un piccolo titolo che dice, ehi, il gioco.
E poi anche un po ' informazioni sul giocatore.
Il giocatore 1 sarà x, il giocatore 2 sarà spento.
Ricorda, questo non ha per giocare al computer.
Puoi semplicemente mettere in ogni turno.
Quindi dovresti giocare a questo gioco con un amico che è seduto accanto a
te, e dovrebbero farlo dirti dove mettere il numero.
Se stai diventando davvero ambizioso, puoi
scrivere il gioco per giocare contro un computer.
Ma noterai che 3 x 3 la griglia ha inizialmente dei numeri.
Puoi usare questi numeri per entrare.
Quindi, se il giocatore uno vuole per fare il loro turno e
rappresentano x, a seconda di cosa numero immesso, è lì che
verrà posizionata la x.
Quindi stampiamo la griglia, visualizziamo il tabellone e poi diciamo anche all'utente di
chi è il turno e diciamo loro di inserire un numero.
Quindi in questo caso, vado avanti e inserisci il numero due e premi Invio.
E cosa succederà dopo che ho colpito due
e ritorno, vedrà effettivamente se qualcuno ha vinto, cancellerà lo schermo e
ridisegnerà il tabellone.
Quindi dopo aver premuto 2 ed entrare, tu nota che ho ancora il titolo, ho ancora
il giocatore 1 e il giocatore 2.
Ma ora nella casella 2, ho una x.
Quindi cos'altro avrei dovuto fare c'è che avrei dovuto controllare
prima di visualizzare la scheda se o no abbiamo avuto un vincitore o un pareggio.
E ovviamente questo è il primo ingresso quindi non abbiamo nessuno dei due.
Dal momento che non abbiamo un vincitore o un
pareggio, ora chiederò al giocatore di inserire un numero e poi possono scegliere qualsiasi numero qui.
Ora se ho inserito un valore non valido numero come 10, dovrebbe dirmi che
non è valido.
E dovrebbe permettermelo forse fare un'altra mossa.
Se dovessi inserire 2, 2 dovrebbe anche essere non valido.
Quindi se inserisco 2, dice anche non valido perché 2 è già preso da x.
Quindi se il programma me lo permette riprova, potresti semplicemente sbarazzarti del loro turno
ma non è proprio giusto.
Quindi ora sto solo per dire dove voglio posizionare la o? Vado a
dire 5, metto mossa non valida, ridisegnerà il tabellone
e ci saranno o e 5.
E ora dice giocatore 1.
E continui a farlo fino a quando hai un vincitore o un pareggio.
Dirò solo 9.
Ora ho una x lì, valida le voci sono 1 3 4 6 7 e 8.
Dirò 3.
E proviamo effettivamente a ottenere x a vinci quindi ora x andrà in otto
e io metterò o e 6 solo per mostrarti che il gioco funziona con un vincitore.
E poi ho messo 7 per x, il gioco ora dovrebbe essere finita. Ho premuto Invio.
Dice che il giocatore uno vince e questo ha anche suonato un po 'di suono per me, ho
fatto un po' di cose fantastiche lì.
Quindi il gioco è finito, il giocatore uno vince.
E dovrebbe accadere anche se il giocatore 2 vince o se c'è un pareggio.
Quindi pensa a come vuoi per affrontare questo problema.
Bel programmino.
Esaminerò una soluzione e fornirò il codice sorgente nella prossima lezione. Grazie.