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



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.

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čí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.

Internetový prohlížeč-vyhledávání a ukládání dat z internetu do počítače

Tvorba fotogalerie v HTML str.1

Místo úvodu. Čeho se vyvarovat. Mazání znaků

Střední průmyslová škola strojnická Vsetín. Předmět Druh učebního materiálu Tvorba a editace textu v dokumentu

FortiaViewer verze 5.0

Modul 2. Druhá sada úkolů:

Práce v programu Word 2003

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-214. Internetový prohlížeč

Manuál k editoru TinyMCE

Aktualizace softwaru Uživatelská příručka

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

Konvertor diakritiky 3. Instalace

25. TVORBA HTML DIALOGŮ PRO PEVNÉ TVARY

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

Další nutný soubor je wordlist.js, ve kterém je uložena databáze slov a procedure s texty nápovědy.

Základy HTML, URL, HTTP, druhy skriptování, formuláře

Pracovní prostředí Word 2003 versus Word 2010

8 Makra Příklad 4 Excel 2007

František Hudek. duben ročník

Dokumentace k produktu IceWarp Notifikační nástroj

Modul Statistika poskytuje přehled o počtu studentů na fakultách, v jednotlivých programech, oborech, apod.

Automatické ukládání a přednastavený formát ukládání

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

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

Příručka pro aplikaci KSnapshot

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

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

1. Začínáme s FrontPage

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

Manuál k programu KaraokeEditor

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

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

Možnosti programu. KAPITOLA 5 Možnosti

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

Informační a komunikační technologie pro učební obory ME4 a SE4. Makra

Archiv elektronických dokumentů Zela

ERP informační systém

Možnosti tisku v MarushkaDesignu

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

Správa souborů soubor, stromová struktura. Mgr. Jan Veverka Střední odborná škola sociální obor ošetřovatel

S klávesovými zkratkami ovládnete Windows jako profík Novinky.cz

MS Excel makra a VBA

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

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

22. Tvorba webových stránek

Základy HTML. Autor: Palito

Aktualizace softwaru Uživatelská příručka

PowerPoint - klávesové zkratky

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

Aktualizace softwaru Uživatelská příručka

Strategie ochrany před negativními dopady povodní a erozními jevy přírodě blízkými opatřeními v České republice

ZŠ ÚnO, Bratří Čapků 1332

ERP informační systém

Používání u a Internetu

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 2. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Javascript. Javascript - jazyk

2.3.3 PRÁCE S JEDNÍM A VÍCE DOKUMENTY

Reliance 3 design OBSAH

Windows 8.1 (5. třída)

Úvodní příručka. Správa souborů Kliknutím na kartu Soubor můžete otevřít, uložit, vytisknout a spravovat své soubory Wordu.

Vzorce. Suma. Tvorba vzorce napsáním. Tvorba vzorců průvodcem

Migrace na aplikaci Outlook 2010

Nastavení elektronického výpisu v Internet Bance

UŽIVATELSKÁ PŘÍRUČKA

Velmi stručný návod jak dostat data z Terminálu Bloomberg do R

Připojení ke vzdálené aplikaci Target 2100

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Radek Havlík [ÚLOHA 32 ODKAZY A TEXTY]

Software602 FormApps Server

METODICKÝ POKYN PŘIDÁNÍ A PŘEHRÁNÍ VIDEA V PREZENTACI

MIDAM Simulátor Verze 1.5

František Hudek. červen ročník

Nápověda. Hlavní strana Menu aplikace. Informace o hřbitově Menu na stránce Hřbitov

ABRA Software a.s. ABRA on- line

Microsoft Office PowerPoint 2003

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

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

Cvičení 2. Přesměrování vstupu a výstupu. Posloupnost příkazů. Příkazy pro informaci o uživatelích

Příručka pro aplikaci KSnapshot

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

Zprávy: Pošta. 1. Spuštění modulu Zprávy. 2. Popis prostředí a ovládacích prvků modulu Zprávy

Nápověda k aplikaci EA Script Engine

Hledání správné cesty

MS Word. verze Přehled programů pro úpravu textu

Název Live prez Sear enta Maps

PROJEKT MINY - DOKUMENTACE

Úvodem... 9 Kapitola 1 Karetních

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

Manuál k ovládání aplikace INFOwin.

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

Zá kládní nástávení prostr edí operáč ní ho syste mu Windows 7 á vybrány čh áplikáčí

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

1. Základní popis programu Nová zkouška Záložka měření Záložka vtisky Záložka report Nastavení 7

Transkript:

ČERV Hra Červ je psána pomocí příkazů Javascriptu a standardních příkazů HTML. Hra napodobuje pohyb viru-červa v počítačové síti. Úkolem hráče je napadat (požírat) počítače a snaží se vyhnout srážce s antivirem. Po úspěšném pozření počítače se tělo červa prodlouží a tím vzrůstá obtížnost hry. Červ nesmí narazit ani do okrajů herní plochy. Pohyb ve hře zabezpečují šipkové klávesy. Tlačítkem New Game si může hráč vygenerovat novou hru a nastavit rychlost pohybu červa. Hráči se průběžně zobrazuje frekvence pozřených počítačů v čase a délka červa. Tlačítko Teachers Guide obsahuje odkaz na stručný popis hry a její účel v projektu Ingot. Po skončení hry se zobrazí počet pozřených počítačů. 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 Mozzilla 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. Seznam je následující: wormy_a.gif, wormy_b.gif obrázky počítače a antiviru wormy_bg.gif vzor pro pozadí wormy_e.gif Konec červa po střetu z antivirem wormy_hb.gif, wormy_hl.gif, wormy_hr.gif, wormy_ht.gif hlavy červa (rotace podle směru pohybu)

wormy_m.gif tělo červa wormy_tb.gif, wormy_tl.gif, wormy_tr.gif, wormy_tt.gif ocasy červa (rotace podle směru pohybu) Obrázky se dají stáhnout, tak, že v adresním řádku prohlížeče se smaže worm.htm a nahradí př. l0.gif ( př. www.ingot.org/javascript/cerv/worm.htm na www.ingot.org/javascript/cerv/wormy_a.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. Správnou funkci všech stažených komponent hry lze ověřit přímým spuštěním souboru worm.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) Použití jiných formátů obrázků - 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) 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. Kód Javascriptu, určený k vyvolání události zachytávání stisknutých kláves a k detekci prohlížeče.

<script for=document event="onkeydown()" language="jscript"> //testing keys if (window.event) KeyDown(window.event.keyCode); </script> <script language="javascript"> //testing type of browser var IsNetscape = false; if(navigator.appname == "Netscape") IsNetscape = true; Kód inicializující obrázky a deklarace a inicializace proměnných //loading of images wormy_bg=new Image(); wormy_bg.src="wormy_bg.gif"; wormy_hl=new Image(); wormy_hl.src="wormy_hl.gif"; wormy_ht=new Image(); wormy_ht.src="wormy_ht.gif"; wormy_hr=new Image(); wormy_hr.src="wormy_hr.gif"; wormy_hb=new Image(); wormy_hb.src="wormy_hb.gif"; wormy_m=new Image(); wormy_m.src="wormy_m.gif"; wormy_tl=new Image(); wormy_tl.src="wormy_tl.gif"; wormy_tt=new Image(); wormy_tt.src="wormy_tt.gif"; wormy_tr=new Image(); wormy_tr.src="wormy_tr.gif"; wormy_tb=new Image(); wormy_tb.src="wormy_tb.gif"; wormy_a=new Image(); wormy_a.src="wormy_a.gif"; wormy_b=new Image(); wormy_b.src="wormy_b.gif"; wormy_e=new Image(); wormy_e.src="wormy_e.gif"; //initialization of variables var i, j, Delay=200, StartTime=0, WormLen, MaxX=30, MaxY=18, napples=10, nbombs, nkeydowns=3; AppleX=new Array(nApples); AppleY=new Array(nApples); BombX=new Array(200); BombY=new Array(200); WormX=new Array(200); WormY=new Array(200); MoveX=new Array(nKeyDowns); MoveY=new Array(nKeyDowns); Detekce stisknutých kláves //testing of pressing key function KeyDown(whichkey) { //alert(whichkey); if (whichkey == 37) Move(-1,0); if (whichkey == 38) Move(0,-1); if (whichkey == 39) Move(1,0); if (whichkey == 40) Move(0,1); if (whichkey == 50) Move(0,1); if (whichkey == 52) Move(-1,0);

if (whichkey == 53) Move(0,1); if (whichkey == 54) Move(1,0); if (whichkey == 56) Move(0,-1); if (whichkey == 65458) Move(0,1); if (whichkey == 65460) Move(-1,0); if (whichkey == 65461) Move(0,1); if (whichkey == 65462) Move(1,0); if (whichkey == 65464) Move(0,-1); Funkce zabezpečující nastavení rychlosti a délky viru, jeho pohyb po obrazovce a a detekci kolizí //moving virus function Move(xx, yy) { if (nkeydowns>2) return; if ((nkeydowns==0)&& (WormX[WormLen-2]-WormX[WormLen-1]==xx)&& (WormY[WormLen-2]-WormY[WormLen-1]==yy)) return; MoveX[nKeyDowns]=xx; MoveY[nKeyDowns]=yy; nkeydowns++; if (StartTime>0) return; var nn= new Date(); StartTime = nn.gettime() / 1000; settimeout("moveworm("+xx+","+yy+")",delay); //moving worm function MoveWorm(xx_old, yy_old) { var nn, ii, vv, ddx=xx_old, ddy=yy_old, xx, yy; if (StartTime==0) return; if (nkeydowns>0) { ddx=movex[0]; ddy=movey[0]; for (nn=1; nn<nkeydowns; nn++) { MoveX[nn-1]=MoveX[nn]; MoveY[nn-1]=MoveY[nn]; nkeydowns--; xx=wormx[wormlen-1]+ddx; yy=wormy[wormlen-1]+ddy; nn=whatisat(xx, yy); if (nn<-1) //OffBoard, Worm, Antivirus { if (nn==-4) window.document.images[maxx*yy+xx].src = wormy_e.src; if (window.opener) { if (window.opener.sethighscores) { if (Delay==300) window.opener.sethighscores("wormy","slow",wormlen-2,1);

if (Delay==200) window.opener.sethighscores("wormy","medium",wormlen-2,1); if (Delay==100) window.opener.sethighscores("wormy","fast",wormlen-2,1); if (WormLen<9) alert("oops, virus is destroyed!"); else alert("wow, you ate "+eval(wormlen-2)+" computers!"); return; if (nn>=0) //Computer { window.document.images[maxx*wormy[wormlen-1]+wormx[wormlen-1]].src = wormy_m.src; WormX[WormLen]=xx; WormY[WormLen]=yy; WormLen++; if (WormX[WormLen-2]<WormX[WormLen-1]) window.document.images[maxx*wormy[wormlen- 1]+WormX[WormLen-1]].src = wormy_hr.src; if (WormX[WormLen-2]>WormX[WormLen-1]) window.document.images[maxx*wormy[wormlen- 1]+WormX[WormLen-1]].src = wormy_hl.src; if (WormY[WormLen-2]<WormY[WormLen-1]) window.document.images[maxx*wormy[wormlen- 1]+WormX[WormLen-1]].src = wormy_hb.src; if (WormY[WormLen-2]>WormY[WormLen-1]) window.document.images[maxx*wormy[wormlen- 1]+WormX[WormLen-1]].src = wormy_ht.src; do { xx=random(maxx); yy=random(maxy); vv=true; if ((xx==bombx[ii])&&(yy==bomby[ii])) vv=false; for (ii=0; ii<napples; ii++) if ((xx==applex[ii])&&(yy==appley[ii])) vv=false; if ((xx==wormx[ii])&&(yy==wormy[ii])) vv=false; if ((Math.abs(xx-WormX[WormLen-1])<5) (Math.abs(yy-WormY[ii])<5)) vv=false; if (vv) { BombX[nBombs]=xx; BombY[nBombs]=yy; nbombs++; while (!vv); window.document.images[maxx*yy+xx].src = wormy_b.src; do { xx=random(maxx); yy=random(maxy); vv=true; if ((xx==bombx[ii])&&(yy==bomby[ii])) vv=false; for (ii=0; ii<napples; ii++) if ((xx==applex[ii])&&(yy==appley[ii])) vv=false; if ((xx==wormx[ii])&&(yy==wormy[ii])) vv=false;

if ((Math.abs(xx-WormX[WormLen-1])<5) (Math.abs(yy-WormY[ii])<5)) vv=false; if (vv) { AppleX[nn]=xx; AppleY[nn]=yy; while (!vv); window.document.images[maxx*yy+xx].src = wormy_a.src; document.forms[0].wormlength.value=wormlen; else //Empty { window.document.images[maxx*wormy[0]+wormx[0]].src = wormy_bg.src; for (nn=1; nn<wormlen; nn++) { WormX[nn-1]=WormX[nn]; WormY[nn-1]=WormY[nn]; WormX[WormLen-1]=xx; WormY[WormLen-1]=yy; if (WormLen>2) window.document.images[maxx*wormy[wormlen-2]+wormx[wormlen-2]].src = wormy_m.src; if (WormX[0]<WormX[1]) window.document.images[maxx*wormy[0]+wormx[0]].src = wormy_tl.src; if (WormX[0]>WormX[1]) window.document.images[maxx*wormy[0]+wormx[0]].src = wormy_tr.src; if (WormY[0]<WormY[1]) window.document.images[maxx*wormy[0]+wormx[0]].src = wormy_tt.src; if (WormY[0]>WormY[1]) window.document.images[maxx*wormy[0]+wormx[0]].src = wormy_tb.src; if (WormX[WormLen-2]<WormX[WormLen-1]) window.document.images[maxx*wormy[wormlen- 1]+WormX[WormLen-1]].src = wormy_hr.src; if (WormX[WormLen-2]>WormX[WormLen-1]) window.document.images[maxx*wormy[wormlen- 1]+WormX[WormLen-1]].src = wormy_hl.src; if (WormY[WormLen-2]<WormY[WormLen-1]) window.document.images[maxx*wormy[wormlen- 1]+WormX[WormLen-1]].src = wormy_hb.src; if (WormY[WormLen-2]>WormY[WormLen-1]) window.document.images[maxx*wormy[wormlen- 1]+WormX[WormLen-1]].src = wormy_ht.src; nn= new Date(); document.forms[0].eatspeed.value=math.round((wormlen-2)/(nn.gettime()/1000-starttime)*100)/10; settimeout("moveworm("+ddx+","+ddy+")",delay); //detecting object function WhatIsAt(xx, yy) { var ii; if ((xx<0) (xx>=maxx) (yy<0) (yy>=maxy)) return(-2); if ((xx==wormx[ii])&&(yy==wormy[ii])) return(-3); if ((xx==bombx[ii])&&(yy==bomby[ii])) return(-4); for (ii=0; ii<napples; ii++) if ((xx==applex[ii])&&(yy==appley[ii])) return(ii); return(-1);

Generování náhodných čísel pro umístění objektů na obrazovce //generate randomize number function random(nn) { return(math.floor(math.random()*1000)%nn); Inicializace startu hry //Initialization game function Init(newDelay) { var ii, jj, xx, yy, vv; if (newdelay>0) Delay=newDelay; StartTime=0; WormLen=2; WormX[0]=12; WormY[0]=3; WormX[1]=12; WormY[1]=4; nkeydowns=0; nbombs=0; while (nbombs<napples) { xx=random(maxx); yy=random(maxy); vv=true; if ((xx==bombx[ii])&&(yy==bomby[ii])) vv=false; if ((xx==wormx[ii])&&(yy==wormy[ii])) vv=false; if ((Math.abs(xx-WormX[WormLen-1])<5) (Math.abs(yy-WormY[ii])<5)) vv=false; if (vv) { BombX[nBombs]=xx; BombY[nBombs]=yy; nbombs++; napples=0; while (napples<nbombs) { xx=random(maxx); yy=random(maxy); vv=true; if ((xx==bombx[ii])&&(yy==bomby[ii])) vv=false; for (ii=0; ii<napples; ii++) if ((xx==applex[ii])&&(yy==appley[ii])) vv=false; if ((xx==wormx[ii])&&(yy==wormy[ii])) vv=false; if ((Math.abs(xx-WormX[WormLen-1])<5) (Math.abs(yy-WormY[ii])<5)) vv=false; if (vv)

{ AppleX[nApples]=xx; AppleY[nApples]=yy; napples++; for (jj=0; jj < MaxY; jj++) { for (ii=0; ii < MaxX; ii++) window.document.images[maxx*jj+ii].src = wormy_bg.src; for (ii=0; ii < nbombs; ii++) window.document.images[maxx*bomby[ii]+bombx[ii]].src = wormy_b.src; for (ii=0; ii < napples; ii++) window.document.images[maxx*appley[ii]+applex[ii]].src = wormy_a.src; if (WormX[0]<WormX[1]) window.document.images[maxx*wormy[0]+wormx[0]].src = wormy_tl.src; if (WormX[0]>WormX[1]) window.document.images[maxx*wormy[0]+wormx[0]].src = wormy_tr.src; if (WormY[0]<WormY[1]) window.document.images[maxx*wormy[0]+wormx[0]].src = wormy_tt.src; if (WormY[0]>WormY[1]) window.document.images[maxx*wormy[0]+wormx[0]].src = wormy_tb.src; if (WormX[WormLen-2]<WormX[WormLen-1]) window.document.images[maxx*wormy[wormlen- 1]+WormX[WormLen-1]].src = wormy_hr.src; if (WormX[WormLen-2]>WormX[WormLen-1]) window.document.images[maxx*wormy[wormlen- 1]+WormX[WormLen-1]].src = wormy_hl.src; if (WormY[WormLen-2]<WormY[WormLen-1]) window.document.images[maxx*wormy[wormlen- 1]+WormX[WormLen-1]].src = wormy_hb.src; if (WormY[WormLen-2]>WormY[WormLen-1]) window.document.images[maxx*wormy[wormlen- 1]+WormX[WormLen-1]].src = wormy_ht.src; document.forms[0].wormlength.value=2; document.forms[0].eatspeed.value=0; document.forms[0].new.focus(); document.forms[0].new.blur(); Odkaz na Teachers Guide //open teachers guide function teachers_guide() { window.open('teachers_guide.htm','','scrollbars=yes,menubar=no,height=500,width=350,resizable=yes,toolbar =no,location=no,status=no'); if (navigator.appname!= "Microsoft Internet Explorer") document.captureevents(event.keydown); document.onkeydown = NetscapeKeyDown; function NetscapeKeyDown(key) { KeyDown(key.which); </script> Kombinovaný HTML a javascriptový kód natavující pozadí hry </head> <BODY bgcolor=#66cccc>

<form> <DIV ALIGN=center> <table border cellpadding=0 cellspacing=2><tr><td colspan=4 bgcolor=#66cccc background="wormy_bg.gif"> <script language="javascript"> document.open("text/plain"); for (j=0; j < MaxY; j++) { for (i=0; i < MaxX; i++) document.write("<img src=\"wormy_bg.gif\" border=0>"); if (j<maxy-1) document.write("<br>"); document.close(); </script> HTML kód, který nastavuje úvodní zobrazení objektů hry </td></tr><tr> <td align=center bgcolor=#ffff99> <input type=radio name="speed" value="1" onclick="javascript:init(300)"><b>slow</b> <input type=radio name="speed" checked value="2" onclick="javascript:init(200)"><b>medium</b> <input type=radio name="speed" value="3" onclick="javascript:init(100)"><b>fast </B> </td> <td align=center bgcolor=#ffff99><table noborder cellpadding=2 cellspacing=2><tr> <td><b>virus length:</b></td> <td><input type=button value="2" name="wormlength" width=40 style="width:40; backgroundcolor:#ffffff"></td> </td></tr></table></td> <td align=center bgcolor=#ffff99><table noborder cellpadding=2 cellspacing=2><tr> <td><b>eat speed:</b></td> <td><input type=button value="0" name="eatspeed" width=40 style="width:40; backgroundcolor:#ffffff"></td> </td></tr></table></td> <td align=center bgcolor=#ffff99><table noborder cellpadding=2 cellspacing=2><tr> <td><input type=button value="new game" name="new" width=68 style="width:68" onclick="javascript:init(0)"></td> <td><input type=button value="teachers guide" width=96 style="width:96" onclick="javascript:teachers_guide()"></td> </td></tr></table></td> </tr></table> </DIV> </form> <script language="javascript"> Init(200); </script> </BODY> </HTML>