ZAMYLA CHAN: Imos ter divertirse con quince. Quince é o primeiro xogo que obteña para aplicar e é interactivo. Agora, non se preocupe. Non ten que escribir o todo mesmo. Comprobe o código de distribución, porque un moito da estrutura do xogo xa está configurado para ti. El acepta e analiza unha liña de comandos argumento do usuario e crea unha placa con base nesa entrada. El comprobar se o xogo está gañado e sae xa que o usuario do gañou o xogo. E para gañar o xogo, el está entrada do usuario e chama a función Move. Entón, nós imos estar aplicando catro funcións para o xogo de quince anos, init, deseñar, mover, e gañou. En primeiro lugar, imos resolver o init. No init, para arrincar, representamos a tarxeta en un array de enteiros 2D. E esta é unha variable global chamada tarxeta con dimensións MAX e MAX, as dimensións máximas do consello. Agora, a dimensión real do consello é dada polo usuario, representada en o número enteiro d, o que podería ser inferior a MAX. Pero, en C, non se pode cambiar o tamaño matrices, entón está preso con esta dimensión máxima. O seu traballo en init é cubrir os valores do consello co valor correcto. Agora vimos matrices 1D, pero como matrices 2D funciona? Hai un índice da liña, zerar indexados, como sempre, e logo tamén de a columna. E vai encher a súa reixa en en descendente valores, así como este. Reixa, 0, 0, liña 0, columna 0, 8 é, reixa 0, 1 a 7. É dicir, para un exemplo onde d, pouco d, é 3. Agora, o consello en Quince deben tamén conter unha tella en branco, se xa xogado co xogo físico. Pero o consello é un array de enteiros, de xeito todos os valores deben ser números enteiros. Polo tanto, cómpre a vostede decide un enteiro valor para representar un azulexo branco. Para arrincar a súa tarxeta, pode utilizar estruturas de loop para conter a estado inicial da placa, onde bordo i j representa o elemento en i fila e columna j. Comezan en orde decrecente e, lembrar que, se o número de pezas é estraño, entón vai ter que cambiar a localización de 2 e de 1. Polo tanto, hai, temos a nosa tarxeta inicializar. Agora que temos a nosa inicializar tarxeta, é hora de deseña-la. Sorteo imprimirá o estado actual da tarxeta, pero ten que estar seguro de para imprimir azulexos na mesma orde que teña iniciar eles. E tamén precisa formatar seus números correctamente. Porque pode ter un díxito e dous díxitos, entón quere imprimir un espazo en branco antes todos os números de un díxito. Usa isto usando o espazo reservado -. Pero lembre-se o noso espazo en branco. Non queremos imprimir o número real que temos escollido para representar que o espazo en branco na tarxeta, pero tamén Non quere imprimir nada. Entón o que podes facer é definir un símbolo ou caracteres para representar o azulexo branco. Nos exemplos anteriores, eu escollín un subliñado, e entón só imprimir que sempre que chegar ao branco espazo na súa función de empate. Entón deseñar terá aniñados para loops. Algo parecido a isto. Para cada liña, a continuación, para cada valor de a liña, está indo para imprimir o valor neste espazo. Tras impreso todos os valores na liña, entón pode imprimir unha nova liña. Lembre que a orde para o sorteo función debe ecoar ou reflictir a orde na súa función inicializar. Agora que arrincar a bordo e que teña deseñado tanto, é hora de deixar o usuario editalo e facer os seus movementos. Así, en función Fifteen.c, o programa leva a entrada do usuario e logo chama a función de movemento, pasando o número da tella que o usuario quere mover. Agora, teña coidado. Este é o número real da tella e non a súa posición real. Entón, ten que buscar a tella de posición de saber onde está. Agora, só debe permitir que o usuario para facer un movemento, se é legal. Un tiro legal é calquera peza que se adxacente ao azulexo branco. Isto significa que, por encima e por baixo, para á esquerda e á dereita. Entón, vai ter saber onde o azulexo branco é tan ben. Agora, para cada movemento que está a buscar a tella de usuarios, pero é probablemente non mellor para buscar o azulexo branco cada vez, porque está a facer iso cada vez que o usuario quere mover. Entón, en vez diso, é mellor lembrar de onde o azulexo branco está a usar algún ben nomeado variables. Entón, cando facer que o usuario faga a súa movementos, están ben no seu xeito de gañar o xogo dos Quince. Para gañar o partido dos Quince, as tellas Ten que estar nunha orde específica, e a función gañou comproba se o xogo está gañado. El retorna True se o xogo está gañado e as tellas son na orde correcta, e False caso contrario. Entón, para gañar o xogo de quince anos, tellas ten que ser por orde crecente, co azulexo branco na parte inferior dereita. Así como comprobar se o usuario mudouse a tarxeta no dereito orientación? Ben, vai interactuar sobre a tarxeta e comprobar os valores para asegurarse de que están no lugar seguro. Para iso, pode utilizar nested loops, como fixo no sorteo e no init. Hai un par de formas de comprobar e validar se o consello é correcta e unha gañadora formación, con todo. Se vai de esquerda a dereita, comezando a partir da liña de arriba para abaixo, a continuación, cada número debe ser maior que o anterior. Teña coidado co que ten valor escolleu para a súa azulexo branco aínda. Ou pode utilizar unha variable de contador para asegurar que cada valor é no lugar, no caso de veña con algún tipo de fórmula para representar isto. Entón divírtete se experimentando coa matemática. Unha vez que chegar a unha forma, o retorno Certo, xa que o usuario gañou o xogo. Pero se algún valor está incorrecto, o regreso False, o usuario ten que seguir movendo por que non gañou o partido. Despois de aplicar esta verificación e, xunto con initialize, deseñar e moverse, xa rematou o xogo dos Quince. Parabéns e divertirse xogando. O meu nome é Zamyla e este é CS50.