Compare commits

...

10 Commits

Author SHA1 Message Date
50e0d7fa5f Delete SAE11_2025/Makefile 2025-12-05 12:59:40 +01:00
5ecc182ab5 Delete SAE11_2025/jeu 2025-12-05 12:59:36 +01:00
f5cf74c048 Delete SAE11_2025/img/p4.img 2025-12-05 12:59:25 +01:00
ee09e8c08b Delete SAE11_2025/jeu_principal.h 2025-12-05 12:59:19 +01:00
55817ce6d6 Delete SAE11_2025/jeu_principal.c 2025-12-05 12:58:54 +01:00
Simoes Lukas
a975ac1d33 TP for mathias PLACIDE--CONTRERAS LUKAS= GROS BG 2025-11-26 13:53:03 +01:00
Simoes Lukas
18ee85061e tp 2025-11-21 14:41:22 +01:00
Simoes Lukas
dd482ff45b tp7 2025-11-14 16:09:57 +01:00
Lukas
faee76411a fin image 1 2025-11-14 00:46:08 +01:00
Lukas
5e69e80785 sae de neuil 2025-11-13 14:10:50 +01:00
22 changed files with 980 additions and 0 deletions

11
DEV/Makefile Normal file
View File

@@ -0,0 +1,11 @@
jeu : jeu_principal.o
gcc -o jeu jeu_principal.o -lgraph
jeu_principal.o : jeu_principal.c jeu_principal.h
gcc -c jeu_principal.c -lgraph
clean :
rm *.o
run : jeu
./jeu

BIN
DEV/img/p4.img Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

BIN
DEV/jeu Executable file

Binary file not shown.

328
DEV/jeu_principal.c Normal file
View File

@@ -0,0 +1,328 @@
#include <stdio.h>
#include <stdlib.h>
#include <graph.h>
#include <time.h>
void affiche_grille(int grille[8][8], int nb_de_lignes, int nb_de_colonnes) {
int i, j;
for (i = 0; i < nb_de_lignes; i++) {
for (j = 0; j < nb_de_colonnes; j++) {
printf("%d ", grille[i][j]);
}
putchar('\n');
}
}
int verifie_si_taquin_complet(int grille[8][8], int nb_de_lignes, int nb_de_colonnes) {
int compteur = 0;
int i, j;
for (i = 0; i < nb_de_lignes; i++) {
for (j = 0; j < nb_de_colonnes; j++) {
if (grille[i][j] != compteur) {
return 0; /* Pas complelt */
}
compteur++;
}
}
return 1; /* Complet */
}
int peut_decaler_en_haut(int grille[8][8], int nb_de_lignes, int nb_de_colonnes) {
int i;
for (i = 0; i != nb_de_lignes; i++) {
if (grille[nb_de_colonnes-1][i] == 0) {
return 0;
}
}
return 1;
}
int peut_decaler_en_bas(int grille[8][8], int nb_de_lignes, int nb_de_colonnes) {
int i;
for (i = 0; i != nb_de_lignes; i++) {
if (grille[0][i] == 0) {
return 0;
}
}
return 1;
}
int peut_decaler_a_gauche(int grille[8][8], int nb_de_lignes, int nb_de_colonnes) {
int i;
for (i = 0; i != nb_de_colonnes; i++) {
if (grille[i][nb_de_lignes-1] == 0) {
return 0;
}
}
return 1;
}
int peut_decaler_a_droite(int grille[8][8], int nb_de_lignes, int nb_de_colonnes) {
int i;
for (i = 0; i != nb_de_colonnes; i++) {
if (grille[i][0] == 0) {
return 0;
}
}
return 1;
}
void mettre_a_jour_grille(int tab_image[8][8], int nb_de_lignes, int nb_de_colonnes, int decalage, int indice_case_vide_x, int indice_case_vide_y, int direction_decalage, int largeur_image, int hauteur_image) {
int pos_img_x;
int pos_img_y;
int pos_x;
int pos_y;
switch (direction_decalage) {
case 1: /* haut */
pos_img_x = (tab_image[indice_case_vide_x][indice_case_vide_y] % nb_de_colonnes) * largeur_image / nb_de_colonnes;
pos_img_y = tab_image[indice_case_vide_x][indice_case_vide_y] / nb_de_colonnes * hauteur_image / nb_de_lignes;
pos_x = indice_case_vide_y * (largeur_image / nb_de_colonnes);
pos_y = indice_case_vide_x * (hauteur_image / nb_de_lignes);
ChoisirCouleurDessin(CouleurParNom("white"));
RemplirRectangle(
pos_x + decalage*(indice_case_vide_y+1), pos_y + decalage*(indice_case_vide_x+1), largeur_image / nb_de_colonnes, hauteur_image / nb_de_lignes
);
pos_img_x = (tab_image[indice_case_vide_x-1][indice_case_vide_y] % nb_de_colonnes) * largeur_image / nb_de_colonnes;
pos_img_y = tab_image[indice_case_vide_x-1][indice_case_vide_y] / nb_de_colonnes * hauteur_image / nb_de_lignes;
pos_x = (indice_case_vide_y) * (largeur_image / nb_de_colonnes);
pos_y = (indice_case_vide_x-1) * (hauteur_image / nb_de_lignes);
ChargerImage("./img/p4.img",
pos_x + decalage * indice_case_vide_y + 10, pos_y + decalage * (indice_case_vide_x-1) + 10,
pos_img_x, pos_img_y,
largeur_image / nb_de_colonnes,
hauteur_image / nb_de_lignes
);
break;
case 2: /* bas */
pos_img_x = (tab_image[indice_case_vide_x][indice_case_vide_y] % nb_de_colonnes) * largeur_image / nb_de_colonnes;
pos_img_y = tab_image[indice_case_vide_x][indice_case_vide_y] / nb_de_colonnes * hauteur_image / nb_de_lignes;
pos_x = indice_case_vide_y * (largeur_image / nb_de_colonnes);
pos_y = indice_case_vide_x * (hauteur_image / nb_de_lignes);
ChoisirCouleurDessin(CouleurParNom("white"));
RemplirRectangle(
pos_x + decalage*(indice_case_vide_y+1), pos_y + decalage*(indice_case_vide_x+1), largeur_image / nb_de_colonnes, hauteur_image / nb_de_lignes
);
pos_img_x = (tab_image[indice_case_vide_x+1][indice_case_vide_y] % nb_de_colonnes) * largeur_image / nb_de_colonnes;
pos_img_y = tab_image[indice_case_vide_x+1][indice_case_vide_y] / nb_de_colonnes * hauteur_image / nb_de_lignes;
pos_x = (indice_case_vide_y) * (largeur_image / nb_de_colonnes);
pos_y = (indice_case_vide_x+1) * (hauteur_image / nb_de_lignes);
ChargerImage("./img/p4.img",
pos_x + decalage * indice_case_vide_y + 10, pos_y + decalage * (indice_case_vide_x+1) + 10,
pos_img_x, pos_img_y,
largeur_image / nb_de_colonnes,
hauteur_image / nb_de_lignes
);
break;
case 3: /* gauche */
printf("Coord case vide : %d | %d", indice_case_vide_x, indice_case_vide_y);
pos_img_x = (tab_image[indice_case_vide_x][indice_case_vide_y] % nb_de_colonnes) * largeur_image / nb_de_colonnes;
pos_img_y = tab_image[indice_case_vide_x][indice_case_vide_y] / nb_de_colonnes * hauteur_image / nb_de_lignes;
pos_x = indice_case_vide_y * (largeur_image / nb_de_colonnes);
pos_y = indice_case_vide_x * (hauteur_image / nb_de_lignes);
ChoisirCouleurDessin(CouleurParNom("white"));
RemplirRectangle(
pos_x + decalage*(indice_case_vide_y+1), pos_y + decalage*(indice_case_vide_x+1), largeur_image / nb_de_colonnes, hauteur_image / nb_de_lignes
);
pos_img_x = (tab_image[indice_case_vide_x][indice_case_vide_y-1] % nb_de_colonnes) * largeur_image / nb_de_colonnes;
pos_img_y = tab_image[indice_case_vide_x][indice_case_vide_y-1] / nb_de_colonnes * hauteur_image / nb_de_lignes;
pos_x = (indice_case_vide_y-1) * (largeur_image / nb_de_colonnes);
pos_y = (indice_case_vide_x) * (hauteur_image / nb_de_lignes);
ChargerImage("./img/p4.img",
pos_x + decalage * (indice_case_vide_y-1) + 10, pos_y + decalage * (indice_case_vide_x) + 10,
pos_img_x, pos_img_y,
largeur_image / nb_de_colonnes,
hauteur_image / nb_de_lignes
);
break;
case 4: /* droite */
pos_img_x = (tab_image[indice_case_vide_x][indice_case_vide_y] % nb_de_colonnes) * largeur_image / nb_de_colonnes;
pos_img_y = tab_image[indice_case_vide_x][indice_case_vide_y] / nb_de_colonnes * hauteur_image / nb_de_lignes;
pos_x = indice_case_vide_y * (largeur_image / nb_de_colonnes);
pos_y = indice_case_vide_x * (hauteur_image / nb_de_lignes);
ChoisirCouleurDessin(CouleurParNom("white"));
RemplirRectangle(
pos_x + decalage*(indice_case_vide_y+1), pos_y + decalage*(indice_case_vide_x+1), largeur_image / nb_de_colonnes, hauteur_image / nb_de_lignes
);
pos_img_x = (tab_image[indice_case_vide_x][indice_case_vide_y+1] % nb_de_colonnes) * largeur_image / nb_de_colonnes;
pos_img_y = tab_image[indice_case_vide_x][indice_case_vide_y+1] / nb_de_colonnes * hauteur_image / nb_de_lignes;
pos_x = (indice_case_vide_y+1) * (largeur_image / nb_de_colonnes);
pos_y = (indice_case_vide_x) * (hauteur_image / nb_de_lignes);
ChargerImage("./img/p4.img",
pos_x + decalage * (indice_case_vide_y+1) + 10, pos_y + decalage * (indice_case_vide_x) + 10,
pos_img_x, pos_img_y,
largeur_image / nb_de_colonnes,
hauteur_image / nb_de_lignes
);
break;
}
}
int main(void) {
int nb_de_lignes = 8;
int nb_de_colonnes = 8;
int decalage = 10;
int largeur_image = 1710;
int hauteur_image = 900;
int tab_image[8][8];
int i;
int j;
int compteur = 0;
int indice_case_vide_x = 0;
int indice_case_vide_y = 0;
srand(time(NULL));
for (i = 0; i != nb_de_lignes; i++) {
for (j = 0; j != nb_de_colonnes; j++) {
tab_image[i][j] = compteur;
compteur++;
}
}
for (i = 0; i != 100; i++) {
int rand_1_1 = (rand() % nb_de_lignes);
int rand_1_2 = (rand() % nb_de_colonnes);
while (rand_1_1 + rand_1_2 == 0) {
rand_1_1 = (rand() % nb_de_lignes);
rand_1_2 = (rand() % nb_de_colonnes);
i--;
}
int rand_2_1 = (rand() % nb_de_lignes);
int rand_2_2 = (rand() % nb_de_colonnes);
while (rand_2_1 + rand_2_2 == 0) {
rand_2_1 = (rand() % nb_de_lignes);
rand_2_2 = (rand() % nb_de_colonnes);
i--;
}
int temp = tab_image[rand_1_1][rand_1_2];
tab_image[rand_1_1][rand_1_2] = tab_image[rand_2_1][rand_2_2];
tab_image[rand_2_1][rand_2_2] = temp;
}
affiche_grille(tab_image, nb_de_lignes, nb_de_colonnes);
InitialiserGraphique();
CreerFenetre(10, 10, largeur_image + decalage * (nb_de_lignes+1), hauteur_image + decalage * (nb_de_colonnes+1));
for (i = 0; i < nb_de_lignes; i++) {
for (j = 0; j < nb_de_colonnes; j++) {
if (j == 0 && i == 0){
j++;
}
int pos_img_x = (tab_image[i][j] % nb_de_colonnes) * (largeur_image / nb_de_colonnes);
int pos_img_y = (tab_image[i][j] / nb_de_colonnes) * (hauteur_image / nb_de_lignes);
int pos_x = j * (largeur_image / nb_de_colonnes);
int pos_y = i * (hauteur_image / nb_de_lignes);
ChargerImage("./img/p4.img",
pos_x + decalage * j + 10, pos_y + decalage * i + 10,
pos_img_x, pos_img_y,
largeur_image / nb_de_colonnes,
hauteur_image / nb_de_lignes
);
}
}
while (!verifie_si_taquin_complet(tab_image, nb_de_lignes, nb_de_colonnes)) {
if (ToucheEnAttente()) {
int touche = Touche();
if (touche == XK_Up && peut_decaler_en_haut(tab_image, nb_de_lignes, nb_de_colonnes)) {
int temp = tab_image[indice_case_vide_x+1][indice_case_vide_y];
tab_image[indice_case_vide_x+1][indice_case_vide_y] = 0;
tab_image[indice_case_vide_x][indice_case_vide_y] = temp;
indice_case_vide_x++;
mettre_a_jour_grille(tab_image, nb_de_lignes, nb_de_colonnes, decalage, indice_case_vide_x, indice_case_vide_y, 1, largeur_image, hauteur_image);
} else if (touche == XK_Down && peut_decaler_en_bas(tab_image, nb_de_lignes, nb_de_colonnes)) {
int temp = tab_image[indice_case_vide_x-1][indice_case_vide_y];
tab_image[indice_case_vide_x-1][indice_case_vide_y] = 0;
tab_image[indice_case_vide_x][indice_case_vide_y] = temp;
indice_case_vide_x--;
mettre_a_jour_grille(tab_image, nb_de_lignes, nb_de_colonnes, decalage, indice_case_vide_x, indice_case_vide_y, 2, largeur_image, hauteur_image);
} else if (touche == XK_Left && peut_decaler_a_gauche(tab_image, nb_de_lignes, nb_de_colonnes)) {
int temp = tab_image[indice_case_vide_x][indice_case_vide_y+1];
tab_image[indice_case_vide_x][indice_case_vide_y+1] = 0;
tab_image[indice_case_vide_x][indice_case_vide_y] = temp;
indice_case_vide_y++;
mettre_a_jour_grille(tab_image, nb_de_lignes, nb_de_colonnes, decalage, indice_case_vide_x, indice_case_vide_y, 3, largeur_image, hauteur_image);
} else if (touche == XK_Right && peut_decaler_a_droite(tab_image, nb_de_lignes, nb_de_colonnes)) {
int temp = tab_image[indice_case_vide_x][indice_case_vide_y-1];
tab_image[indice_case_vide_x][indice_case_vide_y-1] = 0;
tab_image[indice_case_vide_x][indice_case_vide_y] = temp;
indice_case_vide_y--;
mettre_a_jour_grille(tab_image, nb_de_lignes, nb_de_colonnes, decalage, indice_case_vide_x, indice_case_vide_y, 4, largeur_image, hauteur_image);
}
affiche_grille(tab_image, nb_de_lignes, nb_de_colonnes);
}
}
ChargerImage("./img/p4.img",
10, 10,
0, 0,
largeur_image, hauteur_image
);
Touche();
FermerGraphique();
return EXIT_SUCCESS;
}

28
DEV/jeu_principal.h Normal file
View File

@@ -0,0 +1,28 @@
#ifndef JEU_PRINCIPAL_H
#define JEU_PRINCIPAL_H
void affiche_grille(int grille[8][8], int nb_de_lignes, int nb_de_colonnes);
/* Affichage de la grille dans la console */
int verifie_si_taquin_complet(int grille[8][8], int nb_de_lignes, int nb_de_colonnes);
/* Vérifie la condition de victoire */
int peut_decaler_en_haut(int grille[8][8], int nb_de_lignes, int nb_de_colonnes);
/* Vérifie si on peut décaler l'image en dessous de la case vide vers le haut */
int peut_decaler_en_bas(int grille[8][8], int nb_de_lignes, int nb_de_colonnes);
/* Vérifie si on peut décaler l'image au dessus de la case vide vers le bas */
int peut_decaler_a_gauche(int grille[8][8], int nb_de_lignes, int nb_de_colonnes);
/* Vérifie si on peut décaler l'image à droite de la case vide vers la gauche */
int peut_decaler_a_droite(int grille[8][8], int nb_de_lignes, int nb_de_colonnes);
/* Vérifie si on peut décaler l'image à gauche de la case vide vers la droite */
void mettre_a_jour_grille(int tab_image[8][8], int nb_de_lignes, int nb_de_colonnes, int decalage, int indice_case_vide_x, int indice_case_vide_y, int direction_decalage, int largeur_image, int hauteur_image);
/* Met à jour l'affichage des 2 cases concernées dans le cas d'un déplacement */
int main(void);
/* LANCEMENT DU JEU */
#endif

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

Binary file not shown.

View File

@@ -0,0 +1,43 @@
import java.awt.*;
import java.io.File;
import java.util.Arrays;
import java.util.ArrayList;
public class Repertoires {
private File valeur;
private ArrayList<Repertoires> fils;
public Repertoires(File racine) {
if (!racine.isDirectory()) {
this.valeur = racine;
this.fils = null;
} else {
this.fils = new ArrayList<>();
this.valeur = racine;
for (File fichier : racine.listFiles()) {
this.fils.add(new Repertoires(fichier));
}
}
}
public String toString(int nbRecursions) {
String aRenvoyer = "";
for (int i = 0; i != nbRecursions; i++) {
aRenvoyer += " ";
}
aRenvoyer += this.valeur.getName() + "\n";
if (this.fils != null) {
for (Repertoires fichier : this.fils) {
aRenvoyer += fichier.toString(nbRecursions + 1);
}
}
return aRenvoyer;
}
public static void main(String[] args) {
Repertoires racine = new Repertoires(new File(args[0]));
System.out.println(racine.toString(0));
}
}

View File

@@ -0,0 +1,38 @@
import java.awt.*;
import java.util.ArrayDeque;
public class Main {
public static void main(String[] args) {
ArrayDeque<String> pile = new ArrayDeque<>(args.length);
for (int i = 0; i != args.length; i++) {
try {
Integer.parseInt(args[i]);
pile.addFirst(args[i]);
} catch (NumberFormatException e) {
int n2 = Integer.parseInt(pile.removeFirst());
int n1 = Integer.parseInt(pile.removeFirst());
System.out.println(n2);
System.out.println(n1);
switch (args[i]) {
case "+":
pile.addFirst(n1 + n2 + "");
break;
case "-":
pile.addFirst(n1 - n2 + "");
break;
case "x":
pile.addFirst(n1 * n2 + "");
break;
case "/":
pile.addFirst(n1 / n2 + "");
}
}
}
System.out.println("= " + pile.removeFirst());
}
}

View File

@@ -0,0 +1,38 @@
import java.awt.*;
import java.util.ArrayDeque;
public class Main {
public static void main(String[] args) {
ArrayDeque<String> pile = new ArrayDeque<>(args.length);
for (int i = 0; i != args.length; i++) {
try {
Integer.parseInt(args[i]);
pile.addFirst(args[i]);
} catch (NumberFormatException e) {
int n2 = Integer.parseInt(pile.removeFirst());
int n1 = Integer.parseInt(pile.removeFirst());
System.out.println(n2);
System.out.println(n1);
switch (args[i]) {
case "+":
pile.addFirst(n1 + n2 + "");
break;
case "-":
pile.addFirst(n1 - n2 + "");
break;
case "x":
pile.addFirst(n1 * n2 + "");
break;
case "/":
pile.addFirst(n1 / n2 + "");
}
}
}
System.out.println("= " + pile.removeFirst());
}
}

Binary file not shown.

View File

@@ -0,0 +1,67 @@
import java.awt.*;
public class Tri {
private double valeur;
private Tri filsGauche;
private Tri filsDroit;
private boolean estVide;
public Tri() {
this.estVide = true;
}
public Tri(double valeur) {
this.estVide = false;
this.valeur = valeur;
}
public void ajouter(double valeur) {
if (this.estVide) {
this.valeur = valeur;
this.estVide = false;
return;
}
if (valeur < this.valeur) {
if (this.filsGauche == null) {
this.filsGauche = new Tri();
}
filsGauche.ajouter(valeur);
} else {
if (this.filsDroit == null) {
this.filsDroit = new Tri();
}
filsDroit.ajouter(valeur);
}
}
public String toString() {
String aRenvoyer = "";
if (this.filsGauche != null) {
aRenvoyer += this.filsGauche.toString();
}
aRenvoyer += this.valeur + " ";
if (this.filsDroit != null) {
aRenvoyer += this.filsDroit.toString();
}
return aRenvoyer;
}
public static void main(String[] args) {
Tri racine = new Tri();
for (String chaine : args) {
racine.ajouter(Double.parseDouble(chaine));
}
System.out.println(racine);
}
}

Binary file not shown.

View File

@@ -0,0 +1,80 @@
import java.awt.*;
import java.util.HashMap;
import java.util.Map;
import java.io.*;
public class Authentification {
private Map<String, String> dictionnaire;
public Authentification() {
this.dictionnaire = new HashMap<>();
}
public void ajouter(String username, String password) {
if (this.dictionnaire.get(username) != null) {
System.out.println("L'utilisateur '" + username + "' existe déjà.");
} else {
this.dictionnaire.put(username, password);
System.out.println("Utilisateur ajouté.");
}
}
public void authentifier(String username, String password) {
if (this.dictionnaire.get(username) == null) {
System.out.println("L'utilisateur '" + username + "' n'existe pas.");
} else if (!this.dictionnaire.get(username).equals(password)) {
System.out.println("Le mot de passe est incorrect.");
} else {
System.out.println("L'utilisateur '" + username + "' est authentifié.");
}
}
public void supprimer(String username) {
if (this.dictionnaire.get(username) == null) {
System.out.println("L'utilisateur '" + username + "' n'existe pas.");
} else {
this.dictionnaire.remove(username);
System.out.println("L'utilisateur '" + username + "' a été supprimé");
}
}
public static void main(String[] args) {
Authentification auth = new Authentification();
BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
String input = "";
while (!input.equals("quit")) {
System.out.print("> ");
try {
String[] ligne = console.readLine().split(" ");
input = ligne[0];
if (input.equals("add")) {
auth.ajouter(ligne[1], ligne[2]);
} else if (input.equals("auth")) {
auth.authentifier(ligne[1], ligne[2]);
} else if (input.equals("del")) {
auth.supprimer(ligne[1]);
} else if (input.equals("quit")) {
} else {
System.out.println("Commande non reconnue.");
}
} catch (IOException e) {
System.err.println("Erreur de la console");
} catch (ArrayIndexOutOfBoundsException e1) {
System.err.println("Erreur d'arguments");
}
}
}
}

347
reponses_tp3.txt Normal file
View File

@@ -0,0 +1,347 @@
----- TP03 -----
1.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="initial-scale=1,witdh=device-width">
<title>CEastwood</title>
<style>
ul {
list-style-type: none;
}
li {
wid
th: 500px;
padding-block-end: 50px;
margin-bottom: 5px;
padding-left: 10px;
padding-top: 3px;
padding-bottom: 3px;
}
li:nth-child(even) {
color: white;
font-style: normal;
background-color: grey;
}
li:nth-child(odd) {
background-color: lightgrey;
font-style: italic;
}
</style>
</head>
<body>
<h1>Mes films préférés de Clint Eastwood</h1>
<ul>
<li>Gran Torino (2008)</li>
<li>Impitoyable (1992)</li>
<li>Mystic River (2003)</li>
<li>Sur la route de Madison (1995)</li>
<li>Lettres d'Iwo Jima (2006)</li>
<li>L'Échange (2008)</li>
<li>Josey Wales hors-la-loi (1976)</li>
<li>Breezy (1973)</li>
</ul>
</body>
</html>
2.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Exercice 2</title>
<style>
main {
position: relative;
width: 300px;
height: 300px;
border-style: solid;
background-color: yellow;
color: red;
border-width: 6px;
border-radius: 15px;
}
header {
position: relative;
width:75px;
height:75px;
left: 60px;
top: 80px;
background-color: red;
border-radius:50px;
}
section {
position: relative;
width:75px;
height:75px;
left: 165px;
top: 7px;
background-color: red;
border-radius:50px;
}
aside {
position: relative;
width:200px;
height:50px;
left: 50px;
top: 50px;
background-color: red;
}
</style>
</head>
<body>
<main>
<header></header>
<section></section>
<aside></aside>
<footer></footer>
</main>
</body>
</html>
3.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Exercice 3</title>
<style>
ul {
width: 400px;
list-style-type: none;
border: solid;
border-width: 1px;
}
li {
position: relative;
display: inline;
}
img {
margin-top: 3px;
width: 100px;
height: 50px;
}
</style>
</head>
<body>
<ul>
<li><a href="https://developer.mozilla.org/docs/Web/HTML"><img src="html.png"></a></li>
<li><a href="https://developer.mozilla.org/docs/Web/CSS"><img src="css.png"></a></li>
<li><a href="https://developer.mozilla.org/docs/Web/Javascript"><img src="javascript.png"></a></li>
</ul>
</body>
</html>
4.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="initial-scale=1,witdh=device-width">
<link rel="stylesheet" href="style4.css">
<title>Document</title>
<style>
@media screen and (max-width:640px) {
nav {
display:none;
}
}
ul {
text-align: center;
padding:0;
}
li {
list-style-type: none;
list-style-position: inside;
display: inline-block;
margin-right: 2em;
font-size : 2em;
}
li:last-child{
margin-right:0;
}
article {
text-align: justify;
border : 1px solid grey;
padding : 1em;
}
</style>
</head>
<body>
<header>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/">About</a></li>
<li><a href="/">Contact</a></li>
</ul>
</nav>
</header>
<main>
<article>
<header>
<h1>Article title 1</h1>
</header>
<section>
<img src="https://picsum.photos/300/200" alt="">
<p>lorem ipsum</p>
</section>
</article>
<article>
<header>
<h1>Article title 2</h1>
</header>
<section>
<img src="https://picsum.photos/300/200" alt="">
<p>lorem ipsum</p>
</section>
</article>
<article>
<header>
<h1>Article title 3</h1>
</header>
<section>
<img src="https://picsum.photos/300/200" alt="">
<p>lorem ipsum</p>
</section>
</article>
<article>
<header>
<h1>Article title 3</h1>
</header>
<section>
<img src="https://picsum.photos/300/200" alt="">
<p>lorem ipsum</p>
</section>
</article>
</main>
</body>
</html>
5.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="initial-scale=1,witdh=device-width">
<link rel="stylesheet" href="style4.css">
<title>Document</title>
<style>
@media screen and (max-width:640px) {
nav {
display:none;
}
}
ul {
text-align: center;
padding:0;
}
li {
list-style-type: none;
list-style-position: inside;
display: inline-block;
margin-right: 2em;
font-size : 2em;
}
li:last-child{
margin-right:0;
}
article {
border:solid;
border-size:1px;
border-color: grey;
margin: 40px;
float: left;
text-align: justify;
border : 1px solid grey;
padding : 1em;
}
</style>
</head>
<body>
<header>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/">About</a></li>
<li><a href="/">Contact</a></li>
</ul>
</nav>
</header>
<main>
<article>
<header>
<h1>Article title 1</h1>
</header>
<section>
<img src="https://picsum.photos/300/200" alt="">
<p>lorem ipsum</p>
</section>
</article>
<article>
<header>
<h1>Article title 2</h1>
</header>
<section>
<img src="https://picsum.photos/300/200" alt="">
<p>lorem ipsum</p>
</section>
</article>
<article>
<header>
<h1>Article title 3</h1>
</header>
<section>
<img src="https://picsum.photos/300/200" alt="">
<p>lorem ipsum</p>
</section>
</article>
<article>
<header>
<h1>Article title 3</h1>
</header>
<section>
<img src="https://picsum.photos/300/200" alt="">
<p>lorem ipsum</p>
</section>
</article>
</main>
</body>
</html>