ZAMYLA CHAN: Vamos a tener Diviértete con los Quince. Quince es el primer juego que se obtiene para poner en práctica y es interactivo. Ahora bien, no se preocupe. Usted no tiene que escribir la Todo esto a ti mismo. Compruebe el código de distribución debido a que un Gran parte de la estructura de juego ya está preparado para usted. Acepta y analiza una línea de comandos argumento del usuario y crea un consejeros en función de esa entrada. Comprueba si el juego se gana y salidas una vez que el usuario ha ganado la partida. Y para ganar el juego, se pone entrada del usuario y llama a la función Mover. Así que vamos a estar implementando cuatro funciones para el juego de los Quince, init, dibujar, mover y ganado. En primer lugar, vamos a abordar init. En init, para initialize, representamos la junta en una matriz de enteros 2D. Y esta es una variable global llamada tablero con dimensiones MAX y MAX, las dimensiones máximas de la junta. Ahora, la dimensión real de la junta está dada por el usuario, representado en el número entero d, lo que podría ser menos de MAX. Pero, en C, no se puede cambiar el tamaño de las matrices, por lo que usted está atascado con esa dimensión máxima. Su trabajo en init es poblar los valores de la tabla de con el valor correcto. Ahora, hemos visto matrices 1D, pero ¿cómo funcionan los arrays 2D? Hay un índice de la fila, cero indexados como siempre, y luego también de la columna. Y usted llena su red en en descendiente valores, al igual que este. Cuadrícula, 0, 0, fila 0, columna 0, es 8, rejilla 0, 1 es 7. Este es un ejemplo en donde d, poco d, es 3. Ahora, el Consejo en Fifteen también debe contener una ficha en blanco, si alguna vez has juega con el juego físico. Pero, tablero es una matriz de enteros, por lo que todos los valores tienen que ser enteros. Así que depende de usted para decidir un entero valor para representar un azulejo en blanco. Para inicializar su tarjeta, puede utilizar bucle estructuras para contener la estado inicial de la junta, donde a bordo i j representa el elemento en fila i y la columna j. Comienzan en orden descendente y, recordar, que si el número de azulejos es impar, entonces usted va a tener que cambiar la ubicación de 2 y de 1. Así que, tenemos nuestra tablero inicializado. Ahora, que hemos inicializado nuestro tablero, es el momento de dibujarlo. Draw imprimirá el estado actual de la bordo, pero que necesita para asegurarse de que para imprimir azulejos en el mismo orden que usted los haya inicializado. Y también hay que formatear sus números correctamente. Porque puede ser que tengamos un solo dígito y dos dígitos, entonces usted quiere imprimir un espacio en blanco antes de los números de un solo dígito. Utiliza que mediante el uso el marcador de posición -. Pero recuerde que nuestro espacio en blanco. No queremos imprimir el número real que hemos elegido para representar ese espacio en blanco en la tabla, pero también no quieren imprimir nada en absoluto. Así que lo que puede hacer es definir un símbolo o el carácter para representar la azulejo en blanco. En los ejemplos anteriores que he elegido un subrayado y luego sólo imprime que cada vez que se llega al blanco espacio en su función draw. Así sorteo se han anidado bucles for. Algo como esto. Para cada fila y, a continuación, para cada valor de la fila, usted va a imprimir la valor en este espacio. Una vez que se ha impreso todos los valores en la primera fila, a continuación, puede imprimir una nueva línea. Recuerde que la orden para su sorteo función debe repetir o para reflejar el orden en su función inicializado. Ahora que ha inicializado el tablero y que usted ha dibujado, es hora de dejar al usuario editar y hacer sus movimientos. Así que en la función Fifteen.c, la programa se lleva a la entrada del usuario y luego llama a la función de movimiento, pasando en el número de la baldosa que el usuario desea mover. Ahora, tenga cuidado. Este es el número real de la baldosa y no su posición real. Por lo tanto, tendrá que buscar el azulejo de posición de saber dónde está. Ahora, sólo se debe permitir que el usuario para hacer un movimiento si es legal. Un movimiento legal es cualquier pieza que se va adyacente a la baldosa en blanco. Eso significa, por encima y por debajo, a la izquierda y hacia la derecha. Por lo que usted necesita saber dónde el azulejo en blanco es también. Ahora, por cada movimiento que usted está buscando el azulejo usuarios, pero es probable que sea no es el mejor para buscar el azulejo en blanco porque cada vez que lo haces cada vez que el usuario desea mover. Así que, en cambio, lo mejor es recordar dónde el azulejo en blanco está usando alguna así las variables con nombre. Así que una vez que usted permite que el usuario realice su movimientos, que están bien en su camino para ganar el juego de los Quince. Para ganar el juego de los Quince, las baldosas tiene que estar en un orden específico, y la función de ganado comprueba si se gana el juego. Devuelve True si el juego se gana y las fichas están en el orden correcto, y False en caso contrario. Así que para ganar el juego de quince, azulejos tendrá que ser creciente, con el azulejo en blanco en la esquina inferior derecha. Entonces, ¿cómo comprobar si el usuario ha movido la tarjeta en la derecha orientación? Bueno, tendrás una iteración en la pizarra y comprobar los valores para asegurarse de que que están en el lugar correcto. Para ello, puede utilizar anidada bucles igual que lo hizo en el sorteo y en init. Hay un par de maneras de comprobar y validar si el Consejo es correcta y una serie formación, sin embargo. Si usted va de izquierda a derecha, comenzando desde la fila de arriba hacia abajo, entonces cada número debe ser mayor que la anterior. Tenga cuidado con lo que usted valora haber elegido para su azulejo en blanco sin embargo. O usted podría utilizar una variable de contador para asegúrese de que cada valor está en su lugar, si que llegar a algún tipo de fórmula para representar esto. Así que diviértete experimentando con las matemáticas. Una vez que usted ha llegado a una forma, el retorno Es cierto, una vez que el usuario ha ganado la partida. Pero si algún valor es incorrecto, el retorno Falso, el usuario tiene que seguir avanzando porque no han ganado la partida. Una vez que se implementa este control y, a lo largo de con initialize, dibujar, y nos movemos, que haya terminado el juego de los Quince. Felicitaciones y se divierten jugando. Mi nombre es Zamyla y esto es CS50.