ZAMYLA CHAN: Diamo divertimento con Quindici. Quindici è il primo gioco che si ottiene implementare ed è interattivo. Ora, di non preoccuparsi. Non dovete scrivere il tutto te stesso. Guardate il codice di distribuzione perché un lotto della struttura di gioco è già impostato per voi. Si accetta e analizza una riga di comando argomento dall'utente e crea un scheda basata su tale ingresso. Verifica se il gioco è vinto ed esce una volta che l'utente del vinto la partita. E per vincere la partita, diventa input dall'utente e chiama la funzione Move. Quindi stiamo andando a essere l'attuazione di quattro funzioni per il gioco del Quindici, init, disegnare, spostare, e ha vinto. In primo luogo, cerchiamo di affrontare init. In init, per initialize, noi rappresentiamo il consiglio in una matrice integer 2D. E questa è una variabile globale chiamata bordo con dimensioni MAX e MAX, le dimensioni massime della scheda. Ora, la dimensione reale del consiglio è dato dall'utente, rappresentata in il numero intero d, che potrebbe essere inferiore MAX. Ma, in C, non è possibile ridimensionare le matrici, così sei bloccato con quella dimensione massima. Il tuo lavoro in init è popolare i valori del consiglio con il valore corretto. Ora, abbiamo visto gli array 1D, ma come fanno gli array 2D funzionano? C'è un indice della riga, azzerare indicizzato come sempre, e poi anche di colonna. E potrai riempire la griglia nella decrescente dei valori, proprio come questo. Griglia, 0, 0, riga 0, colonna 0, è di 8, griglia 0, 1 è 7. Questo è un esempio in cui d, d poco, è 3. Ora, il consiglio di Quindici deve anche contenere una tessera vuota, se avete mai giocato con il gioco fisico. Ma, a bordo è un array di interi, così tutti i valori devono essere interi. Quindi sta a voi decidere un intero valore per rappresentare una piastrella vuota. Per inizializzare la scheda, è possibile utilizzare strutture loop per contenere l' stato iniziale del consiglio di amministrazione, in cui a bordo i j rappresenta l'elemento in i riga e colonna j. Iniziano in ordine decrescente e, ricordare, che se il numero di piastrelle è strano, allora si sta andando ad avere per scambiare la posizione di 2 e di 1. Quindi c'è, abbiamo il nostro bordo inizializzato. Ora, che abbiamo inizializzato il nostro bordo, è il momento di disegnare. Draw stamperà lo stato attuale della bordo, ma è necessario assicurarsi che stampare piastrelle nello stesso ordine che li avete inizializzato. Ed è anche necessario formattare i numeri correttamente. Perché potremmo avere una sola cifra e doppia cifra, poi si desidera stampare uno spazio vuoto prima tutti i numeri di una cifra. Si utilizza che utilizzando il segnaposto -. Ma ricordate il nostro spazio vuoto. Noi non vogliamo stampare il numero effettivo che abbiamo scelto di rappresentare quello spazio vuoto in pensione, ma abbiamo anche non si desidera stampare nulla. Che cosa si può fare è quello di definire un simbolo o caratteri per rappresentare il tile vuoto. Negli esempi precedenti ho scelto un sottolineatura e poi basta stampare che ogni volta che si raggiunge il vuoto spazio nella funzione draw. Quindi disegnare avranno cicli for nidificati. Qualcosa di simile a questo. Per ogni riga, e quindi per ogni valore nella la riga, si sta andando a stampare il valore in questo spazio. Dopo aver stampato tutti i valori nella riga, poi si può stampare una nuova linea. Ricordate che l'ordine per il vostro progetto funzione deve echo o rispecchiare l'ordine nella funzione inizializzato. Ora che si inizializza la scheda e che hai disegnato, è il momento di lasciare l'utente modificarlo e fare le loro mosse. Quindi nella funzione Fifteen.c, la programma prende input da parte dell'utente e quindi chiama la funzione di movimento, passando nel numero della piastrella che la l'utente vuole muoversi. Ora, fate attenzione. Questo è il numero effettivo della piastrella e non la sua posizione reale. Quindi, avrete bisogno di cercare la tessera del grado di sapere dove si trova. Ora, si deve solo consentire all'utente a fare una mossa se è legale. Una mossa giuridico è una tegola che è adiacente alla piastrella vuoto. Ciò significa, sopra e sotto, per a sinistra ea destra. Quindi avrete bisogno di sapere dove la piastrella vuoto è pure. Ora, per ogni movimento che stai cercando la piastrella utenti, ma probabilmente Non migliore per cercare la tessera in bianco ogni volta perché si sta facendo ogni volta l' l'utente vuole muoversi. Così, invece, è meglio ricordare dove la tessera in bianco sta utilizzando alcune così denominato variabili. Quindi una volta che si consente all'utente di effettuare la loro mosse, essi sono sulla modo per vincere la partita di Quindici. Per vincere il gioco del Quindici, le piastrelle devono essere in un ordine specifico, e la funzione vinto verifica se la partita è vinta. Restituisce True se il gioco è vinto e le piastrelle sono nell'ordine corretto, e False altrimenti. Quindi, per vincere il gioco del Quindici, piastrelle essere ordine crescente, con la tile vuoto nell'angolo in basso a destra. Così come si fa a controllare se l'utente ha spostato la scheda nel giusto orientamento? Beh, ti scorrere la scheda e controllare i valori per assicurarsi che sono nel posto giusto. Per fare questo, è possibile utilizzare nidificato cicli for, proprio come hai fatto in pareggio e in init. Ci sono un paio di modi per controllare e confermare se la scheda è corretta e vincente la formazione, però. Se si va da sinistra a destra, a partire dalla fila verso il basso, poi ogni numero deve essere maggiore di quello precedente. Fate attenzione a ciò che valore hai scelto per la tua tessera vuoto però. Oppure si potrebbe utilizzare una variabile contatore garantire che ogni valore è a posto, se si arriva con una sorta di formula per rappresentare questo. Quindi divertiti a sperimentare con la matematica. Una volta arriva con un certo senso, il ritorno Vero volta che l'utente ha vinto la partita. Ma se il valore non è corretto, il ritorno Falso, l'utente deve continuare a muoversi perché non hanno vinto la partita. Una volta che si sceglie di implementare questo controllo e, insieme con inizializzazione, disegnare, e spostare, hai finito il gioco del Quindici. Congratulazioni e si divertono a giocare. Il mio nome è Zamyla e questo è CS50.