From 9fe033ea88c2f705ec18c232873d056e0c229d72 Mon Sep 17 00:00:00 2001 From: Gaspard Coulet Date: Wed, 28 Apr 2021 23:05:53 +0200 Subject: Initial commit --- sem_5/HLIN510_Web/tp2/Mastermind.php | 74 +++++++++++++++++++++++ sem_5/HLIN510_Web/tp2/Rapport_TER_2019.pdf | Bin 0 -> 193816 bytes sem_5/HLIN510_Web/tp2/master.php | 93 +++++++++++++++++++++++++++++ 3 files changed, 167 insertions(+) create mode 100644 sem_5/HLIN510_Web/tp2/Mastermind.php create mode 100644 sem_5/HLIN510_Web/tp2/Rapport_TER_2019.pdf create mode 100644 sem_5/HLIN510_Web/tp2/master.php (limited to 'sem_5/HLIN510_Web/tp2') 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 @@ +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;$ilessai[$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 new file mode 100644 index 0000000..c20b4ca Binary files /dev/null and b/sem_5/HLIN510_Web/tp2/Rapport_TER_2019.pdf differ 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 @@ + + + + + +Site de jeu : Mastermind + + +

Mastermind

+
+

Veuillez saisir successivement des combinaisons de + +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 ! +

+ + + + + + + +getEssais() as $code=>$res){ + echo "\n"; + $i++; + } +if (!empty($_POST['prop'])){ // une proposition + $r=$jeu->test($_POST['prop']); // résultat + + if ($r===false){ // proposition invalide + echo "\n"; + }else { // valide ! + echo "\n"; + $_SESSION['jeu']=$jeu; + $i++; + } + if ($r===false || $r["bon"]!=$taille){ // tq pas gagné ! + echo "\n"; +?> +
NuméroPropositionBien placé(s)Mal placé(s)
$i".$code."".$res['bon']. + "".$res['mal']."
Incorrect".$_POST['prop']. + "
$i".$_POST['prop']."".$r["bon"]. + "".$r["mal"]."
$i"; + echo "
+ + + GAGNE ! + +$i"; + echo "\n"; +?> + + + + +
+ + -- cgit v1.2.3