snake fini
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -29,6 +29,7 @@ public class Sautoir extends JComponent {
|
||||
fenetre.setSize(250, 250);
|
||||
fenetre.setLocation(0, 0);
|
||||
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
fenetre.setAlwaysOnTop(true);
|
||||
fenetre.setLayout(layout);
|
||||
for (int i = 0; i != 25; i++) {
|
||||
fenetre.add(new Sautoir());
|
||||
|
||||
BIN
DEV2.1/TP10/05_Degres/Conversion.class
Normal file
BIN
DEV2.1/TP10/05_Degres/Conversion.class
Normal file
Binary file not shown.
BIN
DEV2.1/TP10/05_Degres/Degres.class
Normal file
BIN
DEV2.1/TP10/05_Degres/Degres.class
Normal file
Binary file not shown.
BIN
DEV2.1/TP10/05_Degres/Fenetre.class
Normal file
BIN
DEV2.1/TP10/05_Degres/Fenetre.class
Normal file
Binary file not shown.
BIN
DEV2.1/TP10/05_Degres/GestionJTextField.class
Normal file
BIN
DEV2.1/TP10/05_Degres/GestionJTextField.class
Normal file
Binary file not shown.
BIN
DEV2.1/TP10/05_Degres/Main.class
Normal file
BIN
DEV2.1/TP10/05_Degres/Main.class
Normal file
Binary file not shown.
@@ -7,6 +7,7 @@ public class Fenetre extends JFrame {
|
||||
this.setSize(500, 600);
|
||||
this.setLocation(100, 100);
|
||||
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
this.setAlwaysOnTop(true);
|
||||
this.setLayout(new GridLayout(1, 1));
|
||||
LectureFichier lecture = new LectureFichier();
|
||||
EcritureFichier ecriture = new EcritureFichier("test", lecture.getCoordY(), lecture.getNbPoints());
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
0
DEV2.3/TP03/git.txt
Normal file
0
DEV2.3/TP03/git.txt
Normal file
@@ -9,17 +9,17 @@ public class Connexion {
|
||||
|
||||
public Connexion() {
|
||||
try {
|
||||
Connection cnx = DriverManager.getConnection(
|
||||
"jdbc:mariadb://dwarves.iut-fbleau.fr/simoes",
|
||||
"simoes", "simoes"
|
||||
);
|
||||
|
||||
try {
|
||||
Class.forName("org.mariadb.jdbc.Driver");
|
||||
} catch (ClassNotFoundException e2) {
|
||||
System.err.println("Problème de pilote.");
|
||||
}
|
||||
|
||||
Connection cnx = DriverManager.getConnection(
|
||||
"jdbc:mariadb://dwarves.iut-fbleau.fr/simoes",
|
||||
"simoes", "simoes"
|
||||
);
|
||||
|
||||
try {
|
||||
PreparedStatement pst = cnx.prepareStatement(
|
||||
"SELECT SUM(points), competiteur FROM pays GROUP BY competiteur ASC;"
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -5,17 +5,16 @@ import java.util.ArrayDeque;
|
||||
public class Fenetre extends JFrame {
|
||||
|
||||
public Fenetre() {
|
||||
this.setSize(500, 500);
|
||||
this.setSize(460, 483);
|
||||
this.setLocation(100, 100);
|
||||
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
this.setLayout(new GridLayout(1, 1));
|
||||
ArrayDeque<Point> coordSnake = new ArrayDeque<>();
|
||||
for (int i = 0; i != 5; i++) {
|
||||
coordSnake.addLast(new Point(i+5, 5));
|
||||
}
|
||||
JGrilleDeJeu grille = new JGrilleDeJeu(this, coordSnake);
|
||||
grille.setSize(new Dimension(500, 500));
|
||||
this.add(grille);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
@@ -24,14 +24,13 @@ public class JGrilleDeJeu extends JComponent {
|
||||
this.controleur = new ControleurClavier();
|
||||
this.fenetre.addKeyListener(controleur);
|
||||
this.directionActuelle = "Right";
|
||||
this.intervalleTimer = 150;
|
||||
this.intervalleTimer = 100;
|
||||
|
||||
Random r = new Random();
|
||||
int coordXPomme = Math.abs(r.nextInt() % TAILLE_GRILLE);
|
||||
int coordYPomme = Math.abs(r.nextInt() % TAILLE_GRILLE);
|
||||
|
||||
this.posPomme = new Point(coordXPomme, coordYPomme);
|
||||
|
||||
this.grille[coordXPomme][coordYPomme] = 'r';
|
||||
|
||||
this.timer = new Timer();
|
||||
@@ -47,6 +46,8 @@ public class JGrilleDeJeu extends JComponent {
|
||||
secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight());
|
||||
}
|
||||
|
||||
int tailleCase = this.getWidth()/TAILLE_GRILLE;
|
||||
|
||||
for (int i = 0; i != TAILLE_GRILLE; i++) {
|
||||
for (int j = 0; j != TAILLE_GRILLE; j++) {
|
||||
switch (grille[i][j]) {
|
||||
@@ -60,11 +61,12 @@ public class JGrilleDeJeu extends JComponent {
|
||||
secondPinceau.setColor(Color.ORANGE);
|
||||
}
|
||||
|
||||
|
||||
secondPinceau.fillRect(
|
||||
this.getWidth()/TAILLE_GRILLE*i+1,
|
||||
this.getHeight()/TAILLE_GRILLE*j+1,
|
||||
this.getWidth()/TAILLE_GRILLE-2,
|
||||
this.getHeight()/TAILLE_GRILLE-2
|
||||
tailleCase*i+1,
|
||||
tailleCase*j+1,
|
||||
tailleCase-2,
|
||||
tailleCase-2
|
||||
);
|
||||
|
||||
}
|
||||
@@ -72,7 +74,29 @@ public class JGrilleDeJeu extends JComponent {
|
||||
}
|
||||
|
||||
public void avancerSnake() {
|
||||
this.coordSnake.removeFirst();
|
||||
|
||||
// ======== TON CODE REMPLACE ICI LA LOGIQUE DU DÉPLACEMENT ==========
|
||||
boolean mangePomme = this.coordSnake.getLast().equals(this.posPomme);
|
||||
if (!mangePomme) {
|
||||
this.coordSnake.removeFirst(); // avance normale
|
||||
}
|
||||
|
||||
Point tete = this.coordSnake.getLast();
|
||||
switch (directionActuelle) {
|
||||
case "Right": tete = new Point(tete.x + 1, tete.y); break;
|
||||
case "Left": tete = new Point(tete.x - 1, tete.y); break;
|
||||
case "Up": tete = new Point(tete.x, tete.y - 1); break;
|
||||
case "Down": tete = new Point(tete.x, tete.y + 1); break;
|
||||
}
|
||||
this.coordSnake.addLast(tete);
|
||||
|
||||
if (mangePomme) {
|
||||
Random r = new Random();
|
||||
posPomme = new Point(r.nextInt(TAILLE_GRILLE), r.nextInt(TAILLE_GRILLE));
|
||||
}
|
||||
// ==================================================================
|
||||
|
||||
// Gestion de la direction selon les touches pressées
|
||||
if (!this.controleur.getTouches().isEmpty()) {
|
||||
String toucheAModifier = this.controleur.getTouches().removeFirst();
|
||||
switch (this.directionActuelle) {
|
||||
@@ -97,56 +121,15 @@ public class JGrilleDeJeu extends JComponent {
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
switch (this.directionActuelle) {
|
||||
case "Right":
|
||||
this.coordSnake.addLast(new Point(this.coordSnake.getLast().x+1, this.coordSnake.getLast().y));
|
||||
break;
|
||||
case "Left":
|
||||
this.coordSnake.addLast(new Point(this.coordSnake.getLast().x-1, this.coordSnake.getLast().y));
|
||||
break;
|
||||
case "Up":
|
||||
this.coordSnake.addLast(new Point(this.coordSnake.getLast().x, this.coordSnake.getLast().y-1));
|
||||
break;
|
||||
case "Down":
|
||||
this.coordSnake.addLast(new Point(this.coordSnake.getLast().x, this.coordSnake.getLast().y+1));
|
||||
break;
|
||||
}
|
||||
|
||||
// Efface la grille
|
||||
for (int i = 0; i != TAILLE_GRILLE; i++) {
|
||||
for (int j = 0; j != TAILLE_GRILLE; j++) {
|
||||
this.grille[i][j] = 'g';
|
||||
}
|
||||
}
|
||||
|
||||
if (this.coordSnake.getLast().equals(this.posPomme)) {
|
||||
Random r = new Random();
|
||||
int coordXPomme = Math.abs(r.nextInt() % TAILLE_GRILLE);
|
||||
int coordYPomme = Math.abs(r.nextInt() % TAILLE_GRILLE);
|
||||
|
||||
this.posPomme = new Point(coordXPomme, coordYPomme);
|
||||
|
||||
Point coordQueue = this.coordSnake.removeFirst();
|
||||
Point coordAvantQueue = this.coordSnake.getFirst();
|
||||
Point aAjouter;
|
||||
|
||||
if (coordAvantQueue.equals(new Point(coordQueue.x+1, coordQueue.y))) {
|
||||
aAjouter = new Point(coordQueue.x-1, coordQueue.y);
|
||||
}
|
||||
else if (coordAvantQueue.equals(new Point(coordQueue.x-1, coordQueue.y))) {
|
||||
aAjouter = new Point(coordQueue.x+1, coordQueue.y);
|
||||
}
|
||||
else if (coordAvantQueue.equals(new Point(coordQueue.x, coordQueue.y+1))) {
|
||||
aAjouter = new Point(coordQueue.x, coordQueue.y-1);
|
||||
}
|
||||
else {
|
||||
aAjouter = new Point(coordQueue.x, coordQueue.y+1);
|
||||
}
|
||||
this.coordSnake.addFirst(aAjouter);
|
||||
this.coordSnake.addFirst(coordQueue);
|
||||
}
|
||||
|
||||
try {
|
||||
int compteur = this.coordSnake.size();
|
||||
for (Point point : this.coordSnake) {
|
||||
@@ -161,7 +144,6 @@ public class JGrilleDeJeu extends JComponent {
|
||||
}
|
||||
|
||||
this.grille[posPomme.x][posPomme.y] = 'r';
|
||||
|
||||
this.repaint();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BIN
TD_TP1.pdf
Normal file
BIN
TD_TP1.pdf
Normal file
Binary file not shown.
17
conclusion.txt
Normal file
17
conclusion.txt
Normal file
@@ -0,0 +1,17 @@
|
||||
TD/TP 2 : Duel d'Interfaces (CLI vs. GUI)
|
||||
|
||||
Chronomètre explorateur de fichiers (GUI) : 1m 19s
|
||||
Chronomètre terminal (CLI) : 16s (avec rename)
|
||||
|
||||
Lorsque l'utilisateur est suffisament expérimenté, il sera toujours plus rapide et efficace avec la CLI qu'avec
|
||||
la GUI. Pour un utilisateur lambda, il reste plus rapide de renommer chaque fichier individuellement plutôt que
|
||||
de prendre le temps d'essayer de comprendre une commande. Si on cherche à être optimal, la CLI reste imbattable car on
|
||||
peut réaliser l'entièreté de l'opération avec une seule commande, tandis que la GUI nécessite d'alterner plusieurs fois
|
||||
entre souris et clavier pour renommer chaque fichier un par un. Cette solution reste abordable dans le cas présent (avec
|
||||
15 fichiers), mais elle deviendrait ingérable avec une quantité de données conséquente (avec 1000 fichiers par exemple),
|
||||
où l'utilisation du terminal deviendrait presque indispensable.
|
||||
|
||||
Commandes utilisées :
|
||||
|
||||
rename .jpg .png *.jpg
|
||||
rename .txt .md *.txt
|
||||
BIN
simoes_lukas_but2_tp1_tp2_ihm
Normal file
BIN
simoes_lukas_but2_tp1_tp2_ihm
Normal file
Binary file not shown.
0
tp2_cli_vs_gli/photo-04.png
Normal file
0
tp2_cli_vs_gli/photo-04.png
Normal file
0
tp2_cli_vs_gli/photo-05.png
Normal file
0
tp2_cli_vs_gli/photo-05.png
Normal file
0
tp2_cli_vs_gli/photo-06.png
Normal file
0
tp2_cli_vs_gli/photo-06.png
Normal file
0
tp2_cli_vs_gli/photo-07.png
Normal file
0
tp2_cli_vs_gli/photo-07.png
Normal file
0
tp2_cli_vs_gli/rapport_v1.md
Normal file
0
tp2_cli_vs_gli/rapport_v1.md
Normal file
0
tp2_cli_vs_gli/rapport_v2.md
Normal file
0
tp2_cli_vs_gli/rapport_v2.md
Normal file
0
tp2_cli_vs_gli/rapport_v3.md
Normal file
0
tp2_cli_vs_gli/rapport_v3.md
Normal file
0
tp2_cli_vs_gli/rapport_v4.md
Normal file
0
tp2_cli_vs_gli/rapport_v4.md
Normal file
0
tp2_cli_vs_gli/rapport_v5.md
Normal file
0
tp2_cli_vs_gli/rapport_v5.md
Normal file
0
tp2_cli_vs_gli/rapport_v6.md
Normal file
0
tp2_cli_vs_gli/rapport_v6.md
Normal file
0
tp2_cli_vs_gli/rapport_v7.md
Normal file
0
tp2_cli_vs_gli/rapport_v7.md
Normal file
0
tp2_cli_vs_gli/rapport_v8.md
Normal file
0
tp2_cli_vs_gli/rapport_v8.md
Normal file
BIN
tp2_cli_vs_gli/simoes_lukas_tp1_tp2_ihm
Normal file
BIN
tp2_cli_vs_gli/simoes_lukas_tp1_tp2_ihm
Normal file
Binary file not shown.
Reference in New Issue
Block a user