1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
| <!DOCTYPE html>
<html>
<head>
<title>Jeu</title>
<style>
body {
margin: 0;
padding: 0;
font-family: sans-serif;
font-family: 'Pacifico', cursive;
}
div {
width: 100%;
}
img[usemap] {
border: none;
height: auto;
max-width: 100%;
width: auto;
}
.container {
color:#ffffff;
font-size: 30px;
}
.svg-heart svg {
--dim: 3em;
width: var(--dim);
height: var(--dim);
fill: transparent;
stroke: #000;
stroke-width: .5;
}
.fill-heart {
fill: #EFD;
stroke: #080;
}
</style>
</head>
<body>
<map name="testmap" id="zones_image">
<area
shape="rect"
coords="570,195,660,275"
data-nom="bleu"
/>
<area
shape="poly"
coords="1027,266,1031,268,1034,271,1035,274,1033,279,1029,282,1021,282,1016,278,1017,271,1023,265,1024,261,1027,266"
data-nom="jaune"
/>
</map>
<img usemap="#testmap" src="Fond.png" STYLE="position:absolute; top:250; left:50">
<!-- pour utilisation des coeurs -->
<svg style="display:none">
<symbol viewBox="-1 0 22 20" id="empty-heart" xmlns="http://www.w3.org/2000/svg">
<path d="M10 3.22l-.61-.6a5.5 5.5 0 0 0-7.78 7.77L10 18.78l8.39-8.4a5.5 5.5 0 0 0-7.78-7.77l-.61.61z"></path>
</symbol>
</svg>
<script type="text/javascript">
let compt = 0;
let vie = 3;
let balises_area = Array.from(
document
.getElementById("zones_image") // identifiant de la balise "map"
.getElementsByTagName("area")
);
balises_area.forEach(area => { // parcours de toutes les balises "area"
area.addEventListener( // ajout d'un gestionnaire d'évènement à une balise
"click"
, evenement_clic => {
let area = evenement_clic["target"];
let result = prompt("Entre le nom du jeu :", "");
if (result === area["dataset"]["nom"]) { // area["dataset"]["nom"] contient la valeur de la balise "data-nom"
compt += 10;
document.getElementById("champDuPrompt").innerHTML = compt;
}
else {
let msg;
vie -= 1;
// mise à jour nbr vies
setNbrVies(vie);
// traitement résultat
if (vie == 0) {
msg = "GAME OVER";
}
else {
msg = "Il ne vous reste plus que " + vie + " vies";
}
// diffère l'affichage de la boîte alert
setTimeout(() => alert(msg), 100);
}
const elemSelect = document.getElementById("nbdevies");
elemSelect.addEventListener("change", (e) => {
setNbrVies("nbdevies");
});
const elemHeart = document.querySelectorAll(".svg-heart use");
function setNbrVies(nbr) {
elemHeart.forEach((svg, ind) => {
svg.classList.remove("fill-heart");
if (ind < nbr) {
svg.classList.add("fill-heart");
}
});
}
// initialisation des coeurs plein
setNbrVies(vie);
document.getElementById("nbdevies").innerHTML = vie;
}
);
});
</script>
<div class="container">
<DIV STYLE="position:absolute; top:250; left:50">
Score : <span id="champDuPrompt"></span>
Vies : <span id="nbdevies"></span>
<div class="svg-heart">
<svg><use href="#empty-heart"></use></svg>
<svg><use href="#empty-heart"></use></svg>
<svg><use href="#empty-heart"></use></svg>
</div>
</DIV>
</div>
</body>
</html> |