Contrôle Machine

Les seuls documents papier autorisés sont vos notes de cours, de travaux dirigés et de travaux pratiques. Les documents électroniques autorisés sont les documents présents sur les machines de l'IUT et dont vous êtes l'unique auteur (ainsi que les éventuels documents de cours). En dehors de la machine qui vous est attribuée et de votre matériel de composition (crayons, stylos, feuilles de brouillon…), aucun matériel n'est autorisé.

La documentation de l'API Java doit être consultée uniquement en version locale.

Toutes les réponses devront prendre la forme de fichiers source en langage Java. Suivez scrupuleusement les instructions de ce sujet. Vos réponses doivent correspondre aux exemples d'exécution. Soyez rigoureux !

Sauf indication contraire, vous pouvez supposer que les données fournies sur la ligne de commande ou l'entrée standard respectent les restrictions de l'énoncé et ne nécessitent donc pas de contrôle.

Dans le répertoire dédié au module (normalement, ~/DEV/DEV2.1/), créez un nouveau répertoire nommé CM1. Faites-en votre répertoire courant et placez-y tous les fichiers générés durant l'épreuve. Le contenu de ce répertoire peut être soumis dans votre dépôt git local, mais pas poussé vers votre dépôt global avant l'heure officielle de fin de l'épreuve.

Attention Votre nom complet devra être mentionné sur la première ligne de chaque fichier (en commentaire).

Effacez tous les fichiers temporaires et ne gardez que les fichiers d'extension .java (attention à ne pas effacer vos fichiers source !). Placez-vous ensuite dans le répertoire immédiatement au dessus de CM1 et archivez votre travail, par exemple par la commande :

bob@box:DEV2.1$ tar czvvf dummy_CM1.tar.gz CM1
Remplacez le mot dummy par votre login. Téléversez l'archive ainsi obtenue à cet endroit.

  1. Duplication. (4 points) Écrivez un programme dans lequel vous définirez puis instancierez un tableau de 10 réels. Remplissez ensuite toutes les cases de ce tableau avec la valeur 5.8, obligatoirement à l'aide de la méthode fill de la classe Arrays. Enfin, affichez ce tableau en vous servant de la méthode toString de la classe Arrays.

    bob@box:CM1$ java Duplication
    [5.8, 5.8, 5.8, 5.8, 5.8, 5.8, 5.8, 5.8, 5.8, 5.8]
    

  2. Morpion. (6 points) Le morpion est un jeu à deux joueurs qui se déroule sur une grille de 3 lignes et 3 colonnes. Toutes les cases de la grille commencent vides, et en alternance chaque joueur choisit une case vide et la remplit avec un symbole qui lui est propre (✗ pour celui qui joue en premier, ⭕︎ pour l'autre).

    Dès que trois symboles identiques sont alignés horizontalement, verticalement ou en diagonale, le joueur correspondant est déclaré gagnant. Si toutes les cases sont remplies sans que cela se produise, la partie est considérée comme nulle.

    Chaque état possible de la grille de jeu sera représentée par un objet distinct, et la classe de tous ces objets sera nommée Configuration. Définissez cette classe en incluant :

    • un constructeur qui produit la configuration de départ (dont toutes les cases sont vides)
    • une méthode estLibre qui prend en argument une position dans la grille et renvoie un booléen valant true si et seulement si la position indiquée est vide (à vous de choisir la meilleure façon de représenter une position)
    • une méthode jouer qui prend en argument une position et un joueur et renvoie une nouvelle configuration identique à la configuration d'origine mais où la position indiquée contient le symbole du joueur donné (à vous de choisir la meilleure façon de représenter un joueur).

    Écrivez un bref programme qui teste chacune de ces méthodes. Notez qu'aucun affichage de grille n'est demandé.

  3. Declinaisons. (6 points) Écrivez une application qui ouvre une fenêtre contenant quatre composants graphiques de la même classe.

    exemple d'exécution

    En cas de redimensionnement, les triangles ne changent pas de taille mais restent approximativement centrés dans leurs composants respectifs.

  4. Acharnement. (4 points) Écrivez une application qui ouvre une fenêtre (dont le contenu importe peu). Pour fermer cette fenêtre, la croix de sa barre de titre devra être cliquée trois fois (pas forcément d'affilée).

    Attention Respectez bien le principe de responsabilité unique. Au moins deux classes (et donc deux fichiers) sont attendus dans cette question.

retour à la page d'accueil

retour au sommet