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



Podobné dokumenty
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.

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.

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

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

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

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

Tvorba www-stránek. Příkazy jazyka HTML. Budeme pracovat následovně: Základní struktura webové stránky. Příkazy sekce HEAD

Tvorba fotogalerie v HTML str.1

Tvorba webových stránek

Tvorba webových stránek

Zá klady HTML. Tag HTML <HTML> Párová značka, který definuje webovou stránku. Obsah stránky končí značkou

Základy HTML. Obecná syntaxe HTML. Struktura HTML

22. Tvorba webových stránek

Úvod do jazyka HTML (Hypertext Markup Language)

25. TVORBA HTML DIALOGŮ PRO PEVNÉ TVARY

Kámen-nůžky-papír. Tomáš Svoboda Centrum strojového vnímání, Katedra kybernetiky Fakulta elektrotechnická, České vysoké učení technické

8 Makra Příklad 4 Excel 2007

Manuál k programu KaraokeEditor

Základy HTML. Autor: Palito

FortiaViewer verze 5.0

Kámen-nůžky-papír. Tomáš Svoboda Centrum strojového vnímání, Katedra kybernetiky Fakulta elektrotechnická, České vysoké učení technické

Tvorba stránek v HTML ve Wordu

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

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

Nástrojová lišta v editačním poli

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.

Návod k aplikaci SQL Tools v.2.3

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

Pravidla a technické parametry reklam

Základy informatiky. 03, HTML, tvorba WWW stránek. Daniela Szturcová Část převzata z přednášky P. Děrgela

Citrix klient a OneTimePass moje.cpas.cz. Uživatelský návod pro interní uživatele České pojišťovny a.s.

Základy informatiky. HTML, tvorba WWW stránek. Daniela Szturcová Část převzata z přednášky P. Děrgela

Mgr. Vlastislav Kučera Struktura stránky, hlavička,

Modul 2. Druhá sada úkolů:

Konvertor diakritiky 3. Instalace

Práce v programu Word 2003

9 Úprava maker Příklad 4 Word 2007/ VBA

Česká příručka. Obsah Balení. Systémové Požadavky. Instalace a podpora. Roccat Isku klávesnice Rychlá instalační příručka

HTML - Úvod. Zpracoval: Petr Lasák

DINOX IP kamery řady: DDC-xxxx DDR-xxxx DDX-xxxx DDB-xxxx

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

Formuláře. Internetové publikování. Formuláře - příklad

Příručka pro aplikaci KSnapshot

Internetové technologie, cvičení č. 5

Pomocí filtrů dokážete změnit obrázek k nepoznání. Z fotografie dokážete udělat umělecké dílo, které bude vypadat jako mozaika, náčrtek, sítotisk

HiPath 3000/4000/5000 opticlient 130 V5.0. Zkrácený návod k použití

Vytvoření pokročilé Fotogalerie v Drupalu - Views

Software602 FormApps Server

ČESKY. Macro Key Manager Návod k použití

Reliance 3 design OBSAH

Možnosti programu. KAPITOLA 5 Možnosti

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

Scratchpad ve vstupním okně deníku

CSS Stylování stránek. Zpracoval: Petr Lasák

Rozvodnice design verze 3.1

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

INTERNET A SÍTĚ. Role při tvorbě webových aplikací. Rozhodovací vrstvy při tvorbě webových aplikací. povrch kostra struktura obsah strategie

Předpoklady správného fungování formulářů

Uživatelská příručka pro práci s Portálem VZP. Test kompatibility nastavení prohlížeče

Zakládání nové nebo úprava existující stránky

Popis vizuálního interface UDEMK, nového typu úřední desky. Hlavička úřední desky

Ovládání Open Office.org Calc Ukládání dokumentu : Levým tlačítkem myši kliknete v menu na Soubor a pak na Uložit jako.

Pro využití aktivního odkazu (modrý a podtržený) použijte klávesu Ctrl + kliknutí myší.

Soubory s reklamami musí mít stejný název jako ta výše uvedené. Stávající soubory reklam budou přepsány.

Nastavení provozního prostředí webového prohlížeče pro aplikaci

Čtvrtek 11. dubna. Základy HTML. Obecná syntaxe HTML. Struktura HTML

Tvorba webových stránek pomocí HTML kódu v příkladech. M. Seménka, 2014

ERP informační systém

Nápověda k aplikaci GraphGUI

ABRA Software a.s. ABRA on- line

PŘEHLED A MOŽNOSTI VYUŽITÍ WEBOVÝCH MAPOVÝCH SLUŽEB

František Hudek. duben ročník

Aktuální výběr, nad kterým je kurzor myši

Poznámka v (x)html Všechno, co je v (x)html souboru obaleno značkami <!-- a -->, je považováno za poznámku a nezobrazuje se.

1. Nastavení dokumentu

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Používání u a Internetu

Nastavení lokálního úložiště certifikátů v OSx

SharePoint Vysoká škola zdravotnická, Duškova 7, Praha 5. Školní informační portál 1/7. Přihlášení k portálu

Základy rozpočtování s využitím IT

Základy informatiky. 03 HTML, tvorba webových stránek. Kačmařík/Szturcová/Děrgel/Rapant

NSWI096 - INTERNET. CSS kaskádové styly. Mgr. Petr Lasák

ZEBU webdesign s.r.o. Technologická 372/ Ostrava Pustkovec

Nápověda k aplikaci EA Script Engine

Manuál k editoru TinyMCE

WORKSHEET 1: LINEAR EQUATION 1

Mgr. Vlastislav Kučera lekce č. 2

1. Úvod. 2. CryptoPlus jak začít. 2.1 HW a SW předpoklady. 2.2 Licenční ujednání a omezení. 2.3 Jazyková podpora. Požadavky na HW.

IE1 jazyk HTML a kaskádové styly

Fiktivní firma. Žáci získají základní informace o přípravě a tvorbě webových stránek. Na konci prezentace je úkol, se kterým žáci samostatně pracují.

Jak používat program P-touch Transfer Manager

Uživatelská příručka práce s aplikací IDT

Stručný manuál pro webový editor. Ukládáni základních informací, tvorba menu

UniLog-D. v1.01 návod k obsluze software. Strana 1

13. Vytváření webových stránek

ERP informační systém

THEOPHILOS. (návod k použití)

Transkript:

DOMINO Hra Domino je psána pomocí příkazů Javascriptu a standardních příkazů HTML. Hra je vytvořena na základě principu dominových kostek. Jednotlivé kostky zobrazují loga nejznámějších internetových prohlížečů. Hra je určena pro 4 hráče. První 3 jsou virtuální hráči, za které hraje počítač. Hráč má k dispozici 7 dominových kostek. Hráč, který má domino s logem Apple Safari začíná a ostatní hráči hrají po něm. Tento hráč má tedy pouze 6 kostek. Pokud je hráč na tahu, vybere si klikem domino kostku, která je stejná jako jsou krajní kostky na hrací ploše. Pokud nemá odpovídající kostku se stejným symbolem, klikne na tlačítko vynechat. Vítězí ten kdo se první zbaví všech svých domino kostek. Hra má pomoci hráči, zorientovat se ve známých internetových prohlížečích. Tlačítko Teachers Guide obsahuje odkaz na stručný popis hry a její účel v projektu Ingot. Stažení hry Hru je možné zkopírovat a upravit dle vlastních znalostí: 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)

Další nutnou součástí hry jsou obrázky. Jsou uloženy v podsložce images. Seznam je následující: 0.gif, 1.gif, 2.gif, 3.gif, 4.gif, 5.gif, 6.gif, obrázky s logy prohlížečů n.gif vzor pro pozadí. Obrázky se dají stáhnout, tak, že v adresním řádku prohlížeče se smaže domino.htm a nahradí př. images/0.gif ( př. www.ingot.org/javascript/domino/domino.htm na www.ingot.org/javascript/domino/images/0.gif ) Po odklepnutí klávesou Enter se zobrazí výzva k uložení souboru. Soubor je nutno uložit pod stejným názvem i příponou do stejné složky s předchozím souborem. Obrázek je také nutné uložit do podsložky images, kterou je nutné vytvořit. Správnou funkci všech stažených komponent hry lze ověřit přímým spuštěním souboru domino.htm Výměna obrázků Obrázky ve hře lze nahradit vlastními. Lze nahradit i pozadí za těchto podmínek. - obrázky musí mít stejný název a typ (Zkušenější programátoři mohou použít jiný typ obrázku za předpokladu, že názvy obrázků upraví ve zdrojovém kódu, bude popsáno níže.) - pozadí hry je pouze vzorek, který skládá pozadí ze svých opakujících se částí - pozadí musí mít průhledné (transparentní) pozadí (popis této vlastnosti je mimo rozsah tohoto návodu a je možné jej najít na internetu) - obrázky musí mít stejnou délku a šířku v pixelech (popis této vlastnosti je opět mimo rozsah tohoto návodu a je možné jej najít na internetu) Změna názvu složky, použití jiných formátů obrázků Pokud je nutné použít jiné typy obrázků nebo podsložku, kde jsou uloženy je nutné je patřičně upravit v souboru catch.htm. Tato činnost je určena zkušenějším programátrům. Všude v kódu, kde se vyskytuje výraz images je nutné tento výraz nahradit vlastním. Images je jméno adresáře, kde jsou obrázky uloženy.

- Všude v kódu, kde se vyskytuje výraz gif je nutné tento výraz nahradit vlastním. Gif je formát použitých obrázků. Lze nahradit např. formátem png nebo jpg (kromě pozadí, které musí být transparentní - popis těchto vlastností je mimo rozsah tohoto návodu a je možné jej najít na internetu) Možnost zapnutí zobrazení dialogového okna zobrazujícího táhnoucí hráče Tento postup je určen zkušenějším uživatelům ovládajícím základy Javascriptu. Je možné ve hře povolit dialogové okno zobrazující číslo hráče, který právě táhne. (Nezobrazuje se číslo hráče, který hru vynechává) V kódu Javascriptu je nutné vyhledat následující řádek: //alert(currentplayer) Po zrušení komentáře se bude zobrazovat dialogové okno s číslem právě táhnoucího hráče. Toto okno je nutné potvrdit kliknutím na tlačítko OK. Dialog je samozřejmě možné upravit vlastním textem. 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. Html kód zajišťující zobrazení grafických prvků textu, odkazů a tlačítek: <HTML> <HEAD> <TITLE>Domino-Internetové prohlížeče</title> <META NAME="keywords" CONTENT="Domino, Javascript, Game"> <META NAME="description" CONTENT="This Domino game against three computer player"> <meta name="author" content=""> <link rel="stylesheet" type="text/css" href="css/game.css" /> </HEAD> <body bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#800080" alink="#ff0000"> <!--page content--> <h3 align="center"> Domino-Internetové prohlížeče </p> <form name="gameboard">

<hr> <p align="center"> <table cellpadding=0 cellspacing=0 border=0 width="120"0> <tr > <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s1"><img src = "images/n.gif" height="60" width="60" border="0" name="s2"></td> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s3"><img src = "images/n.gif" height="60" width="60" border="0" name="s4"></td> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s5"><img src = "images/n.gif" height="60" width="60" border="0" name="s6"></td> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s7"><img src = "images/n.gif" height="60" width="60" border="0" name="s8"></td> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s9"><img src = "images/n.gif" height="60" width="60" border="0" name="s10"></td> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s11"><img src = "images/n.gif" height="60" width="60" border="0" name="s12"></td> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s13"><img src = "images/n.gif" height="60" width="60" border="0" name="s14"></td> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s15"><img src = "images/n.gif" height="60" width="60" border="0" name="s16"></td> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s17"><img src = "images/n.gif" height="60" width="60" border="0" name="s18"></td> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s19"><img src = "images/n.gif" height="60" width="60" border="0" name="s20"></td> <!-- left border--> <tr><td align=left> <table width=30 cellpadding=0 cellspacing=0 border=0> <tr><td><img src = "images/n.gif" height="60" width="60" border="0" name="s56"><br><img src = "images/n.gif" height="60" width="60" border="0" name="s55"></td> <tr><td><img src = "images/n.gif" height="60" width="60" border="0" name="s54"><br><img src = "images/n.gif" height="60" width="60" border="0" name="s53"></td> <tr><td><img src = "images/n.gif" height="60" width="60" border="0" name="s52"><br><img src = "images/n.gif" height="60" width="60" border="0" name="s51"></td> <tr><td><img src = "images/n.gif" height="60" width="60" border="0" name="s50"><br><img src = "images/n.gif" height="60" width="60" border="0" name="s49"></td> </table> </td> <td colspan=8 valign=top align=middle> <br><br> <center> </center> <table cellpadding=2 cellspacing=5 border=1 width=420>

<tr> <td width="120"><a href="javascript:void()" onclick="setinput(1,1);nextplayer();return false;"><img src = "images/n.gif" height="60" width="60" border="0" name="sm11"></a><a href="javascript:void()" onclick="setinput(1,2);nextplayer();return false;"><img src = "images/n.gif" height="60" width="60" border="0" name="sm12"></a></td> <td width="120"><a href="javascript:void()" onclick="setinput(2,1);nextplayer();return false;"><img src = "images/n.gif" height="60" width="60" border="0" name="sm21"></a><a href="javascript:void()" onclick="setinput(2,2);nextplayer();return false;"><img src = "images/n.gif" height="60" width="60" border="0" name="sm22"></a></td> <td width="120"><a href="javascript:void()" onclick="setinput(3,1);nextplayer();return false;"><img src = "images/n.gif" height="60" width="60" border="0" name="sm31"></a><a href="javascript:void()" onclick="setinput(3,2);nextplayer();return false;"><img src = "images/n.gif" height="60" width="60" border="0" name="sm32"></a></td> <td width="120"><a href="javascript:void()" onclick="setinput(4,1);nextplayer();return false;"><img src = "images/n.gif" height="60" width="60" border="0" name="sm41"></a><a href="javascript:void()" onclick="setinput(4,2);nextplayer();return false;"><img src = "images/n.gif" height="60" width="60" border="0" name="sm42"></a></td> <td width="120"><a href="javascript:void()" onclick="setinput(5,1);nextplayer();return false;"><img src = "images/n.gif" height="60" width="60" border="0" name="sm51"></a><a href="javascript:void()" onclick="setinput(5,2);nextplayer();return false;"><img src = "images/n.gif" height="60" width="60" border="0" name="sm52"></a></td> <td width="120"><a href="javascript:void()" onclick="setinput(6,1);nextplayer();return false;"><img src = "images/n.gif" height="60" width="60" border="0" name="sm61"></a><a href="javascript:void()" onclick="setinput(6,2);nextplayer();return false;"><img src = "images/n.gif" height="60" width="60" border="0" name="sm62"></a></td> <td width="120"><a href="javascript:void()" onclick="setinput(7,1);nextplayer();return false;"><img src = "images/n.gif" height="60" width="60" border="0" name="sm71"></a><a href="javascript:void()" onclick="setinput(7,2);nextplayer();return false;"><img src = "images/n.gif" height="60" width="60" border="0" name="sm72"></a></td> </table> <br> <input type ="button" value="nová hra" onclick="initgame()"> <input type ="button" value="vynechat" onclick="inputbufferstone=10;nextplayer();"> <INPUT TYPE="TEXT" SIZE="20" VALUE="" NAME=alertbox> <table border=0><tr> <td> <font size="1" face="arial">hráč 1 : Počítač</font></td> <td><input type ="text" value="0" name="showplayer1" size=3></td> <td> </td> <td><font size="1" face="arial">hráč 2 : PC </font></td> <td><input type ="text" value="0" name="showplayer2" size=3></td> <tr><td><font size="1" face="arial">hráč 3 : Notebook</font></td> <td><input type ="text" value="0" name="showplayer3" size=3></td> <td> </td> <td><font size="1" face="arial">hráč 4 : Ty </font></td> <td><input type ="text" value="0" name="showplayer4" size=3></td> </td> </table><br> </td>

<!--right border--> <td align=right> <table width=30 cellpadding=0 cellspacing=0 border=0> <tr><td><img src = "images/n.gif" height="60" width="60" border="0" name="s21"><br><img src = "images/n.gif" height="60" width="60" border="0" name="s22"></td> <tr><td><img src = "images/n.gif" height="60" width="60" border="0" name="s23"><br><img src = "images/n.gif" height="60" width="60" border="0" name="s24"></td> <tr><td><img src = "images/n.gif" height="60" width="60" border="0" name="s25"><br><img src = "images/n.gif" height="60" width="60" border="0" name="s26"></td> <tr><td><img src = "images/n.gif" height="60" width="60" border="0" name="s27"><br><img src = "images/n.gif" height="60" width="60" border="0" name="s28"></td> </table> </td> <!--bottom row--> <tr> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s48"><img src = "images/n.gif" height="60" width="60" border="0" name="s47"></td> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s46"><img src = "images/n.gif" height="60" width="60" border="0" name="s45"></td> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s44"><img src = "images/n.gif" height="60" width="60" border="0" name="s43"></td> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s42"><img src = "images/n.gif" height="60" width="60" border="0" name="s41"></td> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s40"><img src = "images/n.gif" height="60" width="60" border="0" name="s39"></td> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s38"><img src = "images/n.gif" height="60" width="60" border="0" name="s37"></td> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s36"><img src = "images/n.gif" height="60" width="60" border="0" name="s35"></td> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s34"><img src = "images/n.gif" height="60" width="60" border="0" name="s33"></td> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s32"><img src = "images/n.gif" height="60" width="60" border="0" name="s31"></td> <td width="120"><img src = "images/n.gif" height="60" width="60" border="0" name="s30"><img src = "images/n.gif" height="60" width="60" border="0" name="s29"></td> </table> <hr> <center> <a href="teachers_guide.htm" target="_blank">průvodce učitele</a> </center> </form> </center>

Kód Javascriptu: Definice proměnných <SCRIPT LANGUAGE="JavaScript"> <!-- //define field var field = new Array(28); var leftpointer=9 ; var rightpointer=10; //set next player to 0 for no gameplay var currentplayer=0; var playerscores = new Array(5); var score=0 for (n=1;n<5;n++) playerscores[n] = 0; var inputbufferstone=0 var inputbufferstoneside=0 function setinput(x,y) inputbufferstone=x; inputbufferstoneside=y; var has_to_restart=false; Definice a inicializace hracího pole //define field of stones from 1-28 and fill it with double for to next var field = new Array(28); var stones = new Array(); for (n=1;n<29;n++) stones[n] = new Array(); var piece=0; for (n=0;n<7;n++) for (m=n;m<7;m++) piece++ stones[piece][1] =n;//left stones[piece][2] =m;//right stones[piece][3]=m+n;//holds points number if(m==n) stones[piece][3]=stones[piece][3]+20; Inicializace kostek hráčů //distribute stones to 4 players var playerhold = new Array() //playerhold[player=1-4][stone=0-6 for (n=1;n<5;n++) playerhold[n] = new Array() for (m=0;m<7;m++)

playerhold[n][m] =28;//correct value is inserted in initgam Funkce pro inicializaci hry náhodný výběr a přiřazení kostek function initgame() if(!has_to_restart)return; clearfield() inputbufferstone=0; for (n=1;n<5;n++) for (m=0;m<7;m++) playerhold[n][m] =(m+1)+(n-1)*7 for (n=1;n<29;n++) tmp=math.floor(math.random()*27+1) if(tmp==29) tmp=28 ;//range defined from 1-28 tp=math.floor((tmp-0.5)/7);//tmp player von 0-3 ts=tmp-tp*7-1;//range from 0-6 np=math.floor((n-0.5)/7);//n player von 0-3 ns=n-np*7-1;//range from 0-6 swaptemp=playerhold[tp+1][ts] playerhold[tp+1][ts]=playerhold[np+1][ns] playerhold[np+1][ns]=swaptemp //sort all non human players for(n=1;n<5;n++) //not fourth - player is human for(m=0;m<7;m++) smallpos=m smallvalue=stones[playerhold[n][m]][3] //find smallest for (i=m;i<7;i++) if (smallvalue>stones[playerhold[n][i]][3]) smallpos=i;

smallvalue=stones[playerhold[n][i]][3]; //swap smallest with m tmp=playerhold[n][m] playerhold[n][m]=playerhold[n][smallpos]; playerhold[n][smallpos]=tmp; //select sort for one player finished //finished sort for each nonhuman player for(n=1;n<5;n++) for(m=0;m<7;m++) if (playerhold[n][m]==1) //identify first player by 0:0 playerhold[n][m]=0;//first stone removed out of playerhold pickstone=m currentplayer=n Vykreslení kostek na hrací plochu //place it on the desk window.document.gameboard.s9.src = "images/0.gif" window.document.gameboard.s10.src = "images/0.gif" Nastavení počitadla //set pointer on the board field[9]=0 field[10]=0 leftpointer=9 ; rightpointer=10; showhuman(); has_to_restart=false; ;//end of init game Funkce tahu následujícího hráče function nextplayer() if (has_to_restart) return; currentplayer++ if (currentplayer==5) currentplayer=1

n=currentplayer //look on field putvalue1=field[leftpointer];//stonenumber putvalue2=field[rightpointer] if (currentplayer==4) // player is human check for input. if (inputbufferstone==10) //pass inputbufferstone=0; checkmoveleft(); nextplayer(); return; if (inputbufferstone==0) // if no input wait another second before calling next player again currentplayer--; return; else // if input - read input st=playerhold[4][inputbufferstone-1] if (st==0) currentplayer--; return; stv1=stones[st][inputbufferstoneside] stv2=stones[st][abso(inputbufferstoneside-3)] if ( putvalue1==stv1) //if yes show it in the field change and change pointer leftpointer-- if ( leftpointer<1) leftpointer=56 eval("window.document.gameboard.s"+leftpointer+".src = 'images/"+stv1+".gif'") field[leftpointer]=stv1 leftpointer-- eval("window.document.gameboard.s"+leftpointer+".src = 'images/"+stv2+".gif'") field[leftpointer]=stv2 else if ( putvalue2==stv1) rightpointer++ if (rightpointer>56) rightpointer=1 eval("window.document.gameboard.s"+rightpointer+".src = 'images/"+stv1+".gif'") field[rightpointer]=stv1 rightpointer++

eval("window.document.gameboard.s"+rightpointer+".src = 'images/"+stv2+".gif'") field[rightpointer]=stv2 else //check on fit for the other stoneside if ( putvalue1==stv2) leftpointer-- if ( leftpointer<1) leftpointer=56 eval("window.document.gameboard.s"+leftpointer+".src = 'images/"+stv2+".gif'") field[leftpointer]=stv2 leftpointer-- eval("window.document.gameboard.s"+leftpointer+".src = 'images/"+stv1+".gif'") field[leftpointer]=stv1 else if ( putvalue2==stv2) rightpointer++ if (rightpointer>56) rightpointer=1 eval("window.document.gameboard.s"+rightpointer+".src = 'images/"+stv2+".gif'") field[rightpointer]=stv2 rightpointer++ eval("window.document.gameboard.s"+rightpointer+".src = 'images/"+stv1+".gif'") field[rightpointer]=stv1 else currentplayer-- // if input read- empty buffer inputbufferstone=0 return; //remove stone from player playerhold[4][inputbufferstone-1]=0 // if input read- empty buffer inputbufferstone=0 showhuman() if(!gameover(n)) nextplayer(); return;

// check on fit for the right and do the same as for left and return // or return! else //player is machine //take first right in own stone array and call next firststone=-1 for (m=6;m>(-1);m--) st=playerhold[n][m] if(!(st==0) && firststone==-1) if (stones[st][1]==putvalue1) firststone=m if (stones[st][1]==putvalue2) firststone=m if (stones[st][2]==putvalue1) firststone=m if (stones[st][2]==putvalue2) firststone=m if (firststone==-1) //#settimeout("nextplayer()",5); //pass nextplayer(); return; //line above passed. m=firststone; stv1=stones[playerhold[n][m]][1];//catch stone values stv2=stones[playerhold[n][m]][2];//catch stone values if (putvalue1==stv1 putvalue1==stv2) //left if ( putvalue1==stv2) tmp=stv2;stv2=stv1;stv1=tmp; leftpointer-- if ( leftpointer<1) leftpointer=56 eval("window.document.gameboard.s"+leftpointer+".src = 'images/"+stv1+".gif'") field[leftpointer]=stv1 leftpointer-- eval("window.document.gameboard.s"+leftpointer+".src = 'images/"+stv2+".gif'") field[leftpointer]=stv2 Možnost zobrazovat dialogové okno s čísly táhnoucích hráčů // display number of current player //alert(currentplayer) else

//left if ( putvalue2==stv2) tmp=stv2;stv2=stv1;stv1=tmp; rightpointer++ if (rightpointer>56) rightpointer=1 eval("window.document.gameboard.s"+rightpointer+".src = 'images/"+stv1+".gif'") field[rightpointer]=stv1 rightpointer++ eval("window.document.gameboard.s"+rightpointer+".src = 'images/"+stv2+".gif'") field[rightpointer]=stv2 pausecomp(500) playerhold[n][m]=0 //end of machine if(!gameover(n)) //settimeout("nextplayer()",5) nextplayer(); return; Funkce ukončení hry function gameover(pl1) sum=0 for (m2t=0;m2t<7;m2t++) sum=sum+playerhold[pl1][m2t]; if (sum>0) return false; alerting("hráč "+pl1+" vyhrál!") addpoints(); has_to_restart=true; return true; Funkce kontroly zda hráčům zbývají ještě kostky function checkmoveleft() pr1=field[leftpointer] pr2=field[rightpointer] if (!(pr2==pr1)) return; m2z=0 n2z=0 stonefound=false for (n2z=1;n2z<5;n2z++) for (m2z=0;m2z<7;m2z++) for (k2=1;k2<3;k2++) st2=playerhold[n2z][m2z] if (!(st2==0)) if (stones[st2][k2]==pr2) stonefound=true;

if (stonefound) return; alerting("nikdo nevyhrál"); addpoints(); has_to_restart=true; return; Funkce hráče č.4 (lidský hráč) function showhuman() for(m=0;m<7;m++) ts=playerhold[4][m];//temp placeholder for the stone if (ts==0) eval("window.document.gameboard.sm"+(m+1)+"1.src = 'images/n.gif'") eval("window.document.gameboard.sm"+(m+1)+"2.src = 'images/n.gif'") else eval("window.document.gameboard.sm"+(m+1)+"1.src = 'images/"+stones[ts][1]+".gif'") eval("window.document.gameboard.sm"+(m+1)+"2.src = 'images/"+stones[ts][2]+".gif'") Funkce zajišťující vymazání herního pole function clearfield() for (z1=1;z1<57;z1++) eval("window.document.gameboard.s"+z1+".src = 'images/n.gif'"); alerting(" "); Funkce zajišťující aktualizaci skóre function addpoints() for (n=1;n<5;n++) for (m=0;m<7;m++) sttmp=playerhold[n][m]; v=0; if (!(sttmp==0)) v=stones[sttmp][3];

if(v>15) v-=20; playerscores[n] += v; eval("window.document.gameboard.showplayer"+n+".value=playerscores[n]") score=playerscores[1]+playerscores[2]+playerscores[3]-playerscores[4]*2 //if (score<0) score=0 //window.document.scoreform.newscore.value=score; Funkce zobrazující dialogová okna function alerting(alertmsg) window.document.gameboard.alertbox.value=alertmsg Funkce načítající kostky domina function abso(valt) if (valt<0) valt=valt*(-1) return valt z1 = new Image(30, 30); z1.src = "images/n.gif" ; a1 = new Image(30, 30); a1.src = "images/0.gif" ; b1 = new Image(30, 30); b1.src = "images/1.gif" ; c1 = new Image(30, 30); c1.src = "images/2.gif" ; d1 = new Image(30, 30); d1.src = "images/3.gif" ; e1 = new Image(30, 30); e1.src = "images/4.gif" ; f1 = new Image(30, 30); f1.src = "images/5.gif" ; g1 = new Image(30, 30); g1.src = "images/6.gif" ; Funkce zajišťující pauzu function pausecomp(millis) var date = new Date(); var curdate = null; do curdate = new Date(); while(curdate-date < millis);

has_to_restart=true; initgame(); //--> </SCRIPT> HTML kód ukončení stránky <br> </body></html>