From e7f9cf7b1f9b818dacb905f45493478ebf299363 Mon Sep 17 00:00:00 2001 From: HORVILLE Ewen Date: Wed, 1 Jun 2022 12:19:24 +0200 Subject: [PATCH] APL2.1 - Controle Machine & DEV 2.3 --- .../horville_apl21/Aléatoire/Aléatoire.java | 12 + .../horville_apl21/Fermeture/Fermeture.java | 18 + .../Fermeture/FermetureListener.java | 27 + .../Fermeture/TileBackground.java | 32 + .../horville_apl21/Fermeture/tuile.jpg | Bin 0 -> 36945 bytes .../Modélisation/Modélisation.mdj | 557 ++++++++++++++++++ .../horville_apl21/Puissance/Grille.java | 52 ++ .../horville_apl21/Puissance/Puissance.java | 15 + .../horville_apl21/Tuile/TileBackground.java | 34 ++ .../horville_apl21/Tuile/Tuile.java | 17 + .../horville_apl21/Tuile/tuile.jpg | Bin 0 -> 36945 bytes DEV 2.3/Largest/Largest.class | Bin 0 -> 455 bytes DEV 2.3/Largest/Largest.java | 19 + DEV 2.3/Largest/TestLargest.class | Bin 0 -> 1223 bytes DEV 2.3/Largest/TestLargest.java | 36 ++ 15 files changed, 819 insertions(+) create mode 100644 APL2.1/Controle Machine/horville_apl21/Aléatoire/Aléatoire.java create mode 100644 APL2.1/Controle Machine/horville_apl21/Fermeture/Fermeture.java create mode 100644 APL2.1/Controle Machine/horville_apl21/Fermeture/FermetureListener.java create mode 100644 APL2.1/Controle Machine/horville_apl21/Fermeture/TileBackground.java create mode 100644 APL2.1/Controle Machine/horville_apl21/Fermeture/tuile.jpg create mode 100644 APL2.1/Controle Machine/horville_apl21/Modélisation/Modélisation.mdj create mode 100644 APL2.1/Controle Machine/horville_apl21/Puissance/Grille.java create mode 100644 APL2.1/Controle Machine/horville_apl21/Puissance/Puissance.java create mode 100644 APL2.1/Controle Machine/horville_apl21/Tuile/TileBackground.java create mode 100644 APL2.1/Controle Machine/horville_apl21/Tuile/Tuile.java create mode 100644 APL2.1/Controle Machine/horville_apl21/Tuile/tuile.jpg create mode 100644 DEV 2.3/Largest/Largest.class create mode 100644 DEV 2.3/Largest/Largest.java create mode 100644 DEV 2.3/Largest/TestLargest.class create mode 100644 DEV 2.3/Largest/TestLargest.java diff --git a/APL2.1/Controle Machine/horville_apl21/Aléatoire/Aléatoire.java b/APL2.1/Controle Machine/horville_apl21/Aléatoire/Aléatoire.java new file mode 100644 index 0000000..13eed29 --- /dev/null +++ b/APL2.1/Controle Machine/horville_apl21/Aléatoire/Aléatoire.java @@ -0,0 +1,12 @@ +//HORVILLE Ewen Groupe N°4 + +import java.util.*; + +public class Aléatoire { + public static void main(String[] args) { + Random r = new Random(); + + System.out.println("random propose :\t" + Math.random()); + System.out.println("nextDouble propose :\t" + r.nextDouble()); + } +} \ No newline at end of file diff --git a/APL2.1/Controle Machine/horville_apl21/Fermeture/Fermeture.java b/APL2.1/Controle Machine/horville_apl21/Fermeture/Fermeture.java new file mode 100644 index 0000000..9bda8fd --- /dev/null +++ b/APL2.1/Controle Machine/horville_apl21/Fermeture/Fermeture.java @@ -0,0 +1,18 @@ +//HORVILLE Ewen Groupe N°4 + +import java.awt.*; +import javax.swing.*; + +public class Fermeture { + public static void main(String[] args) { + JFrame f = new JFrame("Fermeture"); + f.setLocation(150, 150); + f.setSize(500, 500); + f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); + f.addWindowListener(new FermetureListener()); + f.setVisible(true); + + TileBackground tb = new TileBackground(100, "./tuile.jpg"); + f.add(tb); + } +} \ No newline at end of file diff --git a/APL2.1/Controle Machine/horville_apl21/Fermeture/FermetureListener.java b/APL2.1/Controle Machine/horville_apl21/Fermeture/FermetureListener.java new file mode 100644 index 0000000..a58b6e0 --- /dev/null +++ b/APL2.1/Controle Machine/horville_apl21/Fermeture/FermetureListener.java @@ -0,0 +1,27 @@ +//HORVILLE Ewen Groupe N°4 + +import java.awt.event.*; +import java.awt.*; +import javax.swing.*; + +public class FermetureListener implements WindowListener { + + private boolean hasBeenMinimised = false; + + public FermetureListener() {} + public void windowActivated(WindowEvent evenement) {} + public void windowClosed(WindowEvent evenement) {} + public void windowDeactivated(WindowEvent evenement) {} + public void windowDeiconified(WindowEvent evenement) {} + public void windowOpened(WindowEvent evenement) {} + + public void windowClosing(WindowEvent evenement) { + if (hasBeenMinimised) { + ((JFrame)evenement.getSource()).dispose(); + } + } + + public void windowIconified(WindowEvent evenement) { + hasBeenMinimised = true; + } +} \ No newline at end of file diff --git a/APL2.1/Controle Machine/horville_apl21/Fermeture/TileBackground.java b/APL2.1/Controle Machine/horville_apl21/Fermeture/TileBackground.java new file mode 100644 index 0000000..b3c149f --- /dev/null +++ b/APL2.1/Controle Machine/horville_apl21/Fermeture/TileBackground.java @@ -0,0 +1,32 @@ +import java.awt.*; +import javax.swing.*; + +public class TileBackground extends JComponent { + private Image tile; + private int tileScale; + + public TileBackground(int tileScale, String imagePath) { + super(); + this.tile = Toolkit.getDefaultToolkit().getImage(imagePath); + this.tileScale = tileScale; + } + + @Override + protected void paintComponent(Graphics brush) { + Graphics newBrush = brush.create(); + + if (this.isOpaque()) { + newBrush.setColor(this.getBackground()); + newBrush.fillRect(0, 0, this.getWidth(), this.getHeight()); + } + + int horizontalReps = this.getWidth() / this.tileScale + 1; + int verticalReps = this.getHeight() / this.tileScale + 1; + + for (int x = 0; x < horizontalReps; x++) { + for (int y = 0; y < verticalReps; y++) { + newBrush.drawImage(this.tile, x * tileScale, y * tileScale, tileScale, tileScale, this); + } + } + } +} \ No newline at end of file diff --git a/APL2.1/Controle Machine/horville_apl21/Fermeture/tuile.jpg b/APL2.1/Controle Machine/horville_apl21/Fermeture/tuile.jpg new file mode 100644 index 0000000000000000000000000000000000000000..55612e6338e04492dab1d7c6e5283215d5e3289f GIT binary patch literal 36945 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 literal 0 HcmV?d00001 diff --git a/APL2.1/Controle Machine/horville_apl21/Modélisation/Modélisation.mdj b/APL2.1/Controle Machine/horville_apl21/Modélisation/Modélisation.mdj new file mode 100644 index 0000000..4ce6886 --- /dev/null +++ b/APL2.1/Controle Machine/horville_apl21/Modélisation/Modélisation.mdj @@ -0,0 +1,557 @@ +{ + "_type": "Project", + "_id": "AAAAAAFF+h6SjaM2Hec=", + "name": "Untitled", + "ownedElements": [ + { + "_type": "UMLModel", + "_id": "AAAAAAFF+qBWK6M3Z8Y=", + "_parent": { + "$ref": "AAAAAAFF+h6SjaM2Hec=" + }, + "name": "Model", + "ownedElements": [ + { + "_type": "UMLClassDiagram", + "_id": "AAAAAAFF+qBtyKM79qY=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Main", + "defaultDiagram": true, + "ownedViews": [ + { + "_type": "UMLClassView", + "_id": "AAAAAAGAQbmqUae/eU4=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAQbmqT6e9eOw=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAQbmqUafAlBY=", + "_parent": { + "$ref": "AAAAAAGAQbmqUae/eU4=" + }, + "model": { + "$ref": "AAAAAAGAQbmqT6e9eOw=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAQbmqUafB+ek=", + "_parent": { + "$ref": "AAAAAAGAQbmqUafAlBY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 224, + "top": 304, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAQbmqUafC9dg=", + "_parent": { + "$ref": "AAAAAAGAQbmqUafAlBY=" + }, + "font": "Arial;13;1", + "left": 549, + "top": 327, + "width": 135.4970703125, + "height": 13, + "text": "Grille" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAQbmqUqfDnuk=", + "_parent": { + "$ref": "AAAAAAGAQbmqUafAlBY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 224, + "top": 304, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAQbmqUqfEy+o=", + "_parent": { + "$ref": "AAAAAAGAQbmqUafAlBY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 224, + "top": 304, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 544, + "top": 320, + "width": 145.4970703125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAQbmqUafB+ek=" + }, + "nameLabel": { + "$ref": "AAAAAAGAQbmqUafC9dg=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAQbmqUqfDnuk=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAQbmqUqfEy+o=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAQbmqUqfFNho=", + "_parent": { + "$ref": "AAAAAAGAQbmqUae/eU4=" + }, + "model": { + "$ref": "AAAAAAGAQbmqT6e9eOw=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAQboV46frWRg=", + "_parent": { + "$ref": "AAAAAAGAQbmqUqfFNho=" + }, + "model": { + "$ref": "AAAAAAGAQboV2KfoKgU=" + }, + "font": "Arial;13;0", + "left": 549, + "top": 350, + "width": 135.4970703125, + "height": 13, + "text": "-short[][] Cases", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGAQbqsc6fzE9Q=", + "_parent": { + "$ref": "AAAAAAGAQbmqUqfFNho=" + }, + "model": { + "$ref": "AAAAAAGAQbqsbqfw1J0=" + }, + "font": "Arial;13;0", + "left": 549, + "top": 365, + "width": 135.4970703125, + "height": 13, + "text": "-int joueurActuel", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 544, + "top": 345, + "width": 145.4970703125, + "height": 38 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAQbmqUqfGs3M=", + "_parent": { + "$ref": "AAAAAAGAQbmqUae/eU4=" + }, + "model": { + "$ref": "AAAAAAGAQbmqT6e9eOw=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAQbr0NKf7Rkg=", + "_parent": { + "$ref": "AAAAAAGAQbmqUqfGs3M=" + }, + "model": { + "$ref": "AAAAAAGAQbr0L6f4b9I=" + }, + "font": "Arial;13;0", + "left": 549, + "top": 388, + "width": 135.4970703125, + "height": 13, + "text": "+void jouer(int colonne)", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAQbt7tqgCEMk=", + "_parent": { + "$ref": "AAAAAAGAQbmqUqfGs3M=" + }, + "model": { + "$ref": "AAAAAAGAQbt7saf/ho0=" + }, + "font": "Arial;13;0", + "left": 549, + "top": 403, + "width": 135.4970703125, + "height": 13, + "text": "+String toString()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 544, + "top": 383, + "width": 145.4970703125, + "height": 38 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAQbmqUqfH22s=", + "_parent": { + "$ref": "AAAAAAGAQbmqUae/eU4=" + }, + "model": { + "$ref": "AAAAAAGAQbmqT6e9eOw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 112, + "top": 152, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAQbmqUqfInbI=", + "_parent": { + "$ref": "AAAAAAGAQbmqUae/eU4=" + }, + "model": { + "$ref": "AAAAAAGAQbmqT6e9eOw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 112, + "top": 152, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 544, + "top": 320, + "width": 145.4970703125, + "height": 101, + "nameCompartment": { + "$ref": "AAAAAAGAQbmqUafAlBY=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAQbmqUqfFNho=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAQbmqUqfGs3M=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAQbmqUqfH22s=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAQbmqUqfInbI=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAQb2Y1qgNzok=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAQb2Y1agLYCI=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAQb2Y1qgOWEU=", + "_parent": { + "$ref": "AAAAAAGAQb2Y1qgNzok=" + }, + "model": { + "$ref": "AAAAAAGAQb2Y1agLYCI=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAQb2Y1qgPBUM=", + "_parent": { + "$ref": "AAAAAAGAQb2Y1qgOWEU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 848, + "top": 448, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAQb2Y1qgQmHI=", + "_parent": { + "$ref": "AAAAAAGAQb2Y1qgOWEU=" + }, + "font": "Arial;13;1", + "left": 733, + "top": 343, + "width": 141.9716796875, + "height": 13, + "text": "Puissance" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAQb2Y1qgRI5Q=", + "_parent": { + "$ref": "AAAAAAGAQb2Y1qgOWEU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 848, + "top": 448, + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAQb2Y1qgS4x0=", + "_parent": { + "$ref": "AAAAAAGAQb2Y1qgOWEU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 848, + "top": 448, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 728, + "top": 336, + "width": 151.9716796875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAQb2Y1qgPBUM=" + }, + "nameLabel": { + "$ref": "AAAAAAGAQb2Y1qgQmHI=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAQb2Y1qgRI5Q=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAQb2Y1qgS4x0=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAQb2Y1qgTZio=", + "_parent": { + "$ref": "AAAAAAGAQb2Y1qgNzok=" + }, + "model": { + "$ref": "AAAAAAGAQb2Y1agLYCI=" + }, + "font": "Arial;13;0", + "left": 728, + "top": 361, + "width": 151.9716796875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAQb2Y1qgU+G8=", + "_parent": { + "$ref": "AAAAAAGAQb2Y1qgNzok=" + }, + "model": { + "$ref": "AAAAAAGAQb2Y1agLYCI=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAQb2znag4OPI=", + "_parent": { + "$ref": "AAAAAAGAQb2Y1qgU+G8=" + }, + "model": { + "$ref": "AAAAAAGAQb2zkqg1cC4=" + }, + "font": "Arial;13;0", + "left": 733, + "top": 376, + "width": 141.9716796875, + "height": 13, + "text": "+void main(String[] args)", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 728, + "top": 371, + "width": 151.9716796875, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAQb2Y16gVdAA=", + "_parent": { + "$ref": "AAAAAAGAQb2Y1qgNzok=" + }, + "model": { + "$ref": "AAAAAAGAQb2Y1agLYCI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 424, + "top": 224, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAQb2Y16gW0+g=", + "_parent": { + "$ref": "AAAAAAGAQb2Y1qgNzok=" + }, + "model": { + "$ref": "AAAAAAGAQb2Y1agLYCI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 424, + "top": 224, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 728, + "top": 336, + "width": 151.9716796875, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAGAQb2Y1qgOWEU=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAQb2Y1qgTZio=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAQb2Y1qgU+G8=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAQb2Y16gVdAA=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAQb2Y16gW0+g=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAQbmqT6e9eOw=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Grille", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAQboV2KfoKgU=", + "_parent": { + "$ref": "AAAAAAGAQbmqT6e9eOw=" + }, + "name": "short[][] Cases", + "visibility": "private" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGAQbqsbqfw1J0=", + "_parent": { + "$ref": "AAAAAAGAQbmqT6e9eOw=" + }, + "name": "int joueurActuel", + "visibility": "private" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAQbr0L6f4b9I=", + "_parent": { + "$ref": "AAAAAAGAQbmqT6e9eOw=" + }, + "name": "void jouer", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGAQbujh6gHSNE=", + "_parent": { + "$ref": "AAAAAAGAQbr0L6f4b9I=" + }, + "name": "int colonne", + "type": "" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAQbt7saf/ho0=", + "_parent": { + "$ref": "AAAAAAGAQbmqT6e9eOw=" + }, + "name": "String toString" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAQb2Y1agLYCI=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Puissance", + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAQb2zkqg1cC4=", + "_parent": { + "$ref": "AAAAAAGAQb2Y1agLYCI=" + }, + "name": "void main", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGAQb3L3Kg8tz0=", + "_parent": { + "$ref": "AAAAAAGAQb2zkqg1cC4=" + }, + "name": "String[] args", + "type": "" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/APL2.1/Controle Machine/horville_apl21/Puissance/Grille.java b/APL2.1/Controle Machine/horville_apl21/Puissance/Grille.java new file mode 100644 index 0000000..939b397 --- /dev/null +++ b/APL2.1/Controle Machine/horville_apl21/Puissance/Grille.java @@ -0,0 +1,52 @@ +//HORVILLE Ewen Groupe N°4 + +public class Grille { + private short[][] Cases = new short[7][6]; + private int joueurActuel; + + public Grille() { + joueurActuel = 0; + } + + public void jouer(int colonne) { + if (colonne < 1 && colonne > 7) { + System.out.println("N° de colonne invalide !"); + return; + } + + boolean placementValide = false; + for (int i = 5; i >= 0; i--) { + if (Cases[colonne-1][i] == 0) { + Cases[colonne-1][i] = (short)(joueurActuel+1); + joueurActuel = (joueurActuel + 1) % 2; + placementValide = true; + break; + } + } + + if (!placementValide) { + System.out.println("Colonne n°" + colonne + " pleine !"); + } + } + + @Override + public String toString() { + String str = ""; + + for (int x = 0; x < 6; x++) { + for (int y = 0; y < 7; y++) { + str += "│"; + + if (Cases[y][x] == 0) str += " "; + else if (Cases[y][x] == 1) str += "○"; + else if (Cases[y][x] == 2) str += "●"; + } + + str += "│\n"; + } + + str += "┴─┴─┴─┴─┴─┴─┴─┴"; + + return str; + } +} \ No newline at end of file diff --git a/APL2.1/Controle Machine/horville_apl21/Puissance/Puissance.java b/APL2.1/Controle Machine/horville_apl21/Puissance/Puissance.java new file mode 100644 index 0000000..05d7816 --- /dev/null +++ b/APL2.1/Controle Machine/horville_apl21/Puissance/Puissance.java @@ -0,0 +1,15 @@ +//HORVILLE Ewen Groupe N°4 + +public class Puissance { + public static void main(String[] args) { + Grille g = new Grille(); + + g.jouer(3); + g.jouer(4); + g.jouer(4); + g.jouer(6); + g.jouer(4); + g.jouer(6); + System.out.println(g); + } +} \ No newline at end of file diff --git a/APL2.1/Controle Machine/horville_apl21/Tuile/TileBackground.java b/APL2.1/Controle Machine/horville_apl21/Tuile/TileBackground.java new file mode 100644 index 0000000..f285657 --- /dev/null +++ b/APL2.1/Controle Machine/horville_apl21/Tuile/TileBackground.java @@ -0,0 +1,34 @@ +//HORVILLE Ewen Groupe N°4 + +import java.awt.*; +import javax.swing.*; + +public class TileBackground extends JComponent { + private Image tile; + private int tileScale; + + public TileBackground(int tileScale, String imagePath) { + super(); + this.tile = Toolkit.getDefaultToolkit().getImage(imagePath); + this.tileScale = tileScale; + } + + @Override + protected void paintComponent(Graphics brush) { + Graphics newBrush = brush.create(); + + if (this.isOpaque()) { + newBrush.setColor(this.getBackground()); + newBrush.fillRect(0, 0, this.getWidth(), this.getHeight()); + } + + int horizontalReps = this.getWidth() / this.tileScale + 1; + int verticalReps = this.getHeight() / this.tileScale + 1; + + for (int x = 0; x < horizontalReps; x++) { + for (int y = 0; y < verticalReps; y++) { + newBrush.drawImage(this.tile, x * tileScale, y * tileScale, tileScale, tileScale, this); + } + } + } +} \ No newline at end of file diff --git a/APL2.1/Controle Machine/horville_apl21/Tuile/Tuile.java b/APL2.1/Controle Machine/horville_apl21/Tuile/Tuile.java new file mode 100644 index 0000000..da6b41c --- /dev/null +++ b/APL2.1/Controle Machine/horville_apl21/Tuile/Tuile.java @@ -0,0 +1,17 @@ +//HORVILLE Ewen Groupe N°4 + +import java.awt.*; +import javax.swing.*; + +public class Tuile { + public static void main(String[] args) { + JFrame f = new JFrame("Tuile"); + f.setLocation(150, 150); + f.setSize(500, 500); + f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + f.setVisible(true); + + TileBackground tb = new TileBackground(100, "./tuile.jpg"); + f.add(tb); + } +} \ No newline at end of file diff --git a/APL2.1/Controle Machine/horville_apl21/Tuile/tuile.jpg b/APL2.1/Controle Machine/horville_apl21/Tuile/tuile.jpg new file mode 100644 index 0000000000000000000000000000000000000000..55612e6338e04492dab1d7c6e5283215d5e3289f GIT binary patch literal 36945 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 literal 0 HcmV?d00001 diff --git a/DEV 2.3/Largest/Largest.class b/DEV 2.3/Largest/Largest.class new file mode 100644 index 0000000000000000000000000000000000000000..9d0de60162609d8c88637704e84509e6dd3be23c GIT binary patch literal 455 zcmZWmyG{a85Iw^#URjo>FBFWiP+<%B0Ku4;n2;bA7%i+8xFL({qRXzeg*FOUQ2YxlgUK#m|PJ1JUH?v-Hf=SR}T=a)A1T6g!;e bO)}VG+(8bj+(| max ? list[index] : max; + } + return max; + } + } \ No newline at end of file diff --git a/DEV 2.3/Largest/TestLargest.class b/DEV 2.3/Largest/TestLargest.class new file mode 100644 index 0000000000000000000000000000000000000000..ab0a951cb03aa2cca43a69866d6a3fbe223d7a3b GIT binary patch literal 1223 zcmZ{i%TE(g6vn^XPJ7$w0Mqi2r}CzyLVe%^d5f47t4)N|6jnn!sRLyOXF4RTT=_@H zMt82&M2HgH`!^Z!+-YfJgR{7gx##}Q_nmuw{rP?lU;&FVeDHHf3IYf+sJq&smMUvz zDV5#X)e9Ad;JjfPl|=@BJdq2~E%AkA$cS(#3R=+0z%!a%(j5xt<;ztdzMW2_WvGa9 z#1yongA!PFDYfeoF}312x=l9}&0DO!aka9;5Qwj@CvqHJ4AF*~v{}(hy6xqEdvS5$ z7eg3*=;s(va2+=oBAcY3E~I_5$~7$0d15%)PFXK9uq}=uhVBNrDubfdY}>MB48kvC z6k{CY3MLT0EQ(t(%BdCG){aP|oJuh9eV(jZV!!hV|#WXFV z2zR6~(mq+K?`s5WAoHV<{%Ayx|sDC|Ag4r+;7#p$YTIZolVUfAQ9 zW$3Wxa^A0ovw2AkW%B`*XHOA+cZ#+K zLbNjwK|d7SsUh#u%rJ8m@|uT~h!{P1Psmu$|BxynqfN+rb>uTLC$x`$LGLk!gLQ1M zuJa=zKQNd-!SGKZ*XKE|%I(A$x^SQV`oYGUl02vg4<>{;!c-e!#)AOSSl>4!j=`l*ko;fK+bGdxQwUuF_>^Ulc%C*s GEc^v{AK^y; literal 0 HcmV?d00001 diff --git a/DEV 2.3/Largest/TestLargest.java b/DEV 2.3/Largest/TestLargest.java new file mode 100644 index 0000000..6050a99 --- /dev/null +++ b/DEV 2.3/Largest/TestLargest.java @@ -0,0 +1,36 @@ +import static org.junit.Assert.assertEquals; + +import java.util.Arrays; + +import org.junit.Test; + +public class TestLargest { + + @Test + public void testSimple() { + assertEquals(9, Largest.largest(new int[] {9,8,7})); + } + + @Test + public void testBoundary() { + assertEquals(Integer.MAX_VALUE, Largest.largest(new int[] {1, 28825, Integer.MAX_VALUE})); + } + + @Test + public void testInverse() { + assert(3 != Largest.largest(new int[] {1, 3, 7})); + } + + @Test + public void testCrosscheck() { + int[] a = new int[] {3, 1, 7}; + Arrays.sort(a); + assert(Largest.largest(new int[] {3, 1, 7}) == a[a.length-1]); + } + + @Test + public void testError() { + Largest.largest(new int[] {}); + Largest.largest(null); + } +} \ No newline at end of file