tp2Imunes - devMadelaine - Q1ControleBlancDev32

This commit is contained in:
2023-12-18 21:05:47 +01:00
parent 24cc7baddc
commit 1fc92e50c3
32 changed files with 1034 additions and 3 deletions

Binary file not shown.

View File

@@ -0,0 +1,5 @@
public interface Donjon {
public Piece apres();
public Piece avant();
public Piece ici();
}

View File

@@ -0,0 +1,98 @@
import org.mariadb.jdbc.*;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class DonjonBD implements Donjon {
private int idPiece;
private int contenu;
private Connection connexion;
public DonjonBD(){
try{
this.ouvrirConnexion();
PreparedStatement requete = this.connexion.prepareStatement(
"SELECT idPiece,contenu FROM Piece");
ResultSet resultat = requete.executeQuery();
requete.close();
if (resultat.next()){
this.idPiece = resultat.getInt("idPiece");
this.contenu = resultat.getInt("contenu");
}
resultat.close();
}
catch(SQLException e){
System.out.println(e);
this.fermerConnexion();
}
}
@Override
public Piece apres(){
try{
PreparedStatement requete = this.connexion.prepareStatement(
"SELECT idPiece,contenu FROM Piece WHERE idPiece=(Select apres FROM Piece WHERE idPiece=?)");
requete.setInt(1, this.idPiece);
ResultSet resultat = requete.executeQuery();
requete.close();
if (resultat.next()){
this.idPiece = resultat.getInt("idPiece");
this.contenu = resultat.getInt("contenu");
}
resultat.close();
return new PieceConcrete(this.contenu);
}
catch(SQLException e){
return null;
}
}
@Override
public Piece avant(){
try{
PreparedStatement requete = this.connexion.prepareStatement(
"SELECT idPiece,contenu FROM Piece WHERE apres=?");
requete.setInt(1, this.idPiece);
ResultSet resultat = requete.executeQuery();
requete.close();
if (resultat.next()){
this.idPiece = resultat.getInt("idPiece");
this.contenu = resultat.getInt("contenu");
}
resultat.close();
return new PieceConcrete(this.contenu);
}
catch(SQLException e){
return null;
}
}
@Override
public Piece ici() {
return new PieceConcrete(this.contenu);
}
public void fermerConnexion(){
try {
this.connexion.close();
} catch (SQLException e) {
}
}
public void ouvrirConnexion() throws SQLException {
try {
try {
Class.forName("org.mariadb.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new RuntimeException("ClassNotFoundException", e);
}
this.connexion = DriverManager.getConnection(
"jdbc:mariadb://dwarves.iut-fbleau.fr/williatt",
"williatt", "OscarSQL92");
} catch (SQLException e) {
throw new SQLException("Connexion au serveur impossible ! Verifiez votre connexion internet puis reessayez",
e);
}
}
}

Binary file not shown.

View File

@@ -0,0 +1,38 @@
import java.util.*;
public class DonjonLocal implements Donjon {
private List<Piece> couloir;
private int position;
public DonjonLocal() {
this.couloir = new ArrayList<>();
this.position = 0;
this.remplirCouloir(50);
}
@Override
public Piece apres() {
this.position = (this.position+1)%this.couloir.size();
return this.couloir.get(this.position);
}
@Override
public Piece avant() {
this.position = (this.position+(this.couloir.size()-1))%this.couloir.size();
return this.couloir.get(this.position);
}
@Override
public Piece ici() {
return this.couloir.get(this.position);
}
private void remplirCouloir(int nbPiece) {
int i;
for (i = 0; i < nbPiece; i++) {
Piece piece = new PieceConcrete();
this.couloir.add(piece);
}
}
}

Binary file not shown.

View File

@@ -0,0 +1,28 @@
public class Main{
public static void main (String[] args){
Donjon sametlenoob = new DonjonLocal();
VueShadock oscarDansLeDonjonDeSamet = new VueShadock(sametlenoob, 3);
System.out.println(oscarDansLeDonjonDeSamet);
oscarDansLeDonjonDeSamet.avance();
System.out.println(" ===> "+ oscarDansLeDonjonDeSamet);
oscarDansLeDonjonDeSamet.avance();
System.out.println(" ===> "+ oscarDansLeDonjonDeSamet);
oscarDansLeDonjonDeSamet.recule();
System.out.println(" <=== "+ oscarDansLeDonjonDeSamet);
oscarDansLeDonjonDeSamet.recule();
System.out.println(" <=== "+ oscarDansLeDonjonDeSamet);
oscarDansLeDonjonDeSamet.recule();
System.out.println(" <=== "+ oscarDansLeDonjonDeSamet);
oscarDansLeDonjonDeSamet.avance();
System.out.println(" ===> "+ oscarDansLeDonjonDeSamet);
oscarDansLeDonjonDeSamet.avance();
System.out.println(" ===> "+ oscarDansLeDonjonDeSamet);
}
}

Binary file not shown.

View File

@@ -0,0 +1,15 @@
public abstract class Piece {
protected int contenu;
public Piece(int contenu) {
this.contenu = contenu;
}
public int getContenu() {
return contenu;
}
public String toString(){
return ""+this.contenu;
}
}

Binary file not shown.

View File

@@ -0,0 +1,19 @@
import java.util.Random;
public class PieceConcrete extends Piece {
public PieceConcrete(int n){
super(n);
}
public PieceConcrete(){
super(0);
Random r = new Random();
int n = r.nextInt(10);
this.contenu = n;
}
public int getContenu(){
return super.getContenu();
}
}

Binary file not shown.

View File

@@ -0,0 +1,57 @@
public class VueShadock {
private Piece[] listePiece;
private Donjon donjon;
private boolean isAvance; // true si la derniere direction est avance() / false si derniere direction est recule()
public VueShadock(Donjon donjon, int porteeVision) {
this.donjon = donjon;
this.listePiece = new PieceConcrete[porteeVision];
int i, taille=this.listePiece.length;
for (i=0; i<taille; i++){
this.listePiece[i] = this.donjon.apres();
}
this.isAvance = true;
}
public void avance(){
int i, taille=(this.listePiece.length-1);
if (this.isAvance){
for (i=0; i<taille; i++){
this.listePiece[i] = this.listePiece[i+1];
}
this.listePiece[taille] = this.donjon.apres();
}
else{
for (i=0; i<=taille; i++){
this.listePiece[i] = this.donjon.apres();
}
}
this.isAvance =true;
}
public void recule(){
int i, taille=(this.listePiece.length-1);
if (this.isAvance == false){
for (i=taille; i>0; i--){
this.listePiece[i] = this.listePiece[i-1];
}
this.listePiece[0] = this.donjon.avant();
}
else{
for (i=taille; i>=0; i--){
this.listePiece[i] = this.donjon.avant();
}
}
this.isAvance = false;
}
@Override
public String toString() {
String resultat = new String();
for (Piece piece : this.listePiece){
resultat += piece+" ";
}
return resultat;
}
}