Advertisement
giganciprogramowania

wisielec

Jun 15th, 2021
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.19 KB | None | 0 0
  1. ////////////////////////////////////HTML/////////////////////////////////
  2.  
  3. <!DOCTYPE html>
  4. <html lang="pl">
  5. <head>
  6. <title>Wisielec</title>
  7. <meta charset="utf-8">
  8. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  9. <meta name="viewport" content="width=device-width, initial-scale=1">
  10.  
  11. <!-- import the webpage's stylesheet -->
  12. <link rel="stylesheet" href="/style.css">
  13. <link rel="icon" href="https://cdn.glitch.com/fbbbb34f-0b8d-49c9-afe0-d55182ec0908%2Fwis.png?v=1608563089741">
  14. <!-- import the webpage's javascript file -->
  15. <script src="/script.js" defer></script>
  16. </head>
  17. <body>
  18.  
  19. <div id="kontener">
  20.  
  21.  
  22. <h1>Wisielec</h1>
  23.  
  24. <p id="gra"><!--tutaj będziemy wyświetlać zasłonięte hasło i jeśli dobrze odgadiemy to będzie odkrywana dana litera-->
  25.  
  26. </p>
  27.  
  28.  
  29. <label>Podaj literkę</label>
  30. <input id="litera" type="text" maxlength="1"><!--pole do wpisywania liter-->
  31.  
  32. <button id="ok">Ok</button>
  33. <!-- przycisk pojawiający się na koniec gry-->
  34. <button id="reset">reset </button>
  35.  
  36. <!--tutaj będziemy wyświetlać komunikaty typu przegrana/zwycięstwo/ brak literki/ powtórzona literka-->
  37. <h3 id="komunikat">
  38.  
  39. </h3>
  40.  
  41.  
  42. <div><!--miejsce gdzie będzie pojawiać się szubienica-->
  43.  
  44. <img id="wisielec" src="https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F1.png?v=1585147286506" width="300">
  45.  
  46. </div>
  47.  
  48. </div>
  49.  
  50. </body>
  51. </html>
  52.  
  53.  
  54.  
  55.  
  56. //////////////////////////////////CSS//////////////////////////////////////
  57.  
  58. @import url('https://fonts.googleapis.com/css2?family=Black+Ops+One&family=Bungee+Outline&display=swap');
  59.  
  60. body {
  61. font-family: 'Black Ops One', cursive;
  62. font-size:30px;
  63. }
  64.  
  65. h1 {
  66.  
  67. color: #373fff;
  68.  
  69. }
  70.  
  71. img{
  72. display:none;
  73. }
  74.  
  75. #kontener{
  76.  
  77. width:1000px;
  78. margin-left:auto;
  79. margin-right:auto;
  80. text-align:center;
  81.  
  82. }
  83.  
  84. input{
  85. font-family: 'Black Ops One', cursive;
  86. width:50px;
  87. height:50px;
  88. font-size:35px;
  89. }
  90.  
  91. button{
  92. width:200px;
  93. height:50px;
  94. background-color: #fa4a0a;
  95. color: white;
  96. cursor:pointer;
  97. font-size: 16px;
  98. border-radius: 4px;
  99. transition-duration: 0.4s;
  100. border: 2px solid #fa4a0a;
  101. text-transform:uppercase;
  102. font-family: 'Black Ops One', cursive;
  103.  
  104. }
  105.  
  106. button:hover {
  107. background-color: white;
  108. color: black;
  109.  
  110. }
  111.  
  112. p{letter-spacing:4px;}
  113.  
  114. .aktywny{
  115.  
  116. display:block;
  117.  
  118. }
  119.  
  120. .ukryty{
  121.  
  122. display:none;
  123.  
  124. }
  125.  
  126.  
  127. //////////////////////////////////////////JS///////////////////////////////////////////
  128.  
  129. //tablica na wyrazy
  130.  
  131. const wyrazy = ['giganci','funkcja','wisielec'];
  132.  
  133. //tablica na adresy do grafik
  134. const tabObrazki=['https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F0.png?v=1623760735527',
  135. 'https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F1.png?v=1623760735604',
  136. 'https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F2.png?v=1623760735890',
  137. 'https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F3.png?v=1623760735703',
  138. 'https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F4.png?v=1623760735867',
  139. 'https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F5.png?v=1623760735857',
  140. 'https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F6.png?v=1623760735876',
  141. 'https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F7.png?v=1623760735751',
  142. 'https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F8.png?v=1623760735918',
  143. 'https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F9.png?v=1623760735966',
  144. 'https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F10.png?v=1623760735998'];
  145.  
  146. // losowy wyraz z tablicy wyrazy
  147. const wyraz = wyrazy[Math.floor(Math.random() * wyrazy.length)];
  148.  
  149. // tablica z odpowiedziami zawiera przesłonięte hasło które stopniowo będziemy odsłaniać w grze
  150. const odpowiedzi = [];
  151.  
  152. //zmienna informująca czy po podaniu literki udało isę trafić
  153. let czyTrafiony = false;
  154.  
  155. //szanse w grze musi być taka wartość ponieważ mamy tyle grafik
  156. let szanse = 11;
  157.  
  158. //tablica przechowująca użyte już litery
  159.  
  160. const uzyte=[];
  161.  
  162. //zmienna przechowująca info ile pozostało liter do odgadnięcia
  163. let pozostaleLitery = wyraz.length;
  164.  
  165.  
  166.  
  167. //przygotowanie zakrytego wylosowanego wyrazu
  168. for (let i = 0; i < wyraz.length; i++) {
  169.  
  170. odpowiedzi[i] = '_';
  171.  
  172.  
  173. }
  174. //wyświetlanie tablicy zasłoniętego hasła każdy element w tablicy czyli _ łączymy ze spacją
  175. document.getElementById('gra').textContent = odpowiedzi.join(' ');
  176.  
  177.  
  178.  
  179.  
  180.  
  181. //zdarzenie na kliknięcie przycisku ok
  182. document.getElementById('ok').addEventListener('click', function() {
  183.  
  184. // przed każdym nowym zatwierdzeniem literki ustawiamy tą zmienna na false
  185. czyTrafiony = false;
  186.  
  187. //czyścimy wyświetlanie komunikatu
  188. document.getElementById('komunikat').textContent = '';
  189.  
  190. //zmienna przechowująca literkę gracza
  191. const strzal = document.getElementById('litera').value;
  192.  
  193.  
  194. document.getElementById('litera').value = '';
  195.  
  196. if (strzal.length == 0) {
  197. document.getElementById('komunikat').textContent =
  198. "Proszę, podaj jedną literkę";
  199. }
  200.  
  201. else if(uzyte.includes(strzal)){
  202.  
  203. document.getElementById('komunikat').textContent =
  204. 'Ta litera została już podana';
  205. }
  206. else {
  207.  
  208. uzyte.push(strzal);
  209.  
  210. //przeszukujemy dane slowo litera po literce i sprawdzamy czy gdzieś jest ta sama litera co nasz strzal jeśli tak to odsłaniamy w tablicy odpowiedzi tą literę
  211. for (let j = 0; j < wyraz.length; j++) {
  212. if (wyraz[j] == strzal) {
  213. czyTrafiony = true;
  214. odpowiedzi[j] = strzal;;//odsłonięcie litery w haśle
  215. pozostaleLitery--;
  216.  
  217. //aktualizujemy wyświetlanie naszego hasła
  218. document.getElementById('gra').textContent = odpowiedzi.join(' ');
  219. }
  220. }
  221.  
  222. //zwyciestwo
  223.  
  224. if (pozostaleLitery == 0) {
  225. document.getElementById('ok').disabled = true;
  226. document.getElementById('litera').disabled = true;
  227. document.getElementById('komunikat').textContent =
  228. 'Brawo odgadnięte hasło to:' + wyraz;
  229.  
  230. }
  231.  
  232. //utrata szansy, rysowanie wisielca
  233.  
  234. if (czyTrafiony == false) {
  235. ustawObrazek();
  236. szanse--;
  237.  
  238. //pzegrana
  239. if (szanse == 0) {
  240. document.getElementById('ok').disabled = true;
  241. document.getElementById('litera').disabled = true;
  242. document.getElementById('komunikat').textContent =
  243. 'Przegrana,szukane słowo to:' + wyraz;
  244. }
  245. }
  246. }
  247. });
  248.  
  249.  
  250.  
  251. function ustawObrazek() {
  252.  
  253. //wybieramy z tablicy odpowiedni adres zdjęcia i ustawiamy jako source obrazka
  254. document.getElementById('wisielec').src=tabObrazki[szanse-1];
  255. //wyświetlanie obrazka
  256. document.getElementById('wisielec').style.display='block';
  257. }
  258.  
  259.  
  260.  
  261. document.getElementById('reset').addEventListener('click', function() {
  262.  
  263. //odświeżenie całej strony
  264. window.location.reload();
  265.  
  266. });
  267.  
  268.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement