Advertisement
giganciprogramowania

wisielec

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