Bonjour et bienvenue à nouveau.
Dans cette conférence, je veux vous donne un autre défi.
C'est lié aux fonctions, mais ce défi consistera davantage
à diviser pour vaincre. Ça va être plus sur l'organisation de votre
programme autour de modules, ça va être davantage axé sur la résolution de problèmes.
Ce que je veux que tu fasses c'est que je veux vous d'écrire un jeu de tic-tac-toe.
Cela va vous aider juste devenir un meilleur résolveur de
problèmes, et cela vous aidera à organiser votre programme autour des fonctions.
Vous allez également utiliser un
tableau, vous allez devoir comprendre comment formater certaines données, mais
ça va être un simulation d'un jeu de tic-tac-toe.
Nous n'allons pas écrire sur un ordinateur.
Ça va être joueur 1 contre le joueur 2.
Alors je veux que vous écriviez un programme qui joue tic-tac-toe.
Espérons que tout le monde est familier avec ce programme
ou ce jeu, devrais-je dire.
C'est juste un jeu auquel on joue sur une grille 3 x 3 avec deux joueurs.
Vous vous relevez.
X est un nez.
Espérons que cela sonne une cloche.
Je ne voulais pas avoir à y aller et expliquer ce jeu, mais j'espère que
vous êtes familier avec le tic-tac-toe.
Je vais fournir un peu démonstration de son fonctionnement et de la manière dont
je m'attendrais à ce que la sortie se déroule
Mais c'est un jeu de base de tic tac toe.
Ce que je veux faire c'est que tu es
va probablement avoir besoin de créer un tableau pour représenter le planche réelle, la grille 3 x 3.
Je pense que tu peux t'en sortir avec juste créer un tableau à une seule dimension.
Vous pourriez en fait créer un Tableau 2D également pour représenter les lignes
et les colonnes.
2D serait probablement plus intuitif, mais il peut
être un peu plus difficile à visualiser dans votre code.
Mais de toute façon fonctionne.
La bonne chose à propos de la programmation est il existe de nombreuses solutions à un problème.
Je vais te dire un de mes solutions et mon approche de conception, mais
n'hésitez pas à changer la conception.
Tant que vous utilisez le c construit correctement, c'est tout
ce qui m'importe.
Je veux que vous appreniez à utiliser c.
Tant que votre programme est modulé et il est organisé
et facile à maintenir, et c'est un code de qualité, c'est ce qui m'inquiète.
Donc, une façon de mettre en œuvre une seule façon représente la carte comme
un tableau unidimensionnel avec dix éléments.
La raison pour laquelle j'ai dix éléments ici c'est que je ne veux pas que vous utilisiez zéro.
Ces dix éléments vont pour représenter
le conseil, mais ils vont également représenter les coordonnées au tableau.
Alors je vais faire une démonstration et montrer vous comment je pense travailler.
Mais la façon dont tu vas choisir
la case dans laquelle vous voulez dessiner va être basé sur le numéro de l'élément.
En plus de créer un tableau pour la planche, vous devez essayer de penser à comment
vous allez résoudre ce problème vers le bas, comment vous allez l'organiser.
Je pense au minimum que vous allez avoir
besoin d'au moins trois fonctions, probablement plus.
Mais il faut au moins en avoir un fonction qui vérifie les gagnants.
Cela verra simplement si une personne a gagné le jeu ou ils
peuvent même vérifier un match nul.
Tu devrais avoir une fonction qui dessine le tableau.
Parce que tu vas dessiner le plateau après le tour de chaque joueur.
Et vous allez - alors vous allez le réutiliser.
Une autre fonction pour le marquage la carte,
cela se produit lorsque l'utilisateur veut réellement mettre x ou un o dans une certaine case.
Vous avez besoin d'une fonction à définir cette boîte comme un x ou un o.
Ce qui va se passer, c'est que vous serez probablement remplir le tableau avec ce x ou ce o.
Et de cette façon, vous pouvez regarder le tableau pour voir si vous avez gagné ou perdu.
Et dans le tableau des marques, il vous permettrait également de
vérifier une sélection invalide.
Donc, si les sélections valides étaient un à neuf et l'utilisateur a
entré dix, vous diriez, hé, vous ne pouvez pas faire cela, essayez à nouveau.
Le jeu doit être convivial, devrait être intuitif à utiliser dans la mesure du
point de vue de l'utilisateur et il doit être organisé dans
une perspective de programmation.
Pensez vraiment à celui-ci.
Planifiez, planifiez, sortez du papier, commencez à rédiger une conception sur la manière dont vous allez attaquer ce
problème fonctions que vous allez devoir utiliser.
La façon dont je pense de cela va fonctionner, laissez-moi
vous montrer une petite démo.
Je ne vais vous montrer aucune source code, mais c'est ce à quoi j'imagine
que le jeu ressemblera lorsque nous l'exécuterons.
Peut-être un petit titre cela dit, hé, le jeu.
Et puis aussi un peu informations sur le joueur.
Le joueur 1 va être x, le joueur 2 va être o.
Rappelez-vous, cela n'a pas jouer à l’ordinateur.
Vous pouvez simplement mettre à chaque tour.
Donc tu devrais jouer à ce jeu avec un ami qui est assis à côté de
vous, et ils devraient vous dire où mettre le numéro.
Si vous obtenez vraiment ambitieux, vous pouvez
écrire le jeu pour jouer contre un ordinateur.
Mais vous remarquerez que le 3 x 3 la grille contient des numéros au départ.
Vous pouvez utiliser ces numéros pour entrer.
Donc si tu veux un joueur à leur tour et ils représentent
x, selon ce que nombre qu'ils entrent, c'est là que le
x va être placé.
Alors on imprime la grille, on affiche la planche et puis nous disons également à
l'utilisateur à qui c'est le tour et nous leur disons d'entrer un nombre.
Donc dans ce cas, je vais aller de l'avant et entrez le numéro deux et appuyez sur retour.
Et que se passera-t-il après avoir frappé deux et
retour, il va voir si quelqu'un a gagné, ça va effacer l'écran et ça
va redessiner le tableau.
Donc, après avoir touché 2 et entré, vous remarquez que j'ai toujours le titre, j'ai toujours
le joueur 1 et le joueur 2.
Mais maintenant, dans la case 2, j'ai un x.
Alors qu'aurais-je dû faire d'autre il y a j'aurais dû vérifier
avant d'afficher le tableau si ou pas, nous avons eu un gagnant ou un tirage au sort.
Et évidemment c'est le premier entrée donc nous n'avons ni l'un ni l'autre.
Puisque nous n'avons pas de gagnant ou un tirage au sort,
je vais maintenant demander au joueur d'entrer un numéro et ils peuvent choisir n'importe quel nombre ici.
Maintenant, si j'ai entré un invalide nombre comme 10, cela devrait me dire qu'il
est invalide.
Et ça devrait me permettre de peut-être faire un autre pas.
Si je voulais entrer 2, 2 devrait également être invalide.
Donc, si j'entre 2, cela dit également invalide car 2 est déjà pris par x.
Donc, si le programme me permet de réessayez, vous pourriez simplement vous débarrasser de leur tour
mais ce n'est pas vraiment juste.
Alors maintenant je vais juste dire où est-ce que je veux placer le o? Je vais dire
5, je vais mettre mouvement invalide, il va redessiner le tableau et
il y a un o et un 5.
Et maintenant, il est dit joueur 1.
Et vous continuez à faire ça jusqu'à ce que vous avez un gagnant ou un tirage au sort.
Je vais juste dire 9.
Maintenant j'ai un x là-bas, valide les entrées sont 1 3 4 6 7 et 8.
Je vais dire 3.
Et essayons en fait d'amener x à gagner donc maintenant x va aller dans huit
et je vais mettre o et 6 juste pour vous montrer que le jeu fonctionne avec un gagnant.
Et puis j'ai mis 7 pour x, le jeu devrait maintenant être terminé. J'ai frappé de retour.
Il dit que le premier joueur gagne, et il même joué un peu de son pour moi, j'ai
fait un peu de trucs fantaisistes là-bas.
Le jeu est donc terminé, le joueur un gagne.
Et cela devrait aussi arriver si le joueur 2 gagne ou s'il y a égalité.
Alors réfléchis à ce que tu veux pour attaquer ce problème.
Joli petit programme.
Je vais passer par une solution et fournir le code source dans la prochaine conférence. Merci.