APL2.1 - Controle Machine & DEV 2.3

This commit is contained in:
HORVILLE 2022-06-01 12:19:24 +02:00
parent 79791b395c
commit e7f9cf7b1f
15 changed files with 819 additions and 0 deletions

View File

@ -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());
}
}

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -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);
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

File diff suppressed because it is too large Load Diff

View File

@ -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;
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}
}
}

View File

@ -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);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

View File

@ -0,0 +1,19 @@
import java.util.Objects;
public class Largest {
/**
* Return the largest element in a list.
*
* @param list A list of integers
* @return The largest number in the given list
*/
public static int largest(int[] list) {
Objects.requireNonNull(list);
int index, max=Integer.MIN_VALUE;
for (index = 0; index < list.length; index++) {
max = list[index] > max ? list[index] : max;
}
return max;
}
}

Binary file not shown.

View File

@ -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);
}
}