Compare commits
12 Commits
0a7a56c388
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 50e0d7fa5f | |||
| 5ecc182ab5 | |||
| f5cf74c048 | |||
| ee09e8c08b | |||
| 55817ce6d6 | |||
|
|
a975ac1d33 | ||
|
|
18ee85061e | ||
|
|
dd482ff45b | ||
|
|
faee76411a | ||
|
|
5e69e80785 | ||
|
|
050afa3837 | ||
|
|
27d2e423d6 |
11
DEV/Makefile
Normal file
11
DEV/Makefile
Normal 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
BIN
DEV/img/p4.img
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 MiB |
328
DEV/jeu_principal.c
Normal file
328
DEV/jeu_principal.c
Normal 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
28
DEV/jeu_principal.h
Normal 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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
DEV3.2/TP05/01_Fusion/Main.class
Normal file
BIN
DEV3.2/TP05/01_Fusion/Main.class
Normal file
Binary file not shown.
94
DEV3.2/TP05/01_Fusion/Main.java
Normal file
94
DEV3.2/TP05/01_Fusion/Main.java
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
import java.util.Queue;
|
||||||
|
import java.util.ArrayDeque;
|
||||||
|
import java.awt.*;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
|
||||||
|
|
||||||
|
private static <T extends Comparable<? super T>> ArrayDeque<T>[] scinder(ArrayDeque<T> file) {
|
||||||
|
|
||||||
|
if (file == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
ArrayDeque<T> file1 = new ArrayDeque<>();
|
||||||
|
ArrayDeque<T> file2 = new ArrayDeque<>();
|
||||||
|
int compteur = 0;
|
||||||
|
while (!file.isEmpty()) {
|
||||||
|
if (compteur % 2 == 0) {
|
||||||
|
file1.addLast(file.removeFirst());
|
||||||
|
} else {
|
||||||
|
file2.addLast(file.removeFirst());
|
||||||
|
}
|
||||||
|
compteur++;
|
||||||
|
}
|
||||||
|
|
||||||
|
ArrayDeque<T>[] files = (ArrayDeque<T>[]) new ArrayDeque[2];
|
||||||
|
files[0] = file1;
|
||||||
|
files[1] = file2;
|
||||||
|
return files;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static <T extends Comparable<? super T>> ArrayDeque<T> fusionner(ArrayDeque<T> file1, ArrayDeque<T> file2) {
|
||||||
|
ArrayDeque<T> fileFusionnee = new ArrayDeque<>();
|
||||||
|
while (!file1.isEmpty() && !file2.isEmpty() && file1 != null && file2 != null) {
|
||||||
|
T element1 = file1.peek();
|
||||||
|
T element2 = file2.peek();
|
||||||
|
|
||||||
|
if (element1.compareTo(element2) <= 0) {
|
||||||
|
fileFusionnee.addLast(element1);
|
||||||
|
file1.removeFirst();
|
||||||
|
} else {
|
||||||
|
fileFusionnee.addLast(element2);
|
||||||
|
file2.removeFirst();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while (!file1.isEmpty() && file1 != null) {
|
||||||
|
fileFusionnee.addLast(file1.removeFirst());
|
||||||
|
}
|
||||||
|
|
||||||
|
while (!file2.isEmpty() && file1 != null) {
|
||||||
|
fileFusionnee.addLast(file2.removeFirst());
|
||||||
|
}
|
||||||
|
|
||||||
|
return fileFusionnee;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static <T extends Comparable<? super T>> ArrayDeque<T> trier(ArrayDeque<T> file) {
|
||||||
|
|
||||||
|
if (file.size() <= 1) {
|
||||||
|
return file;
|
||||||
|
}
|
||||||
|
|
||||||
|
ArrayDeque<T>[] files = Main.scinder(file);
|
||||||
|
ArrayDeque<T> file1 = Main.trier(files[0]);
|
||||||
|
ArrayDeque<T> file2 = Main.trier(files[1]);
|
||||||
|
return Main.fusionner(file1, file2);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
ArrayDeque<Double> file = new ArrayDeque<>();
|
||||||
|
|
||||||
|
file.addLast(new Double(45.2D));
|
||||||
|
file.addLast(new Double(-12.75D));
|
||||||
|
file.addLast(new Double(89.0D));
|
||||||
|
file.addLast(new Double(3.1415D));
|
||||||
|
file.addLast(new Double(57.8D));
|
||||||
|
file.addLast(new Double(0.0D));
|
||||||
|
file.addLast(new Double(-45.6D));
|
||||||
|
file.addLast(new Double(999.99D));
|
||||||
|
file.addLast(new Double(48.547D));
|
||||||
|
file.addLast(new Double(15.8D));
|
||||||
|
|
||||||
|
file = Main.trier(file);
|
||||||
|
|
||||||
|
System.out.print("[");
|
||||||
|
for (Double nombre : file) {
|
||||||
|
System.out.print(nombre + ", ");
|
||||||
|
}
|
||||||
|
System.out.println("]");
|
||||||
|
}
|
||||||
|
}
|
||||||
0
DEV3.2/TP06/03_Hachage/Dictionnaire.java
Normal file
0
DEV3.2/TP06/03_Hachage/Dictionnaire.java
Normal file
0
DEV3.2/TP07/01_Repertoires/RACINE/fichier1.txt
Normal file
0
DEV3.2/TP07/01_Repertoires/RACINE/fichier1.txt
Normal file
BIN
DEV3.2/TP07/01_Repertoires/Repertoires.class
Normal file
BIN
DEV3.2/TP07/01_Repertoires/Repertoires.class
Normal file
Binary file not shown.
43
DEV3.2/TP07/01_Repertoires/Repertoires.java
Normal file
43
DEV3.2/TP07/01_Repertoires/Repertoires.java
Normal 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));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
38
DEV3.2/TP07/02_Prefixe/Main.java
Normal file
38
DEV3.2/TP07/02_Prefixe/Main.java
Normal 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());
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
38
DEV3.2/TP07/02_Prefixe/Prefixe.java
Normal file
38
DEV3.2/TP07/02_Prefixe/Prefixe.java
Normal 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());
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
DEV3.2/TP08/01_Tri/Tri.class
Normal file
BIN
DEV3.2/TP08/01_Tri/Tri.class
Normal file
Binary file not shown.
67
DEV3.2/TP08/01_Tri/Tri.java
Normal file
67
DEV3.2/TP08/01_Tri/Tri.java
Normal 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
BIN
DEV3.2/TP08/02_Authentification/Authentification.class
Normal file
BIN
DEV3.2/TP08/02_Authentification/Authentification.class
Normal file
Binary file not shown.
80
DEV3.2/TP08/02_Authentification/Authentification.java
Normal file
80
DEV3.2/TP08/02_Authentification/Authentification.java
Normal 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
347
reponses_tp3.txt
Normal 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>
|
||||||
Reference in New Issue
Block a user