diff options
Diffstat (limited to 'sem_5/HLIN510_Web')
| -rw-r--r-- | sem_5/HLIN510_Web/index.html | 30 | ||||
| -rw-r--r-- | sem_5/HLIN510_Web/naval.html | 42 | ||||
| -rw-r--r-- | sem_5/HLIN510_Web/panier.html | 20 | ||||
| -rw-r--r-- | sem_5/HLIN510_Web/php.php | 15 | ||||
| -rw-r--r-- | sem_5/HLIN510_Web/styles.css | 63 | ||||
| -rw-r--r-- | sem_5/HLIN510_Web/tp2/Mastermind.php | 74 | ||||
| -rw-r--r-- | sem_5/HLIN510_Web/tp2/Rapport_TER_2019.pdf | bin | 0 -> 193816 bytes | |||
| -rw-r--r-- | sem_5/HLIN510_Web/tp2/master.php | 93 |
8 files changed, 337 insertions, 0 deletions
diff --git a/sem_5/HLIN510_Web/index.html b/sem_5/HLIN510_Web/index.html new file mode 100644 index 0000000..348b1de --- /dev/null +++ b/sem_5/HLIN510_Web/index.html @@ -0,0 +1,30 @@ + +<!DOCTYPE html> +<html lang="fr"> + <head> + <meta charset="utf-8"> + <title>INFOCOM : vente de materiel informatique</title> + <link rel="stylesheet" href="./styles.css"> + </head> + <body> + <h1 id="titre"> INFOCOM</h1> <h2> Vente de materiel informatique</h2> + <div class="barre"><a href=#HDD><div class="onglet">Disques durs</div></a><a href=#periphs><div class= "onglet">Claviers et souris</div></a><a href=#Divers><div class ="onglet">Divers</div></a><a href="./panier.html"> +<div class="onglet"> Commander</div></a><a href="./naval.html"><div class="onglet">Bonus</div></a></div> + <div id="HDD"><h2 class="categorie"> Disques Durs</h2><table><tr class="entete"><td>Produit</td><td> Prix </td> <td>Description</td> </tr> + <tr><td>Disque dur Seagate 500go</td><td>100 euros</td><td>Dim : 135x87x30, temps d'accés moyen 12ms</td></tr> + <tr><td>Disque dur Western 750go</td><td>120 euros</td><td>Dim : 155x88x32, temps d'accés moyen 15ms</td></tr> + <tr><td>Disque dur Externe 500go</td><td>115 euros</td><td>Dim : 120x78x32, temps d'accés moyen 20ms, USB2, 2,5 pouces</td></tr> + </table></div> + <div id="periphs"><h2 class="categorie"> Les claviers et souris</h2><table><tr class="entete"><td>Produit</td><td> Prix </td> <td>Description</td> </tr> + <tr><td>clavier Logitech</td><td>10 euros</td><td>filaire USB2, controles multimedia</td></tr> + <tr><td>souris Logitech</td><td>12 euros</td><td>optique; filaire USB2</td></tr> + <tr><td>clavier souris sans-fil</td><td>35 euros</td><td>recepteur USB2</td></tr> + </table></div> + <div id="Divers"><h2 class="categorie"> Divers</h2><table><tr class="entete"><td>Produit</td><td> Prix </td> <td>Description</td> </tr> + <tr><td>Enceintes 5W</td><td>30 euros</td><td>filaire USB2</td></tr> + <tr><td>Tapis de Souris</td><td>5 euros</td><td></td></tr> + </table></div> + + <footer> <p>INFOCOM : le leader de la vente de materiel informatique</p><p> <a href="urldesconditions"> Condition generales de ventes </p></footer> + </body> +</html> diff --git a/sem_5/HLIN510_Web/naval.html b/sem_5/HLIN510_Web/naval.html new file mode 100644 index 0000000..da9cbfd --- /dev/null +++ b/sem_5/HLIN510_Web/naval.html @@ -0,0 +1,42 @@ +<!DOCTYPE html>
+<html lang="fr">
+ <head>
+ <meta charset="utf-8">
+ <title>Panier INFOCOM : vente de materiel informatique</title>
+ </head>
+ <body>
+ <form>
+ <table>
+ <tr><td></td><td>A</td><td>B</td><td>C</td><td>D</td><td>E</td></tr>
+ <tr><td>1</td>
+ <td><input type="submit" name="A1" value="?"></td>
+ <td><input type="submit" name="B1" value="?"></td>
+ <td><input type="submit" name="C1" value="?"></td>
+ <td><input type="submit" name="D1" value="?"></td>
+ <td><input type="submit" name="E1" value="?"></td></tr>
+ <tr><td>2</td>
+ <td><input type="submit" name="A2" value="?"></td>
+ <td><input type="submit" name="B2" value="?"></td>
+ <td><input type="submit" name="C2" value="?"></td>
+ <td><input type="submit" name="D2" value="?"></td>
+ <td><input type="submit" name="E2" value="?"></td></tr>
+ <tr><td>3</td>
+ <td><input type="submit" name="A3" value="?"></td>
+ <td><input type="submit" name="B3" value="?"></td>
+ <td><input type="submit" name="C3" value="?"></td>
+ <td><input type="submit" name="D3" value="?"></td>
+ <td><input type="submit" name="E3" value="?"></td></tr>
+ <tr><td>4</td>
+ <td><input type="submit" name="A4" value="?"></td>
+ <td><input type="submit" name="B4" value="?"></td>
+ <td><input type="submit" name="C4" value="?"></td>
+ <td><input type="submit" name="D4" value="?"></td>
+ <td><input type="submit" name="E4" value="?"></td></tr>
+ <tr><td>5</td>
+ <td><input type="submit" name="A5" value="?"></td>
+ <td><input type="submit" name="B5" value="?"></td>
+ <td><input type="submit" name="C5" value="?"></td>
+ <td><input type="submit" name="D5" value="?"></td>
+ <td><input type="submit" name="E5" value="?"></td></tr>
+</table>
+</form>
diff --git a/sem_5/HLIN510_Web/panier.html b/sem_5/HLIN510_Web/panier.html new file mode 100644 index 0000000..afe9a3b --- /dev/null +++ b/sem_5/HLIN510_Web/panier.html @@ -0,0 +1,20 @@ +<!DOCTYPE html>
+<html lang="fr">
+ <head>
+ <meta charset="utf-8">
+ <title>Panier INFOCOM : vente de materiel informatique</title>
+ <link rel="stylesheet" href="./styles.css">
+ </head>
+<body id="commande">
+ <h1> Formulaire de commande</h1>
+ <form id="panierform">
+ Quantité de disques durs <input type="text" name="qdd" placeholder="Nb de disques"></br>
+ <select name="modele" size="1"><option selected> HDD Seagate 500GO (100e)<option> HDD Western 750GO (120e)<option>HDD externe 500Go (115e)</select></br>
+ clavier logitech (10e) <input name="souris"type="checkbox"> souris logitech (12e) <input name="souris"type="checkbox"> clavier souris sans fils (35e) <input name="souris" type="checkbox"> </br>
+ enceintes 5W (30 e) <input name="enceintes" type="radio"> tapis de souris (5e) <input name="tapis" type="radio"> </br>
+ Adresse email <input type="text" name="mail" placeholder="Saissisez email"></br>
+ Nom <input type="text" name="nom"></br>
+ <input type="submit" value="Commander">
+
+
+</body>
diff --git a/sem_5/HLIN510_Web/php.php b/sem_5/HLIN510_Web/php.php new file mode 100644 index 0000000..fe8175f --- /dev/null +++ b/sem_5/HLIN510_Web/php.php @@ -0,0 +1,15 @@ +<?php
+ echo 'allo ';
+
+function factorielle ($n){
+ if ($n == 0){
+ return 1;
+ }
+ else {
+ return $n*factorielle($n-1);
+ }
+}
+
+ $tmp = factorielle(10);
+ echo $tmp;
+?>
diff --git a/sem_5/HLIN510_Web/styles.css b/sem_5/HLIN510_Web/styles.css new file mode 100644 index 0000000..9d55372 --- /dev/null +++ b/sem_5/HLIN510_Web/styles.css @@ -0,0 +1,63 @@ +.barre {
+ width: 100%;
+ height: 2%;
+ background: #F00000;
+ text-align: center;
+}
+.onglet{
+ display: inline-block;
+ margin-top: 5px;
+ margin-bottom: 5px;
+ margin-left: 1px;
+ margin-right: 1px;
+ background: #900000;
+ padding : 5px 5px 5px 5px;
+}
+head{
+ text-align: center;
+}
+body {
+ background-color: #636972;
+ color:white;
+ text-align:center;
+}
+footer {
+ border-top: 2px solid;
+ border-color: #900000;
+ position: fixed;
+ width:100%;
+ background-color: grey;
+ bottom: 0%;
+ text-align : center;
+ margin-left: auto;
+}
+#HDD{
+ margin-left: auto;
+ text-align:left;
+ margin-left: 4%;
+}
+#periphs{
+ margin-left: auto;
+ text-align:left;
+ margin-left: 4%;
+}
+#Divers{
+ margin-left: auto;
+ text-align:left;
+ margin-left: 4%;
+}
+
+a {
+ color: white;
+}
+.entete {
+ font-weight: bold;
+ text-align:center;
+}
+
+#commande{
+ text-align: left;
+}
+#panierform{
+ margin: auto;
+}
diff --git a/sem_5/HLIN510_Web/tp2/Mastermind.php b/sem_5/HLIN510_Web/tp2/Mastermind.php new file mode 100644 index 0000000..548af3a --- /dev/null +++ b/sem_5/HLIN510_Web/tp2/Mastermind.php @@ -0,0 +1,74 @@ +<?php +interface iMastermind { + public function __construct($taille=4); + public function test($code); + public function getEssais(); + public function getTaille(); +} + +/** classe dont une instance est un jeu de mastermind */ +class Mastermind implements iMastermind { + /** code à découvrir chaine de car compris entre 0 et 9 */ + protected $code=""; + + /** liste des essais */ + protected $lessai=array(); + + /** constructeur par défaut : génération d'un code aléatoire de taille + * chiffres différents + */ + public function __construct($taille=4){ + for($i=0;$i<$taille;$i++){ + $c=rand(0,9); // nouveau chiffre + $this->code.="$c"; + } + } + /** teste la validité d'une chaîne code et retourne un booléen : + * - que des chiffres ; + * - de même taille que $this->code + */ + public function valide($code){ + if(!is_string($code) || strlen($code)!=strlen($this->code) + || !ctype_digit($code)){ + return false; + } + return true; + } + /** teste une chaîne de caractères par rapport au code et retourne un + * tableau de 2 entiers : ( nb de chiffres bien placés, nb de chiffres mal + * placés ou false si invalide + */ + public function test($code){ + if(!$this->valide($code)) + return false; + $res=array("bon"=>0, "mal"=>0); + $tampon=$this->code; + for($i=0;$i<strlen($code);$i++){ // boucle des biens placés + if($tampon[$i]==$code[$i]){ + $tampon[$i]='Y'; // afin de ne plus le prendre en compte + $res["bon"]++; + } + } // fin de la boucle des biens placés + for($i=0;$i<strlen($code);$i++){ // boucle des mals placés + $pos = strpos($tampon,$code[$i]); + if (!($pos === false)) { + $res["mal"]++; + $tampon[$pos]='Y'; + } + } // fin de boucle des mals placés + $this->lessai[$code]=$res; + return $res; + } + + /** retourne la taille du code */ + public function getTaille () { + return strlen($this->code); + } + public function getEssais () { + return $this->lessai; + } +} +// $m=new Mastermind(); //pour tester +// print_r($m); +// print_r($m->test("1234")); +?> diff --git a/sem_5/HLIN510_Web/tp2/Rapport_TER_2019.pdf b/sem_5/HLIN510_Web/tp2/Rapport_TER_2019.pdf Binary files differnew file mode 100644 index 0000000..c20b4ca --- /dev/null +++ b/sem_5/HLIN510_Web/tp2/Rapport_TER_2019.pdf diff --git a/sem_5/HLIN510_Web/tp2/master.php b/sem_5/HLIN510_Web/tp2/master.php new file mode 100644 index 0000000..58f8e26 --- /dev/null +++ b/sem_5/HLIN510_Web/tp2/master.php @@ -0,0 +1,93 @@ +<?php +//include "Mastermind.php"; // PLUS NÉCESSAIRE AVEC AUTOLOAD ! +function __autoload($classname){ // avant le session_start ! + include './' . $classname . '.php'; +} +session_start(); +if (isset($_POST['nouveau'])){ // SI nouvelle partie + $_SESSION=array(); +} +ini_set('display_errors', 1); error_reporting(E_ALL); +?> +<!doctype html> +<html lang="fr"> +<head> +<meta charset="utf-8" /> +<title>Site de jeu : Mastermind</title> +</head> +<body> +<h1 align="center">Mastermind</h1> +<form method="post"> +<p>Veuillez saisir successivement des combinaisons de + +<?php +$i=1; +if(isset($_SESSION['jeu'])){ // restauration objet Mastermind + $jeu=$_SESSION['jeu']; + // print_r($jeu); // DEBUG + $taille=$jeu->getTaille(); +}else { // début de partie + if(!empty($_GET['taille'])){ + $taille=(int)$_GET['taille']; + }else{ + $taille=4; + } + $jeu=new Mastermind($taille); + $_SESSION['jeu']=$jeu; +} +echo $taille; +?> chiffres jusqu'à la victoire ! +</p> +<table> + <tr> + <th align="left" valign="middle">Numéro</th> + <th align="left" valign="middle">Proposition</th> + <th align="left" valign="middle">Bien placé(s)</th> + <th align="left" valign="middle">Mal placé(s)</th> + </tr> +<?php + foreach($jeu->getEssais() as $code=>$res){ + echo "<tr><td>$i</td><td>".$code."</td><td>".$res['bon']. + "</td><td>".$res['mal']."</td></tr>\n"; + $i++; + } +if (!empty($_POST['prop'])){ // une proposition + $r=$jeu->test($_POST['prop']); // résultat + + if ($r===false){ // proposition invalide + echo "<tr><td>Incorrect</td><td>".$_POST['prop']. + "</td><td></td><td></td></tr>\n"; + }else { // valide ! + echo "<tr><td>$i</td><td>".$_POST['prop']."</td><td>".$r["bon"]. + "</td><td>".$r["mal"]."</td></tr>\n"; + $_SESSION['jeu']=$jeu; + $i++; + } + if ($r===false || $r["bon"]!=$taille){ // tq pas gagné ! + echo "<tr><td>$i</td><td>"; + echo "<input type='text' name='prop' autofocus size='".$jeu->getTaille(). + "'</td><td></td><td></td></tr>\n"; +?> + </table> + <input type="submit" value="OK"> +<?php + }else{ // GAGNE +?> + <tr><td></td><td>GAGNE !</td><td></td></tr> + </table> +<?php + } +}else{ // pas de proposition + echo "<tr><td>$i</td><td>"; + echo "<input type='text' name='prop' autofocus size='".$jeu->getTaille(). + "'</td><td></td><td></td></tr>\n"; +?> + </table> + <input type="submit" value="OK"> +<?php +} +?> + <input type="submit" name="nouveau" value="Nouvelle Partie"> + </form> + </body> +</html> |
