1 00:00:00,000 --> 00:00:09,386 2 00:00:09,386 --> 00:00:11,332 >> ZAMYLA CHAN: Ayons amusement avec quinze. 3 00:00:11,332 --> 00:00:15,680 Quinze est le premier jeu que vous obtenez à mettre en œuvre et il est interactif. 4 00:00:15,680 --> 00:00:16,410 Maintenant, ne vous inquiétez pas. 5 00:00:16,410 --> 00:00:18,830 Vous n'avez pas à écrire le tout cela vous-même. 6 00:00:18,830 --> 00:00:22,320 Regardez le code de distribution, car une sort de la structure de jeu est déjà 7 00:00:22,320 --> 00:00:23,880 mis en place pour vous. 8 00:00:23,880 --> 00:00:28,160 Il accepte et traite une ligne de commande l'argument de l'utilisateur et crée un 9 00:00:28,160 --> 00:00:31,230 carte basée sur cette entrée. 10 00:00:31,230 --> 00:00:35,570 Il vérifie si le jeu est gagné et sorties fois que l'utilisateur a gagné la partie. 11 00:00:35,570 --> 00:00:38,340 Et pour gagner le match, il devient entrée de l'utilisateur et 12 00:00:38,340 --> 00:00:40,610 appelle la fonction de mouvement. 13 00:00:40,610 --> 00:00:44,600 >> Nous allons donc être mise en œuvre de quatre fonctions pour le jeu des Quinze, 14 00:00:44,600 --> 00:00:48,110 init, tirer, déplacer, et a gagné. 15 00:00:48,110 --> 00:00:50,340 Tout d'abord, nous allons aborder initialisation. 16 00:00:50,340 --> 00:00:55,150 Dans init, pour initialize, nous représentons le conseil dans un tableau d'entiers 2D. 17 00:00:55,150 --> 00:01:01,070 Et c'est une variable globale appelée bord avec des dimensions MAX et MAX, 18 00:01:01,070 --> 00:01:03,880 les dimensions maximales de la carte. 19 00:01:03,880 --> 00:01:07,310 Maintenant, la dimension réelle de la carte est donnée par l'utilisateur, représenté en 20 00:01:07,310 --> 00:01:10,620 l'entier d, ce qui pourrait être inférieure à MAX. 21 00:01:10,620 --> 00:01:14,660 Mais, en C, vous ne pouvez pas redimensionner les tableaux, si vous êtes coincé avec 22 00:01:14,660 --> 00:01:16,730 que dimension maximale. 23 00:01:16,730 --> 00:01:19,870 >> Votre travail en init est à remplir les valeurs du conseil 24 00:01:19,870 --> 00:01:21,860 avec la valeur correcte. 25 00:01:21,860 --> 00:01:26,910 Maintenant, nous avons vu des tableaux 1D, mais comment tableaux 2D marche? 26 00:01:26,910 --> 00:01:30,985 Il ya un index de la ligne, zéro indexé comme toujours, et puis aussi de 27 00:01:30,985 --> 00:01:32,100 la colonne. 28 00:01:32,100 --> 00:01:36,120 Et vous allez remplir votre grille en décroissant des valeurs, juste comme ça. 29 00:01:36,120 --> 00:01:43,260 Grille, 0, 0, la ligne 0, colonne 0, est de 8, grille 0, 1 à 7. 30 00:01:43,260 --> 00:01:48,500 Il s'agit d'un exemple où d, peu d, est de 3. 31 00:01:48,500 --> 00:01:52,690 >> Maintenant, le conseil en Quinze doivent également contenir une tuile vierge, si vous avez jamais 32 00:01:52,690 --> 00:01:54,280 joué avec le jeu physique. 33 00:01:54,280 --> 00:01:59,210 Mais, planche est un tableau d'entiers, de sorte toutes les valeurs doivent être des entiers. 34 00:01:59,210 --> 00:02:06,950 Donc, c'est à vous de décider un nombre entier valeur pour représenter une tuile vierge. 35 00:02:06,950 --> 00:02:10,460 Pour initialiser votre carte, vous pouvez utiliser structures en boucle pour contenir la 36 00:02:10,460 --> 00:02:16,440 à partir état de la carte, où le Conseil i j représente l'élément à 37 00:02:16,440 --> 00:02:19,380 la ligne i et la colonne j. 38 00:02:19,380 --> 00:02:23,035 Ils commencent en ordre décroissant et, se rappeler que, si le nombre de carreaux 39 00:02:23,035 --> 00:02:29,590 est impair, alors vous allez avoir à échanger la position de deux et de 1. 40 00:02:29,590 --> 00:02:33,790 Alors là, nous avons notre conseil initialisé. 41 00:02:33,790 --> 00:02:37,440 >> Maintenant que nous avons initialisé notre conseil d'administration, il est temps de le dessiner. 42 00:02:37,440 --> 00:02:41,260 Tirage imprimer l'état actuel de la conseil d'administration, mais vous devez vous assurer 43 00:02:41,260 --> 00:02:44,260 pour imprimer carreaux dans le même ordre que vous les avez initialisé. 44 00:02:44,260 --> 00:02:47,300 Et vous avez aussi besoin de formater vos numéros correctement. 45 00:02:47,300 --> 00:02:51,700 Parce que nous pourrions avoir des chiffres simples et deux chiffres, alors que vous voulez 46 00:02:51,700 --> 00:02:54,540 imprimer un espace avant des nombres à un chiffre. 47 00:02:54,540 --> 00:03:00,150 Vous utilisez qu'en utilisant l'espace réservé -. 48 00:03:00,150 --> 00:03:02,550 >> Mais souvenez-vous de notre espace. 49 00:03:02,550 --> 00:03:05,970 Nous ne voulons pas d'imprimer le nombre réel que nous avons choisi pour représenter 50 00:03:05,970 --> 00:03:10,410 que l'espace vide en pension, mais nous avons également ne veulent pas de ne rien imprimer du tout. 51 00:03:10,410 --> 00:03:15,310 Donc, ce que vous pouvez faire est de définir un symbole ou caractère pour représenter la 52 00:03:15,310 --> 00:03:17,050 carrelage blanc. 53 00:03:17,050 --> 00:03:21,030 Dans les exemples précédents, j'ai choisi un soulignez, et alors que vous venez d'imprimer 54 00:03:21,030 --> 00:03:26,970 que chaque fois que vous atteignez le vide espace dans votre fonction de tirage. 55 00:03:26,970 --> 00:03:29,850 >> Donc tirer auront niché pour les boucles. 56 00:03:29,850 --> 00:03:31,150 Quelque chose comme ça. 57 00:03:31,150 --> 00:03:35,660 Pour chaque ligne, puis pour chaque valeur de la ligne, vous allez imprimer le 58 00:03:35,660 --> 00:03:36,940 La valeur de cet espace. 59 00:03:36,940 --> 00:03:39,470 Une fois que vous avez imprimé toutes les valeurs dans la ligne, alors vous 60 00:03:39,470 --> 00:03:41,180 peut imprimer une nouvelle ligne. 61 00:03:41,180 --> 00:03:47,730 Rappelez-vous que l'ordre de votre tirage fonction doit écho ou refléter l'ordre 62 00:03:47,730 --> 00:03:48,980 dans votre fonction initialisée. 63 00:03:48,980 --> 00:03:51,290 64 00:03:51,290 --> 00:03:55,160 >> Maintenant que vous avez initialisé la carte et que vous avez dessiné, il est temps de laisser 65 00:03:55,160 --> 00:03:58,500 l'utilisateur le modifier et faire leurs mouvements. 66 00:03:58,500 --> 00:04:03,840 Ainsi, dans la fonction Fifteen.c, la programme prend en entrée de l'utilisateur et 67 00:04:03,840 --> 00:04:07,690 puis appelle la fonction de déplacement, en passant dans le numéro de la tuile que le 68 00:04:07,690 --> 00:04:09,270 l'utilisateur veut se déplacer. 69 00:04:09,270 --> 00:04:10,380 Maintenant, soyez prudent. 70 00:04:10,380 --> 00:04:14,200 Ceci est le nombre réel de la tuile et pas de sa position réelle. 71 00:04:14,200 --> 00:04:19,010 Ainsi, vous aurez besoin de chercher pour la tuile de mesure de savoir où il est. 72 00:04:19,010 --> 00:04:23,440 >> Maintenant, vous ne devez permettre à l'utilisateur de faire un geste si c'est légal. 73 00:04:23,440 --> 00:04:27,910 Un mouvement juridique est une tuile qui est adjacente à la tuile en blanc. 74 00:04:27,910 --> 00:04:32,020 Cela signifie que, au-dessus et au-dessous, à la gauche et vers la droite. 75 00:04:32,020 --> 00:04:34,680 Ainsi, vous aurez besoin de savoir où le carreau blanc est ainsi. 76 00:04:34,680 --> 00:04:39,720 Maintenant, pour chaque mouvement que vous êtes à la recherche de le carreau des utilisateurs, mais il est probablement 77 00:04:39,720 --> 00:04:43,030 pas mieux pour la recherche de la tuile vierge chaque fois parce que vous le faites 78 00:04:43,030 --> 00:04:45,270 chaque fois que la l'utilisateur veut se déplacer. 79 00:04:45,270 --> 00:04:50,300 Ainsi, au lieu, il est préférable de se rappeler où le carreau blanc utilise une partie 80 00:04:50,300 --> 00:04:52,650 bien des variables nommé. 81 00:04:52,650 --> 00:04:55,970 Donc, une fois que vous permettez à l'utilisateur de faire leur se déplace, ils sont sur la bonne 82 00:04:55,970 --> 00:04:59,700 façon de gagner le jeu des Quinze. 83 00:04:59,700 --> 00:05:03,940 >> Pour gagner le jeu des Quinze, les tuiles doivent être dans un ordre spécifique, et 84 00:05:03,940 --> 00:05:06,970 la fonction remporté vérifie si le jeu est gagné. 85 00:05:06,970 --> 00:05:10,290 Il renvoie True si le jeu est gagné et les carreaux sont dans l'ordre correct, 86 00:05:10,290 --> 00:05:12,210 et False sinon. 87 00:05:12,210 --> 00:05:15,830 Donc, pour gagner le jeu de quinze, carreaux être croissant, avec le 88 00:05:15,830 --> 00:05:19,230 carrelage blanc dans le coin en bas à droite. 89 00:05:19,230 --> 00:05:23,630 Alors, comment pouvez-vous vérifier si l'utilisateur a déplacé la carte dans le droit 90 00:05:23,630 --> 00:05:25,010 orientation? 91 00:05:25,010 --> 00:05:29,200 >> Eh bien, vous parcouriez le conseil et vérifier les valeurs de s'assurer que 92 00:05:29,200 --> 00:05:30,550 ils sont à la bonne place. 93 00:05:30,550 --> 00:05:33,910 Pour ce faire, vous pouvez utiliser imbriquée pour les boucles comme vous l'avez fait 94 00:05:33,910 --> 00:05:36,520 en tirage et en initialisation. 95 00:05:36,520 --> 00:05:40,430 Il ya deux façons de vérifier et de valider si le conseil est 96 00:05:40,430 --> 00:05:42,860 correct et une victoire formation, si. 97 00:05:42,860 --> 00:05:47,330 Si vous allez de gauche à droite, en commençant de la rangée du haut vers le bas, puis tous les 98 00:05:47,330 --> 00:05:50,590 nombre doit être supérieur à la précédente. 99 00:05:50,590 --> 00:05:54,530 Soyez prudent sur ce que vous appréciez avons choisi pour votre carrelage blanc si. 100 00:05:54,530 --> 00:05:59,250 >> Ou vous pouvez utiliser une variable compteur veiller à ce que chaque valeur est en place, si 101 00:05:59,250 --> 00:06:03,660 vous venez avec une sorte de formule pour représenter cela. 102 00:06:03,660 --> 00:06:06,250 Alors amusez-vous à expérimenter avec les maths. 103 00:06:06,250 --> 00:06:10,930 Une fois que vous êtes venu avec une façon, le retour Vrai fois que l'utilisateur a gagné la partie. 104 00:06:10,930 --> 00:06:15,950 Mais si une valeur est incorrecte, le retour Faux, l'utilisateur doit continuer à se déplacer 105 00:06:15,950 --> 00:06:18,440 parce qu'ils n'ont pas gagné la partie. 106 00:06:18,440 --> 00:06:23,030 Une fois que vous implémentez cette vérification et, le long de avec initialisation, dessiner et déplacer, 107 00:06:23,030 --> 00:06:25,110 vous avez terminé le jeu des Quinze. 108 00:06:25,110 --> 00:06:27,620 Félicitations et ont plaisir à jouer. 109 00:06:27,620 --> 00:06:30,600 Mon nom est Zamyla et c'est CS50. 110 00:06:30,600 --> 00:06:37,632