Tlačítkem Poskládej jiný počítač se hra vrátí na úvodní obrazovku a lze zvolit jiný obrázek.



Podobné dokumenty
Formuláře. Internetové publikování

Printris. Hra Printris je psána pomocí příkazů Javascriptu a standardních příkazů HTML.

ČERV. Hra Červ je psána pomocí příkazů Javascriptu a standardních příkazů HTML.

Další nutný soubor je laydiv.js, ve kterém jsou uloženy funkce pro zobrazování virů na ploše a funkce pro odkaz na Teachers Guide.

Tlačítko Teachers Guide obsahuje odkaz na stručný popis hry a její účel v projektu Ingot.

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ

118. </div> 119. </div> 120. <div class="box"> 121. <div class="inside-box"> 122. <img src="./img/drogo-and-daenerys.jpg" alt="kresba Droga a

SUM U3 SUM U4 SUM U5 SUM

Informační systémy 2008/2009. Radim Farana. Obsah. Aktivní serverové stránky ASP. Active Server Pages. Activex Data Objects. LDAP database.

Vývojařská Plzeň AngularJS

12. Základy HTML a formuláře v HTML

(X)HTML. Internetové publikování

Tlačítko Teachers Guide obsahuje odkaz na stručný popis hry a její účel v projektu Ingot.

JavaScript v praxi: Sokoban (5. přednáška)


TVORBA WEBOVÝCH STRÁNEK

Tlačítko Teachers Guide obsahuje odkaz na stručný popis hry a její účel v projektu Ingot.

HTML5. Tvoříme dynamick é aplikace. BY Jan Barášek (Baraja)

Minebot manuál (v 1.2)

Hromadné úpravy digitálních fotografií, metadata a úložiště

Proč Angular JS framework?

HTML Kapesní přehled. Lukáš Honek. w w w. h o n e k. b i z. Pravidla psaní kódu. Abecední přehled tagů, atributů, entit, konstant a událostí

Návrh a tvorba WWW stránek 1/38 PHP

Tlačítko Teachers Guide obsahuje odkaz na stručný popis hry a její účel v projektu Ingot.

novinky v HTML5 nové sémantické tagy canvas video geolocation local storage web workers

Název: VY_32_INOVACE_PG4102 Základní HTML značky. Autor: Mgr. Tomáš Javorský. Datum vytvoření: 05 / Ročník: 3

Zobrazování dat pomocí tabulek

Integrovaný agent obchodníka elektronického obchodu (IMA) Příručka správce

Internet cvičení. ZS 2009/10, Cvičení 3., Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

Specifikace reklamních formátů HTML 5 pro nasazení do ibillboard Ad Server Verze 2/2015

Internet 02 - Tvorba statických www stránek za pomoci HTML tagů

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ NÁVRH INTERNETOVÝCH STRÁNEK BAKALÁŘSKÁ PRÁCE FAKULTA PODNIKATELSKÁ ÚSTAV INFORMATIKY BRNO UNIVERSITY OF TECHNOLOGY

OBALKYKNIH.CZ API 3.0, IMPLEMENTACE PRO ALEPH OPAC

TVORBA WEBOVÝCH STRÁNEK

Instrukce pro webmastery

Maturitní otázka webové stránky (technologie tvorby webu) Co znamená pojem Web? Web, www stránky, celým názvem World Wide Web,

Šablonovací systém htmltmpl vypracoval: Michal Vajbar, Šablonovací systém htmltmpl

Databáze Caché CSP Custom Tags

První přihlášení do datové schránky krok za krokem

4. POČÍTAČOVÉ CVIČENÍ

Tvorba jednoduchých WWW stránek. VŠB - Technická univerzita Ostrava Katedra informatiky

VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra elektrotechniky a informatiky Obor Počítačové systémy. Dětské webové hry bakalářská práce

Webové formuláře v HTML5 a Web Forms 2.0

TH2E. Inteligentní senzor teploty, vlhkosti a rosného bodu s Ethernetovým rozhraním. 22. dubna 2016 w w w. p a p o u c h. c o m

Úvod do PHP s přihlédnutím k MySQL

Tvorba internetových aplikací v XHTML 2.0 BAKALÁŘSKÁ PRÁCE

VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra elektrotechniky a informatiky Obor Počítačové systémy

Grafické rozhraní pro práci s formuláři přes internet Graphic interface for working with forms placed on Internet. Bc.

První kapitola úvod do problematiky

Skriptovací jazyky. Obsah

Vyšší odborná škola a Střední škola,varnsdorf, příspěvková organizace. Šablona 13 VY 32 INOVACE

TME. Teploměry s přenosem dat po Ethernetu. Protokoly ASCII, HTTP (WEB), SMTP ( ), SNMP, MODBUS TCP, XML

Univerzita Pardubice. Centrální správa dokumentů

Anglická slovíčka

HTML5, getusermedia a jeho využití pro práci s kamerou

Postup se dle prohlížeče a operačního systému liší, vyberte prosím jaký prohlížeč a na jakém operačním systému používáte.

Bezpečnost webových aplikací

KAPITOLA 1 SOCIÁLNÍ SÍTĚ A PHP...17

SkautIS Remote Components absolventská práce

Raspberry Pi - security system

Fakulta stavební. znalostí studentů

Zranitelnosti webových aplikací. Vlastimil Pečínka, Seznam.cz Roman Kümmel, Soom.cz

TX20ETH. Měření rychlosti a směru větru. Inteligentní anemometr s Ethernetem. 11. března 2016 w w w. p a p o u c h. c o m

Informační a vzdělávací portál Jihomoravského kraje. VYTVÁŘENÍ DOKUMENTŮ Manuál tvorby dokumentů a pravidla pro zveřejňování příspěvků na portál

HTML5 IN EDUCATION AT THE DEPARTMENT OF COMPUTER SCIENCE OF THE FACULTY OF EDUCATION AT THE UNIVERSITY OF SOUTH BOHEMIA, ČESKÉ BUDĚJOVICE, CZ

DATA ARTICLE. AiP Beroun s.r.o.

Programování v jazyce JavaScript

Interaktivní mapy ÚAP Uživatelská příručka

České Budějovice, Emy Destinové 395

Postřehová hra. Zadání projektu. 1 Moje cíle

25. TVORBA HTML DIALOGŮ PRO PEVNÉ TVARY

Obrázky. Tag Význam Párový Výskyt. img obrázek ne. img video ne. map klikací mapa. area oblast v klikací mapě ne

}w!"#$%&'()+,-./012345<ya

UNIVERZITA PARDUBICE

Parametrizace, harmonogram

Uživatelský manuál Radekce-Online.cz

ÚVOD 3 SEZNÁMENÍ SE SYSTÉMEM 4

Statistika pro ( )

Specifikace standardních reklamních formátů na serverech idnes.cz a Lidovky.cz

Nutné kroky a nastavení prohlížeče pro přístup do systému REGIS. Autor: Ing. Marek Pučelík

Uživatelská příručka pro Účetní / Vedoucí finanční účtárny. Projekt DMS modul Faktury

Inovace bakalářského studijního oboru Aplikovaná chemie

HLEDEJCENY.mobi. Obsah. Mobilní verze e-shopu. Důvody instalace

Programování v jazyce JavaScript

TS-509 Pro Turbo NAS. instalační příručka

OFF - LINE. PRO ZAČÁTEČNÍKY Zdroje textů a obrázků

ZÁVĚREČNÁ STUDIJNÍ PRÁCE dokumentace

Programové vybavení počítačů operační systémy

Javascript. Javascript - jazyk

AJAX. Dynamické změny obsahu stránek

Popis. kolizi. režim. Funkce. klávesnice VAC. Zapnutí. a vypnutí

Provozní dokumentace. Seznam orgánů veřejné moci. Příručka pro administrátora krizového řízení

JavaScript 101. "Trocha života do statických stránek"

Rozměry, okraje a rámečky

VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra elektrotechniky a informatiky Obor Aplikovaná informatika

Jak připravit žákům trenažer pro cvičení jednoduchých dovedností

Měření konverzí pomocí HLEDEJCENY.cz

XML schémata XML teorie a praxe značkovacích jazyků (IZI238)

Pear - hruška Systém pro implementaci a distribuci znovupoužitelných komponent (v PHP) Strukturovaná knihovna open-source (PHP) skriptů Systém pro dis

Typický prvek kolekce pro české řazení

Transkript:

PUZZLE POČÍTAČE Hra Puzzle počítače je psána pomocí příkazů Javascriptu, skriptovacího jazyka PHP a standardních příkazů HTML. Před vlastním spuštěním hry je možné seznámit se s nejznámějšími komponenty výpočetní techniky. Po najetí myší na konkrétní zařízení se ozve hlasový doprovod, který pojmenuje zvolené zařízení. Úkolem hráče je poskládat obrázek podle výběru: stolní počítač buď s analogovým nebo LCD monitorem, notebook a smartphone, který je rozložen a náhodně zamíchán na 9 nebo 16 dílů (podle vybrané úrovně 1 nebo 2). Tlačítkem zamíchat se díly zvoleného obrázku náhodně zamíchají a začne běžet čas, který se zobrazuje na herní ploše. Po úspěšném ukončení se objeví okno s časem, který byl ke složení potřebný a se slovním vyhodnocením rychlosti hráče. Tlačítkem Poskládej jiný počítač se hra vrátí na úvodní obrazovku a lze zvolit jiný obrázek. Tlačítko Teachers Guide obsahuje odkaz na stručný popis hry a její účel v projektu Ingot. Popis hry Aktuální kód hry si můžete prohlédnout tak, že pravým tlačítkem myši se zobrazí menu, ze kterého je nutné zvolit Zobrazit zdrojový kód (Text se může mírně lišit podle používaného prohlížeče. Předchozí text platí pro Internet Explorer. Pro Mozilla Firefox je to text Zobrazit zdrojový kód stránky. )

Pomocí standardních příkazů OS Windows se text označí (př. kombinace kláves CTRL+A) a zkopíruje do schránky. (př. kombinace kláves CTRL+C) V libovolném textovém editoru, který umí pracovat s prostým textem (např. Notepad, který je součástí OS Windows)se otevře nový soubor a text se do něj ze schránky vloží.(př. kombinace kláves CTRL+V) Název souboru je libovolný, ale musí se uložit s příponou html nebo htm (standardní přípona souboru pro web) Uvedený soubor lze kdykoliv později prohlížet. Kód hry je dále uložen ve 2 souborech: games.js a wz_dragdrop.js Soubory je možné zkopírovat a prohlédnout. Stažení probíhá, tak, že v adresním řádku prohlížeče se smaže start.htm a nahradí př. js/games.js (soubory jsou uloženy v podsložce js) Stručný popis funkcí hry v jazyce Javascript Hra je, jak bylo již uvedeno výše napsána pomocí Javascriptu a příkazů HTML. Přímo v kódu jsou uvedeny v komentářových řádcích stručné nápovědy jednotlivých funkcí a prvků a popisy proměnných. K pochopení funkce je nutné zvládnout základy Javascriptu a HTML. Části kódu jsou pro zjednodušení opakovaných volání funkcí a procedur psány v jazyce PHP. Zkušenější programátor si může upravit tyto části např do jazyka VB script asp. Záleží na konkrétní platformě na níž bude hra umístěna. Zdrojový kód asp skriptů je umístěn níže: Skládá se ze 2 souborů. Kód hlavního spouštěcího souboru puzzle.php: <? include "common.php";?> <? $level = $_GET['level']; if ($level==1)?> var level=1; SET_DHTML(CURSOR_MOVE, "block_11","block_12","block_13", "block_21","block_22","block_23", "block_31","block_32","block_33" ); var block = new Array(); block[0] = "block_11"; block[1] = "block_12"; block[2] = "block_13"; block[3] = "block_21";

block[4] = "block_22"; block[5] = "block_23"; block[6] = "block_31"; block[7] = "block_32"; block[8] = "block_33"; function shuffle() var i; for (i=0; i < 90; i++) r1 = (Math.round(Math.random()*8)); r2 = (Math.round(Math.random()*8)); x1 = dd.elements[block[r1]].x; y1 = dd.elements[block[r1]].y; x2 = dd.elements[block[r2]].x; y2 = dd.elements[block[r2]].y; dd.elements[block[r1]].moveto(x2,y2); dd.elements[block[r2]].moveto(x1,y1); startclock(); function reset() dd.elements.block_11.moveto(100, 10); dd.elements.block_12.moveto(280, 10); dd.elements.block_13.moveto(460, 10); dd.elements.block_21.moveto(100, 190); dd.elements.block_22.moveto(280, 190); dd.elements.block_23.moveto(460, 190); dd.elements.block_31.moveto(100, 370); dd.elements.block_32.moveto(280, 370); dd.elements.block_33.moveto(460, 370); stopclock(); sekunda=0; document.puzzle.zobrcas.value = "Čas:"+sekunda; </script> <!-- Buttons --> <div style="position:absolute; top: 80px; left: 10px;"> <form name="puzzle"> <div class="button-green"> <a class="button" href="javascript:shuffle()">zamíchat</a> </div> <div class="button-blue"> <a class="button" href="javascript:reset()">restart</a> </div> <br /> <div class="button-red"> <a class="button" href="javascript:reset()">úroveň 1</a> </div> <div class="button-blue"> <a class="button" href="puzzle.php?priznak=<? print priznak?>&level=2">úroveň 2</a> </div>

<br /> <INPUT TYPE="button" NAME="zobrcas" VALUE ="Čas:0"> </div> <div style="position:absolute; top: 14px; left: 5px"> <h5><a href="javascript:teachers_guide()">příručka učitele</a></h5> </form> </div> <? Else?> <script type="text/javascript"> var level=2; SET_DHTML(CURSOR_MOVE, "block_11","block_12","block_13","block_14", "block_21","block_22","block_23","block_24", "block_31","block_32","block_33","block_34", "block_41","block_42","block_43","block_44" ); var block = new Array(); block[0] = "block_11"; block[1] = "block_12"; block[2] = "block_13"; block[3] = "block_14"; block[4] = "block_21"; block[5] = "block_22"; block[6] = "block_23"; block[7] = "block_24"; block[8] = "block_31"; block[9] = "block_32"; block[10] = "block_33"; block[11] = "block_34"; block[12] = "block_41"; block[13] = "block_42"; block[14] = "block_43"; block[15] = "block_44"; function shuffle() var i; for (i=0; i < 160; i++) r1 = (Math.round(Math.random()*15)); r2 = (Math.round(Math.random()*15));

x1 = dd.elements[block[r1]].x; y1 = dd.elements[block[r1]].y; x2 = dd.elements[block[r2]].x; y2 = dd.elements[block[r2]].y; dd.elements[block[r1]].moveto(x2,y2); dd.elements[block[r2]].moveto(x1,y1); startclock(); function reset() dd.elements.block_11.moveto(100, 10); dd.elements.block_12.moveto(235, 10); dd.elements.block_13.moveto(370, 10); dd.elements.block_14.moveto(505, 10); dd.elements.block_21.moveto(100, 145); dd.elements.block_22.moveto(235, 145); dd.elements.block_23.moveto(370, 145); dd.elements.block_24.moveto(505, 145); dd.elements.block_31.moveto(100, 280); dd.elements.block_32.moveto(235, 280); dd.elements.block_33.moveto(370, 280); dd.elements.block_34.moveto(505, 280); dd.elements.block_41.moveto(100, 415); dd.elements.block_42.moveto(235, 415); dd.elements.block_43.moveto(370, 415); dd.elements.block_44.moveto(505, 415); stopclock(); sekunda=0; document.puzzle.zobrcas.value = "Čas:"+sekunda; </script> </body> </html> <!-- Buttons --> <div style="position:absolute; top: 80px; left: 10px;"> <form name="puzzle"> <div class="button-green"> <a class="button" href="javascript:shuffle()">zamíchat</a> </div> <div class="button-blue"> <a class="button" href="javascript:reset()">restart</a> </div> <br /> <div class="button-blue"> <a class="button" href="puzzle.php?priznak=<? Print priznak?>&level=1">úroveň 1</a> </div> <div class="button-red"> <a class="button" href="javascript:reset()">úroveň 2</a> </div> <br /> <INPUT TYPE="button" NAME="zobrcas" VALUE ="Čas:0"> </div> <br />

</div> <div style="position:absolute; top: 14px; left: 5px"> <h5><a href="javascript:teachers_guide()">příručka učitele</a></h5> </form> </div> <??> <script type="text/javascript"> var timerid = null; var timerrunning = false; var sekunda =0; function stopclock() if(timerrunning) cleartimeout(timerid); timerrunning = false; function startclock() // Make sure the clock is stopped sekunda =0; stopclock(); showtime(); function showtime() sekunda++; document.puzzle.zobrcas.value = "Čas:"+sekunda; timerid = settimeout("showtime()",1000); timerrunning = true; var holdx = 0; /* X pos of the block I'm holding. */ var holdy = 0; /* Y pos of the block I'm holding. */ function my_pickfunc() /* A block is picked up. */ holdx = dd.obj.x; holdy = dd.obj.y; function my_dropfunc() /* A image is dropped - swap images */

var i; var moved = false; for (i in block) if (!isover(dd.elements[block[i]])) continue; b = block[i]; dd.obj.moveto(dd.elements[b].x,dd.elements[b].y); dd.elements[b].moveto(holdx, holdy); moved = true; if (!moved) dd.obj.moveto(holdx, holdy); checkend(); function isover(obj) if (obj == dd.obj) return false; if (dd.e.x < obj.x) return false; if (dd.e.y < obj.y) return false; if (dd.e.x > obj.x + obj.w) return false; if (dd.e.y > obj.y + obj.h) return false; return true; function checkend() var theend=1; var pos_x=100; var pos_y=10; if (block.length==9) increment=180; end_x=460; else increment=135; end_x=505; for (i=0;i<block.length;i++) if (dd.elements[block[i]].x!=pos_x dd.elements[block[i]].y!=pos_y) theend=0; if (pos_x==end_x) pos_x=100; pos_y+=increment;

else pos_x+=increment; if (theend==1) stopclock(); if (level==1) if (sekunda<15) window.alert("výborně, složil jsi puzzle za: "+sekunda+" sekund" + " jako blesk!"); if (sekunda>=15 && sekunda<40) window.alert("výborně, složil jsi puzzle za: "+sekunda+" sekund" + " s rychlostí myšky!"); if (sekunda>=40) window.alert("výborně, složil jsi puzzle za: "+sekunda+" sekund" + " ale, s rychlostí šneka!"); else if (sekunda<30) window.alert("výborně, složil jsi puzzle za: "+sekunda+" sekund" + " jako blesk!"); if (sekunda>=30 && sekunda<80) window.alert("výborně, složil jsi puzzle za: "+sekunda+" sekund" + " s rychlostí myšky!"); if (sekunda>=80) window.alert("výborně, složil jsi puzzle za: "+sekunda+" sekund" + " ale, s rychlostí šneka!"); </script> </body> </html> Kód pomocného souboru common.php:

<html> <head> <style type="text/css"> img border: 1px dashed #057 </style> <link rel="stylesheet" type="text/css" href="css/game.css" /> <meta http-equiv="content-type" content="text/html; charset=windows-1250"><style type="text/css"> <!-- body background-color: #CCC; --> </style></head> <body> <script type="text/javascript" src="js/wz_dragdrop.js"></script> <script type="text/javascript" src="js/games.js"></script> <? $priznak = $_GET['priznak']; switch ($priznak) case 1: $path_image="images/computer/"; break; case 2: $path_image="images/smartphone/"; break; case 3: $path_image="images/lcd/"; break; case 4: $path_image="images/notebook/"; break; $level = $_GET['level']; if ($level==1)?><!-- Blocks --> <img name="block_11" src="<%=path_image%>level1/11.png" style="position:absolute; top: 10px; left: 100px"/> <img name="block_12" src="<%=path_image%>level1/12.png" style="position:absolute; top: 10px; left: 280px" /> <img name="block_13" src="<%=path_image%>level1/13.png" style="position:absolute; top: 10px; left: 460px" /> <img name="block_21" src="<%=path_image%>level1/21.png" style="position:absolute; top: 190px; left: 100px" /> <img name="block_22" src="<%=path_image%>level1/22.png"

style="position:absolute; top: 190px; left: 280px" /> <img name="block_23" src="<%=path_image%>level1/23.png" style="position:absolute; top: 190px; left: 460px" /> <img name="block_31" src="<%=path_image%>level1/31.png" style="position:absolute; top: 370px; left: 100px" /> <img name="block_32" src="<%=path_image%>level1/32.png" style="position:absolute; top: 370px; left: 280px" /> <img name="block_33" src="<%=path_image%>level1/33.png" style="position:absolute; top: 370px; left: 460px" /> <? Else?> <!-- Blocks --> <img name="block_11" src="<%=path_image%>level2/11.png" style="position:absolute; top: 10px; left: 100px" /> <img name="block_12" src="<%=path_image%>level2/12.png" style="position:absolute; top: 10px; left: 235px" /> <img name="block_13" src="<%=path_image%>level2/13.png" style="position:absolute; top: 10px; left: 370px" /> <img name="block_14" src="<%=path_image%>level2/14.png" style="position:absolute; top: 10px; left: 505px" /> <img name="block_21" src="<%=path_image%>level2/21.png" style="position:absolute; top: 145px; left: 100px" /> <img name="block_22" src="<%=path_image%>level2/22.png" style="position:absolute; top: 145px; left: 235px" /> <img name="block_23" src="<%=path_image%>level2/23.png" style="position:absolute; top: 145px; left: 370px" /> <img name="block_24" src="<%=path_image%>level2/24.png" style="position:absolute; top: 145px; left: 505px" /> <img name="block_31" src="<%=path_image%>level2/31.png" style="position:absolute; top: 280px; left: 100px" /> <img name="block_32" src="<%=path_image%>level2/32.png" style="position:absolute; top: 280px; left: 235px" /> <img name="block_33" src="<%=path_image%>level2/33.png"

style="position:absolute; top: 280px; left: 370px" /> <img name="block_34" src="<%=path_image%>level2/34.png" style="position:absolute; top: 280px; left: 505px" /> <img name="block_41" src="<%=path_image%>level2/41.png" style="position:absolute; top: 415px; left: 100px" /> <img name="block_42" src="<%=path_image%>level2/42.png" style="position:absolute; top: 415px; left: 235px" /> <img name="block_43" src="<%=path_image%>level2/43.png" style="position:absolute; top: 415px; left: 370px" /> <img name="block_44" src="<%=path_image%>level2/44.png" style="position:absolute; top: 415px; left: 505px" /> <??> <p style="position:absolute; top: 555px; left: 240px" > <b>jak rychle dokážeš složit puzzle?</b> </p> <h5 align="center" style="position:absolute; top: 275px; left: 10px" > <a href="start.htm">poskládej </br>jiný počítač</a> </h5>