Prvni commit.

This commit is contained in:
vojta@alfred
2026-02-01 00:00:07 +01:00
commit 4e5c55e846
213 changed files with 17991 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
SetHandler None
AddDefaultCharset utf-8
AddCharset utf-8 .js
AddCharset utf-8 .css
+1
View File
@@ -0,0 +1 @@
Oldřich Jedlička <oldium.pro@seznam.cz>
+25
View File
@@ -0,0 +1,25 @@
Copyright (c) 2006-2013, Oldrich Jedlicka
All Rights Reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of the original author nor the names of the contributors
(see AUTHORS) may be used to endorse or promote products derived from this
software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+1762
View File
File diff suppressed because it is too large Load Diff
+28
View File
@@ -0,0 +1,28 @@
Copyright (c) 2006-2013, Oldřich Jedlička
Všechna práva vyhrazena.
Šíření a použití ve zdrojové a binární formě s nebo beze změn je povoleno,
pokud jsou splněny následující podmínky:
* Při šířená ve zdrojové podobě musí být zachována výše uvedená informace
o autorských právech, tento seznam podmínek a níže uvedené prohlášení.
* Při šíření v binární podobě musí být výše uvedená zmínka o autorských
právech, tento seznam podmínek a níže uvedené prohlášení uvedené
v dokumentaci a/nebo v dalších materiálech, které jsou součástí šířeného
produktu.
* Ani jméno autora, ani jména přispěvatelů (viz AUTHORS) nesmí být použita
pro podporu nebo propagaci produktu bez předchozího výslovného písemného
souhlasu.
TOTO PROGRAMOVÉ VYBAVENÍ JE POSKYTNUTO VLASTNÍKEM AUTORSKÝCH PRÁV
A PŘISPĚVOVATELI "TAK, JAK JE", BEZ JAKÝCHKOLIV ZÁRUK, AŤ VÝSLOVNÝCH NEBO
SAMOZŘEJMÝCH, VČETNĚ, ALE NIKOLIV POUZE, PŘEDPOKLÁDANÝCH ZÁRUK PRODEJNOSTI A
VHODNOSTI PRO DANÝ ÚČEL. V ŽÁDNÉM PŘÍPADĚ NEJSOU ANI VLASTNÍK AUTORSKÝCH PRÁV,
ANI PŘISPĚVOVATELÉ ODPOVĚDNI ZA ŠKODY PŘÍMÉ, NEPŘÍMÉ, SPECIFICKÉ, VZNIKLÉ
OMYLEM, NÁHODOU, ZA ZVLÁŠTNÍCH PODMÍNEK, ANI ZA NÁSLEDNĚ VZNIKLÉ ŠKODY (VČETNĚ,
ALE NIKOLIV POUZE, ZPŮSOBENÍ NUTNOSTI NÁHRADY ČI VÝMĚNY ZBOŽÍ NEBO SLUŽEB;
ZTRÁTY MOŽNOSTI POUŽÍVÁNÍ, ZTRÁTY DAT NEBO ZISKŮ; NEBO PŘERUŠENÍ PODNIKÁNÍ) PŘI
JAKÉKOLI MOŽNOSTI ZODPOVĚDNOSTI, AŤ UŽ SMLUVNÍ, ABSOLUTNÍ ODPOVĚDNOSTI (BEZ
OHLEDU NA ÚMYSL ČI ZAVINĚNÍ) NEBO TRESTNÍ ODPOVĚDNOSTI (VČETNĚ NEDBALOSTI NEBO
NĚČEHO JINÉHO) VZNIKLÉ JAKKOLI PŘI POUŽÍVÁNÍ TOHOTO PROGRAMOVÉHO VYBAVENÍ, A TO
DOKONCE ANI V PŘÍPADĚ, ŽE JE MOŽNOST TAKOVÉTO ŠKODY UVEDENA.
+50
View File
@@ -0,0 +1,50 @@
2013-01-10 Verze 2.0.5
* Oprava problému s ukládáním v iPadu, nyní to už není textové pole
(<textarea>), ale předformátovaný text (<pre>).
2012-12-09 Verze 2.0.4.1
* Opraven text nápovědy.
2010-10-19 Verze 2.0.4
* Komprese skriptů - rychlejší načítání.
* Lepší barvy nového příkazu a cyklů v příkladech a nápovědě.
2007-05-20 Verze 2.0.3
* Oprava pro Internet Explorer 7.
2007-03-13 Verze 2.0.2
* Oprava pár drobností.
2007-03-12 Verze 2.0.1
* Podpora prohlížečů Internet Explorer 7, Internet Explorer 6,
Opera 9.10, Konqueror 3.5.6, Firefox 2.0.0.1. Starší prohlížeče nejsou
testovány.
2006-07-31 Verze 2.0
* Úplně nové a lepší uživatelské rozhraní.
* Podpora prohlížečů Firefox 1.0.3, Firefox 1.5, Internet Exporer 6,
Opera 9.00, Konqueror 3.5.2. Verze Opery 8.52 funguje také, ale kvůli
chybě Opery může ve slovníku vzniknout při použití posuvníku nepořádek.
* Automatické doplňování konce uživetelského příkazu, pokud chybí příkaz
KONEC nebo KONEC, JINAK.
* Ukládání (všech) komentářů a prázdných řádek s kontrolou, jestli je pouze
jedna volná řádka mezi příkazy (kvůli programátorskému stylu).
* Větší inteligence při načítání příkazů.
* První komentář uvedený před názvem samotného příkazu se zobrazuje v
nástrojovém tipu, stejně jako popis u systémových příkazů.
* Vylepšený export, který rozlišuje komentáře a prázdné řádky.
* Automatické načtení obrázků do vyrovnávací paměti.
* Pokud prohlížeč pracuje správně s vyrovnávací pamětí, je možné po spuštění
programu odpojit připojení na internet.
* Automatické ukládání v nejstarším formátu, který podporuje všechny
příkazy, takže pokud nepoužijete nějakou novinku, např. komentáře a
prázdné řádky, poběži programy ve staších verzích.
* Podpora exportu do starší verze 1.2, komentáře a prázdné řádky nebudou
do této verze uloženy.
+21
View File
@@ -0,0 +1,21 @@
Copak se plánuje:
---------------
Priorita VYSOKÁ
* Ukládání dat na serveru
* Více velikostí města
* Oddělení města od vývojového prostředí
-----------------
Priorita Normální
* Zobrazovat dotazy přímo v okně Karla (zašednout okolí, nechat pouze dotaz)
* Dialog na spojování slovníků při importu/načítání
* Čtení více příkazů najednou (import)
--------------
Priorita nízká
* Zkontrolovat a doplnit nápovědu o nové vlastnosti (např. automatické vyplnění
nástrojového tipu podle prvního komentáře)
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

+2
View File
@@ -0,0 +1,2 @@
ExpiresActive On
ExpiresByType image/png A2592000
Binary file not shown.

After

Width:  |  Height:  |  Size: 566 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 703 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 768 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 794 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 745 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 892 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 831 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 551 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 966 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 504 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 656 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 714 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 688 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 533 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 786 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 934 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 755 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 952 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 349 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 757 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 601 B

+185
View File
@@ -0,0 +1,185 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Robot Karel: vývojové prostředí</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="cs" />
<meta name="Description" content="Robot Karel: vývojové prostředí" />
<meta name="Keywords" content="robot,karel,gui,prostredi,vyvojove prostredi,prostředí,vývojové prostředí" />
<meta name="Author" content="Oldřich Jedlička" />
<meta name="Copyright"
content="Copyright © 2006-2013 Oldřich Jedlička, Všechna práva vyhrazena" />
<link href="favicon.ico" rel="icon" />
<link href="favicon.ico" rel="shortcut icon" />
<link href="style/mesto-obecne.css" rel="stylesheet" type="text/css" />
<link href="style/nastroje-mesto.css" rel="stylesheet" type="text/css" />
<link href="style/obecny-styl.css" rel="stylesheet" type="text/css" />
<link href="style/tooltip.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" charset="utf-8">
ie_hack = 0;
verze_karla = "2.0.5";
</script>
<link href="style/nastroje-obecne.css" rel="stylesheet" type="text/css" />
<link href="style/prikazy-slovnik.css" rel="stylesheet" type="text/css" />
<link href="style/prikazy-editor.css" rel="stylesheet" type="text/css" />
<link href="style/ladici-konzola.css" rel="stylesheet" type="text/css" />
<link href="style/nastaveni.css" rel="stylesheet" type="text/css" />
<link href="style/styly.css" rel="stylesheet" type="text/css" />
<link href="style/tipy.css" rel="stylesheet" type="text/css" />
<link href="style/mesto-normalni.css" rel="stylesheet" type="text/css"
title="Klasika" id="styl-klasika" />
<link href="style/mesto-kulicky.css" rel="stylesheet" type="text/css"
title="Kuličky" id="styl-kulicky" />
<link href="style/nastroje-normalni.css" rel="stylesheet" type="text/css"
title="Klasika" />
<link href="style/tipy-normalni.css" rel="stylesheet" type="text/css"
title="Klasika" />
<link href="style/nastroje-kulicky.css" rel="stylesheet" type="text/css"
title="Kuličky" />
<link href="style/tipy-kulicky.css" rel="stylesheet" type="text/css"
title="Kuličky" />
<!--[if gte IE 5.5 & lt IE 7]>
<script type="text/javascript" charset="utf-8">
ie_hack = 1;
</script>
<link href="style/nastroje-obecne-ie.css" rel="stylesheet" type="text/css" />
<link href="style/prikazy-slovnik-ie.css" rel="stylesheet" type="text/css" />
<link href="style/prikazy-editor-ie.css" rel="stylesheet" type="text/css" />
<link href="style/ladici-konzola-ie.css" rel="stylesheet" type="text/css" />
<link href="style/nastaveni-ie.css" rel="stylesheet" type="text/css" />
<link href="style/styly-ie.css" rel="stylesheet" type="text/css" />
<link href="style/tipy-ie.css" rel="stylesheet" type="text/css" />
<link href="style/mesto-normalni-ie.css" rel="stylesheet" type="text/css"
title="Klasika" />
<link href="style/mesto-kulicky-ie.css" rel="stylesheet" type="text/css"
title="Kuličky" />
<link href="style/nastroje-normalni-ie.css" rel="stylesheet" type="text/css"
title="Klasika" />
<link href="style/tipy-normalni-ie.css" rel="stylesheet" type="text/css"
title="Klasika" />
<link href="style/nastroje-kulicky-ie.css" rel="stylesheet" type="text/css"
title="Kuličky" />
<link href="style/tipy-kulicky-ie.css" rel="stylesheet" type="text/css"
title="Kuličky" />
<![endif]-->
<script type="text/javascript" charset="utf-8"
src="scripts/obecne-funkce.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/tvorici-funkce.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/tooltip.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/mys.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/nastaveni-funkce.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/ladici-konzola-funkce.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/ajax.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/mesto-funkce.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/nastroje-funkce.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/styly-funkce.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/velikosti-funkce.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/prikazy-jadro.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/prikazy-rozpoznavani.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/nacitaci-ukladaci-funkce.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/okno-ulozeni-a-exportu.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/slovnik.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/prikazy-funkce-slovnik.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/prikazy-funkce-editor.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/kodovani-odkazu.js"></script>
</head>
<body onload="ajax.kontrola_metody(); spust_po_spusteni(); obnov_odkazy();">
<div id="okno1">
</div>
<div id="okno2">
</div>
<!-- Stránka -->
<div id="stranka">
<div id="okraj"></div>
<!-- Pravý sloupec -->
<div class="pravy-sloupec">
<div class="centrovany">
<!-- Město a nástroje -->
<!-- Město -->
<script type="text/javascript" charset="utf-8"
src="scripts/mesto-tvar.js"></script>
<!-- Nástroje -->
<script type="text/javascript" charset="utf-8"
src="scripts/nastroje-tvar.js"></script>
<!-- Konec města a nástrojů -->
<script type="text/javascript" charset="utf-8"
src="scripts/ladici-konzola-tvar.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/styly-tvar.js"></script>
<script type="text/javascript" charset="utf-8"
src="scripts/nastaveni-tvar.js"></script>
</div>
</div>
<!-- Konec pravého sloupce -->
<!-- Levý (hlavní) sloupec -->
<div class="informace">
<a class="levy" href="javascript:napoveda();">Nápověda</a>
<a class="levy" href="javascript:priklady();">Příklady</a>
<div class="pravy">
Copyright © 2006-2013 <a href="mailto:">Oldřich Jedlička</a>,
Všechna&nbsp;práva&nbsp;vyhrazena.<a class="pravy"
href="KOPIROVANI">Pravidla&nbsp;kopírování</a><a class="pravy"
href="http://download.oldium.net/karel/karel-2.0.5.tar.gz">Zdrojový kód</a>
</div>
</div>
<div class="hlavni-sloupec">
<script type="text/javascript" charset="utf-8"
src="scripts/prikazy-tvar-slovnik.js"></script>
</div>
<div class="hlavni-sloupec-posledni">
<form action="#">
<script type="text/javascript" charset="utf-8"
src="scripts/prikazy-tvar-editor.js"></script>
</form>
</div>
<!-- Konec levého sloupce -->
</div>
<!-- Konec stránky -->
</body>
</html>
+1097
View File
File diff suppressed because it is too large Load Diff
+1323
View File
File diff suppressed because it is too large Load Diff
+112
View File
@@ -0,0 +1,112 @@
/*
* [Česky]
* Projekt: Robot Karel
* Copyright: Viz KOPIROVANI v kořenovém adresáři projektu
*
* [English]
* Project: Karel, the Robot
* Copyright: See COPYING in the top level directory
*/
// JavaScript - funkce pro použití XMLHttpRequest (AJAX)
// ===========================================================================
// =~ Globální proměnné ~=====================================================
// Hlavní objekt
ajax = new Object();
// Typ používané metody pro AJAX
ajax.typ_metody = new Object();
ajax.typ_metody.NIC = 0;
ajax.typ_metody.JAVASCRIPT = 1;
ajax.typ_metody.ACTIVEX = 2;
// Nalezená metoda pro AJAX
ajax.metoda = ajax.typ_metody.NIC;
// ===========================================================================
// =~ Základní práce se soubory ~=============================================
// Zjištění podporované metody
ajax.zjisti_metodu = function ()
{
ajax.metoda = ajax.typ_metody.NIC;
try {
if ( window.XMLHttpRequest ) {
var nahravac = new XMLHttpRequest();
if ( nahravac ) {
ladici_vypis(LADENI, "ajax",
"nalezen javascriptový XMLHttpRequest");
ajax.metoda = ajax.typ_metody.JAVASCRIPT;
}
} else if ( window.ActiveXObject ) {
var nahravac = new ActiveXObject("Microsoft.XMLHTTP");
if ( nahravac ) {
ladici_vypis(LADENI, "ajax", "nalezen ActiveX objekt XMLHTTP");
ajax.metoda = ajax.typ_metody.ACTIVEX;
}
}
} catch (e) {}
if ( ajax.metoda == ajax.typ_metody.NIC ) {
ladici_vypis(CHYBA, "ajax", "nenalezena vhodná metoda");
}
return ajax.metoda;
}
// Vrátí true, pokud je možné použít metodu XMLHttpRequest
ajax.je_funkcni = function ()
{
return (ajax.metoda != ajax.typ_metody.NIC);
}
// Vytvoření nahrávače
ajax.vrat_nahravac = function ()
{
try {
if ( ajax.metoda == ajax.typ_metody.JAVASCRIPT ) {
return new XMLHttpRequest();
} else if ( ajax.metoda == ajax.typ_metody.ACTIVEX ) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
} catch (vse) {}
return undefined;
}
// Nahrání souboru
ajax.nahraj_soubor = function (nahravac, url, notifikace, asynchronne)
{
if ( nahravac ) {
try {
if ( notifikace ) {
nahravac.onreadystatechange = notifikace;
}
nahravac.open("GET", url, asynchronne);
nahravac.send(null);
return nahravac;
} catch (vse) {
return undefined;
}
} else {
return undefined;
}
}
// Nahrání souboru asynchronně
ajax.nahraj_soubor_pozdeji = function (nahravac, url, notifikace)
{
return this.nahraj_soubor(nahravac, url, notifikace, true);
}
// Zkontrolování podporované metody
ajax.kontrola_metody = function ()
{
if ( ajax.zjisti_metodu() == ajax.typ_metody.NIC ) {
alert(
"Nepodařilo se nalézt vhodnou metodu pro nahrávání souborů.\n\n" +
"Funkce spojování slovníku nebude dostupná."
);
}
}
+45
View File
@@ -0,0 +1,45 @@
/*
* [Česky]
* Projekt: Robot Karel
* Copyright: Viz KOPIROVANI v kořenovém adresáři projektu
*
* [English]
* Project: Karel, the Robot
* Copyright: See COPYING in the top level directory
*/
// JavaScript - kódování odkazů do dokumentu
var kodovany_mail = [ "oldium", "pro", "seznam", "cz" ];
if ( typeof(je_oldium_dot_home) == "undefined" ) {
je_oldium_dot_home = false;
if ( /^https?:\/\/[^\/]+\.oldium\.home\//.exec(document.URL) ) {
je_oldium_dot_home = true;
}
}
function dekoduj_mail() {
return kodovany_mail[0] + "." + kodovany_mail[1] + "@" +
kodovany_mail[2] + "." + kodovany_mail[3];
}
function obnov_odkazy() {
var odkazy = document.getElementsByTagName("a");
var muj_mail = dekoduj_mail();
for ( var i = 0; i < odkazy.length; i++ ) {
if ( odkazy[i].href == "mailto:" ) {
odkazy[i].href = "mailto:" + muj_mail;
} else {
if ( je_oldium_dot_home ) {
var novy_odkaz = odkazy[i].href.replace(
/^(https?:\/\/[^\/]+\.oldium)\.net\//, "$1.home/" );
odkazy[i].href = novy_odkaz;
}
if ( typeof(verze_karla) != "undefined" ) {
var odkaz_verze = odkazy[i].href.replace(
/karel-VERZE/, "karel-" + verze_karla );
odkazy[i].href = odkaz_verze;
}
}
}
}
+226
View File
@@ -0,0 +1,226 @@
/*
* [Česky]
* Projekt: Robot Karel
* Copyright: Viz KOPIROVANI v kořenovém adresáři projektu
*
* [English]
* Project: Karel, the Robot
* Copyright: See COPYING in the top level directory
*/
// JavaScript - funkce konzole pro ladění
// ===========================================================================
// =~ Globální nastavení ~====================================================
// Maximální počet řádek ve výpisu
// TODO: Nastavení v uživatelském rozhraní
nastaveni.pocet_radek_vypisu = 120;
// ===========================================================================
// =~ Globální proměnné ~=====================================================
// Informace o vypisu
vypisy = new Object();
// Aktuální počet řádek výpisu
vypisy.pocet_radek = 0;
// Sledování myši
vypisy.stisknute = false;
// Výpis v obráceném pořadí (novější první)
vypisy.obracene = true;
// Úrovně ladicích výpisů
CHYBA = 1; // Činnost nelze provést a uživatel nebyl informován
VAROVANI = 2; // Činnost nelze provést, ale uživatel byl informován
INFORMACE = 3; // Informace o provedené (!) činnosti
DETAIL = 4; // Detailní informace o činnosti
LADENI = 5; // Ladicí infomace pro vývojáře
vypisy.nazvy_urovni = new Array(
"chyba",
"varování",
"informace",
"detail",
"ladění"
);
// Nastavená úrovně výpisů
var uroven = unescape(hodnota_cookie("uroven_ladeni"));
for ( var i = 0; i < vypisy.nazvy_urovni.length; i++ ) {
if ( uroven == vypisy.nazvy_urovni[i] ) {
vypisy.uroven = i+1;
break;
}
}
if ( vypisy.uroven == undefined ) {
if ( je_oldium_dot_home ) {
vypisy.uroven = DETAIL;
} else {
vypisy.uroven = INFORMACE;
}
}
// Nápověda k nastavení hloubky výpisů
vypisy.uroven_tooltip = new Array(
[ "Úroveň chyb", "Zapisuj pouze chyby" ],
[ "Uroveň varování", "Zapisuj chyby a varování" ],
[ "Úroveň informací", "Zapisuj chyby, varování a informativní zprávy" ],
[ "Úroveň detailů",
"Zapisuj chyby, varování, informativní a detailní zprávy" ],
[ "Úroveň pro vývojáře", "Zapisuj všechny informace pro vývojáře" ]
);
vypisy.zobrazeni_tooltip = new Array(
[ "Ladicí konzola", "Zobraz ladicí konzolu" ],
[ "Ladicí konzola", "Skryj ladicí konzolu" ]
);
// Objekt pro práci s myší
vypisy.mys = new Mys(new Tooltip());
vypisy.mys.tooltip.muzu_zobrazit = function (info, detail) { return true; }
// ===========================================================================
// =~ Funkce pro operace s konzolí ~==========================================
function ladici_vypis(uroven, funkce, info, text)
{
if ( uroven > vypisy.uroven ) return;
var konzola = document.getElementById("konzola");
if ( !konzola ) return;
if ( vypisy.pocet_radek == nastaveni.pocet_radek_vypisu ) {
if ( ! vypisy.obracene ) {
// Smaž první řádku ve výpisu
konzola.removeChild(konzola.firstChild); // Text
konzola.removeChild(konzola.firstChild); // <BR />
vypisy.pocet_radek--;
} else {
// Smaž poslední řádku ve výpisu
konzola.removeChild(konzola.lastChild); // <BR />
konzola.removeChild(konzola.lastChild); // Text
vypisy.pocet_radek--;
}
}
if ( text == undefined ) {
text = info;
info = undefined;
}
var cas = formatuj_text(new Date());
if ( info != undefined ) {
info = formatuj_text(info);
}
var element_radka = document.createElement("SPAN");
var element_cas = element_radka.cloneNode(false);
var element_uroven = element_radka.cloneNode(false);
var element_funkce = element_radka.cloneNode(false);
if ( info != undefined ) var element_info = element_radka.cloneNode(false);
var element_text = element_radka.cloneNode(false);
var element_mezera = document.createTextNode("\u00A0"); // &nbsp;
var element_br = document.createElement("BR");
// Text
element_cas.appendChild(document.createTextNode(cas));
element_funkce.appendChild(document.createTextNode(funkce));
element_uroven.appendChild(document.createTextNode(
"["+vypisy.nazvy_urovni[uroven-1]+"]"));
if ( info != undefined )
element_info.appendChild(document.createTextNode("("+info+")"));
element_text.appendChild(document.createTextNode(text));;
// Styly
element_radka.className = "radka";
element_cas.className = "cas";
element_uroven.className = "uroven";
element_funkce.className = "funkce";
if ( info != undefined ) element_info.className = "info";
element_text.className = "text";
// Tvar
element_radka.appendChild(element_cas);
element_radka.appendChild(element_mezera.cloneNode(false));
element_radka.appendChild(element_uroven);
element_radka.appendChild(element_mezera.cloneNode(false));
element_radka.appendChild(element_funkce);
if ( info != undefined ) {
element_radka.appendChild(element_mezera.cloneNode(false));
element_radka.appendChild(element_info);
}
element_radka.appendChild(element_mezera);
element_radka.appendChild(element_text);
// Zařazení do HTML
if ( ! vypisy.obracene ) {
konzola.appendChild(element_radka);
konzola.appendChild(element_br);
} else {
konzola.insertBefore(element_br, konzola.firstChild);
konzola.insertBefore(element_radka, konzola.firstChild);
}
vypisy.pocet_radek++;
}
vypisy.mys.proved_vyber = function(objekt)
{
if ( objekt == "vypis" ) {
return false;
} else {
vypisy.uroven = objekt.slice(-1);
nastav_cookie("uroven_ladeni",
escape(vypisy.nazvy_urovni[vypisy.uroven-1]), 365);
return true;
}
}
vypisy.mys.prekresli_stav = function(objekt, detail, zvyraznen, stisknut,
vybran)
{
if ( objekt != "vypis" ) {
var element=document.getElementById("uroven");
ladici_vypis(LADENI,"vypisy.mys.prekresli_stav",objekt,
"nastavuji odpovídající pozadí");
element.className = objekt;
}
}
vypisy.mys.proved_stisk = function(objekt)
{
if ( objekt == "vypis" ) {
var element = document.getElementById("konzola");
var konzola = element.parentNode;
var ikona = document.getElementById("vypis-ikona");
if ( konzola.style.display != "block" ) {
konzola.style.display = "block";
ikona.className = "ikona-sbalit";
} else {
konzola.style.display = "none";
ikona.className = "ikona-rozbalit";
}
}
}
vypisy.mys.tooltip.obnov = function (tooltip, info, detail)
{
if ( info == 'vypis' ) {
var element = document.getElementById("konzola");
var konzola = element.parentNode;
var id = ( konzola.style.display != "block" ) ? 0 : 1;
tvoric.obnov_tooltip( tooltip, "",
vypisy.zobrazeni_tooltip[id][0], vypisy.zobrazeni_tooltip[id][1] );
} else {
tvoric.obnov_tooltip( tooltip, "", detail.nadpis, detail.popis );
}
}
function uroven_ladeni(uroven)
{
vypisy.mys.vyber("uroven-"+uroven);
}
+56
View File
@@ -0,0 +1,56 @@
/*
* [Česky]
* Projekt: Robot Karel
* Copyright: Viz KOPIROVANI v kořenovém adresáři projektu
*
* [English]
* Project: Karel, the Robot
* Copyright: See COPYING in the top level directory
*/
// JavaScript - základní tvar ladicí konzole
// ===========================================================================
// =~ Vygenerování konzole ~==================================================
document.write('<div class="ovladani-ladeni">');
document.write('<div class="prvky"><div class="obsah">');
document.write('<div id="uroven" class="uroven-1"></div>');
document.write('<div class="maska">');
for ( var i = 1; i <= vypisy.uroven_tooltip.length; i++ ) {
var mys_info = "'uroven-"+i+"'";
var mys_detail =
"{nadpis:'"+vypisy.uroven_tooltip[i-1][0]+"',"+
"popis:'"+vypisy.uroven_tooltip[i-1][1]+"'}";
document.write('<div id="uroven-'+i+'" '+
'onmouseover="return vypisy.mys.pres(event,'+mys_info+','+mys_detail+');" '+
'onmouseout="return vypisy.mys.pryc(event,'+mys_info+','+mys_detail+');" '+
'onmousedown="return vypisy.mys.stisk(event,'+mys_info+','+mys_detail+');"'+
'onmouseup="return vypisy.mys.pust(event,'+mys_info+','+mys_detail+');" '+
'></div>');
}
document.write('</div>');
document.write('<div id="vypis-ikona" class="ikona-rozbalit"></div>');
document.write('<div class="vypis-ikona" '+
'onmouseover="return vypisy.mys.pres(event,\'vypis\');" ' +
'onmouseout="return vypisy.mys.pryc(event,\'vypis\');" '+
'onmousedown="return vypisy.mys.stisk(event,\'vypis\');" '+
'onmouseup="return vypisy.mys.pust(event,\'vypis\');" '+
'></div>');
document.write('</div></div>');
document.write('<p class="popis">Ladicí konzola</p>');
document.write('</div>');
document.write('<div class="konzola"><p id="konzola"></p></div>');
// ===========================================================================
// =~ Základní nastavení ~====================================================
uroven_ladeni(vypisy.uroven);
+401
View File
@@ -0,0 +1,401 @@
/*
* [Česky]
* Projekt: Robot Karel
* Copyright: Viz KOPIROVANI v kořenovém adresáři projektu
*
* [English]
* Project: Karel, the Robot
* Copyright: See COPYING in the top level directory
*/
// JavaScript - základní funkce pro město
// ===========================================================================
// =~ Globální nastavení ~====================================================
// Čas pro dvojklik v milisekundách
// TODO: Nastavení v uživatelském rozhraní
nastaveni.dvojklik = 500;
// ===========================================================================
// =~ Globální proměnné ~=====================================================
// Pozice Karla
karel = new Object();
// Směr: 0-východ, 1-sever, 2-západ, 3-jih
karel.VYCHOD = 0;
karel.SEVER = 1;
karel.ZAPAD = 2;
karel.JIH = 3;
karel.smer = karel.VYCHOD;
karel.pozice = {x:0, y:0};
karel.nazev_smeru = new Array("vychod", "sever", "zapad", "jih");
karel.nazev_smeru_plny = new Array("východ", "sever", "západ", "jih");
// Pozice domova
domov = new Object();
domov.pozice = {x:0, y:0};
// Konstanty pohybu (východ, sever, západ, jih)
plus = new Object();
plus.x = new Array(1, 0, -1, 0);
plus.y = new Array(0, 1, 0, -1);
// Struktura města
mesto = new Object();
// Velikost
mesto.velikost = {x: 10, y: 10};
// Pole
mesto.pole = new Array();
mesto.pole[0] = new Array();
for ( var x = 0; x < mesto.velikost.x; x++ ) {
mesto.pole[0].push(0);
}
for ( var y = 1; y < mesto.velikost.y; y++ ) {
mesto.pole[y] = mesto.pole[0].concat();
}
// Názvy obrázků
mesto.obrazky = new Array();
mesto.obrazky[-1] = "zed";
mesto.obrazky[0] = null;
for ( var i = 1; i < 9; i++ ) { // A potom značky
mesto.obrazky[i] = "znacka-"+i;
}
// Objekt pro práci s myší
mesto.mys = new Mys();
// Čas posledního kliku (provedení akce) - pro dvojklik
mesto.posledni_klik = null;
// ===========================================================================
// =~ Základní funkce pro aktualizaci města ~=================================
// Nastav správné parametry políčka podle města
mesto.prekresli_pole = function (pozice)
{
var element = document.getElementById('pozice_'+pozice.x+'_'+pozice.y);
var pole = mesto.pole[pozice.x][pozice.y];
var obrazek = mesto.obrazky[pole];
if ( element.className != obrazek ) {
element.className = obrazek;
}
}
// Nastav pozici Karla
mesto.pozice_karla = function (pozice)
{
if ( pozice.x >= 0 && pozice.x < mesto.velikost.x &&
pozice.y >= 0 && pozice.y < mesto.velikost.y &&
mesto.pole[pozice.x][pozice.y] >= 0 )
{
var element = document.getElementById('pozice_karel');
element.style.left = (pozice.x*32)+"px";
element.style.top = ((mesto.velikost.y - pozice.y - 1)*32)+"px";
karel.pozice = pozice;
ladici_vypis(DETAIL, "mesto.pozice_karla", pozice, "Karel umístěn");
return true;
} else {
ladici_vypis(CHYBA, "mesto.pozice_karla", pozice, "Karla nelze umístit kvůli zdi");
return false;
}
}
// Nastav orientaci Karla
mesto.orientace_karla = function (smer)
{
smer %= karel.nazev_smeru.length;
if ( smer < 0 ) smer += karel.nazev_smeru.length;
var element = document.getElementById('pozice_karel');
element.className = "karel-"+karel.nazev_smeru[smer];
karel.smer = smer;
ladici_vypis(DETAIL, "mesto.orientace_karla",
"Karel nasměrován na "+karel.nazev_smeru_plny[smer]);
}
// Nastav pozici Domova
mesto.pozice_domova = function (pozice)
{
if ( mesto.pole[pozice.x][pozice.y] >= 0 ) {
var element = document.getElementById('pozice_domov');
element.style.left = (pozice.x*32)+"px";
element.style.top = ((mesto.velikost.y - pozice.y - 1)*32)+"px";
domov.pozice = pozice;
ladici_vypis(DETAIL, "mesto.pozice_domova", pozice, "domov umístěn");
} else {
ladici_vypis(CHYBA, "mesto.pozice_domova", pozice, "domov nelze umístit kvůli zdi");
}
}
// Nahrání celého města
mesto.nahraj_mesto = function (karel_pozice, smer, domov_pozice, mesto_pole)
{
var uzivatel_chce = window.confirm("Opravdu si přejete nahrát město?");
if ( uzivatel_chce ) {
mesto.velikost.x = mesto_pole.length;
mesto.velikost.y = mesto_pole[0].length;
this.pozice_karla(karel_pozice);
this.orientace_karla(smer);
this.pozice_domova(domov_pozice);
for ( var x = 0; x < mesto.pole.length; x++ ) {
for ( var y = 0; y < mesto.pole[0].length; y++ ) {
if ( mesto.pole[x][y] != mesto_pole[x][y] ) {
mesto.pole[x][y] = mesto_pole[x][y];
this.prekresli_pole( {x: x, y: y} );
}
}
}
}
}
// ===========================================================================
// =~ Podmínky pro Karla ~====================================================
mesto.JE_ZED = function ()
{
var pozice = {
x: karel.pozice.x+plus.x[karel.smer],
y: karel.pozice.y+plus.y[karel.smer]
};
return !( pozice.x >= 0 && pozice.x < mesto.velikost.x &&
pozice.y >= 0 && pozice.y < mesto.velikost.y &&
mesto.pole[pozice.x][pozice.y] >= 0 );
}
mesto.JE_ZNACKA = function ()
{
return mesto.pole[karel.pozice.x][karel.pozice.y] > 0;
}
mesto.JE_DOMOV = function ()
{
return ( karel.pozice.x == domov.pozice.x
&& karel.pozice.y == domov.pozice.y );
}
mesto.JE_VYCHOD = function ()
{
return karel.smer == karel.VYCHOD;
}
mesto.JE_SEVER = function ()
{
return karel.smer == karel.SEVER;
}
mesto.JE_ZAPAD = function ()
{
return karel.smer == karel.ZAPAD;
}
mesto.JE_JIH = function ()
{
return karel.smer == karel.JIH;
}
// ===========================================================================
// =~ Práce s myší ~==========================================================
mesto.mys.prekresli_stav = function (pozice, detail, zvyraznen, stisknut,
vybran)
{
var element = document.getElementById('pozice_vyber');
if ( zvyraznen ) {
element.style.visibility = "visible";
element.style.left = (pozice.x*32)+"px";
element.style.top = ((mesto.velikost.y - pozice.y - 1)*32)+"px";
nastroje.zobraz_pozici(pozice);
} else if ( !this.je_zvyraznen() ) {
element.style.visibility = "hidden";
nastroje.zobraz_pozici(null);
}
}
mesto.mys.proved_zvyrazneni = function(pozice, detail)
{
return true;
}
mesto.mys.proved_vyber = function(pozice, detail)
{
var cas = new Date();
var rychly = (
mesto.posledni_klik != null &&
(cas-mesto.posledni_klik) < nastaveni.dvojklik
);
mesto.posledni_klik = cas;
switch ( nastroje.vybrany() ) {
case "karel":
if ( ! rychly || ! jsou_shodne(pozice, karel.pozice) ) {
mesto.pozice_karla(pozice);
} else {
mesto.proved_vlevo_vbok();
}
break;
case "domov":
mesto.pozice_domova(pozice);
break;
case "zed":
mesto.umisti_zed(pozice);
break;
case "znacka-plus":
mesto.poloz(pozice);
break;
case "znacka-minus":
mesto.zvedni(pozice);
break;
default:
}
return false;
}
// ===========================================================================
// =~ Příkazy a funkce pro editaci města ~====================================
mesto.proved_poloz = function (pozice)
{
var chyba = new Chyba();
if ( pozice == null ) {
pozice = {x:karel.pozice.x, y:karel.pozice.y};
}
if ( mesto.pole[pozice.x][pozice.y] >= 0 ) {
if ( mesto.pole[pozice.x][pozice.y] < 8 ) {
mesto.pole[pozice.x][pozice.y]++;
ladici_vypis(DETAIL, "mesto.proved_poloz", pozice,
"položena značka, aktuální počet: "+mesto.pole[pozice.x][pozice.y]);
mesto.prekresli_pole(pozice);
} else {
ladici_vypis(VAROVANI, "mesto.proved_poloz", pozice,
"příliš mnoho značek");
chyba.nastav( true, "Nemohu položit více jak 8 značek." );
}
} else {
ladici_vypis(CHYBA, "mesto.proved_poloz", pozice,
"nelze položit značku kvůli zdi");
}
return new Vysledek( chyba, Vysledek.PROVEDL_AKCI );
}
mesto.proved_zvedni = function (pozice)
{
var chyba = new Chyba();
if ( pozice == null ) {
pozice = {x:karel.pozice.x, y:karel.pozice.y};
}
if ( mesto.pole[pozice.x][pozice.y] >= 0 ) {
if ( mesto.pole[pozice.x][pozice.y] > 0 ) {
mesto.pole[pozice.x][pozice.y]--;
ladici_vypis(DETAIL, "mesto.proved_zvedni", pozice,
"zvednuta značka, aktuální počet: "+mesto.pole[pozice.x][pozice.y]);
mesto.prekresli_pole(pozice);
} else {
ladici_vypis(VAROVANI, "mesto.proved_zvedni", pozice,
"žádná značka, nelze zvednout");
chyba.nastav( true, "Nemohu zvednout značku. Žádná tam není." );
}
} else {
ladici_vypis(CHYBA, "mesto.proved_zvedni", pozice,
"pouze zeď, nelze zvednout");
}
return new Vysledek( chyba, Vysledek.PROVEDL_AKCI );
}
mesto.proved_vlevo_vbok = function (pozice)
{
mesto.orientace_karla(karel.smer+1);
return new Vysledek( new Chyba(), Vysledek.PROVEDL_AKCI );
}
mesto.proved_krok = function (pozice)
{
if ( pozice == null ) {
pozice = {x:karel.pozice.x, y:karel.pozice.y};
}
var nova_pozice =
{ x:pozice.x+plus.x[karel.smer], y:pozice.y+plus.y[karel.smer] };
var chyba = new Chyba();
if ( ! mesto.pozice_karla( nova_pozice ) ) {
chyba.nastav( true, "Nemůžu učinit KROK, přede mnou je zeď." );
}
return new Vysledek( chyba, Vysledek.PROVEDL_AKCI );
}
mesto.poloz = function (pozice)
{
var navrat = mesto.proved_poloz(pozice);
navrat.chyba.zobraz();
}
mesto.zvedni = function (pozice)
{
var navrat = mesto.proved_zvedni(pozice);
navrat.chyba.zobraz();
}
mesto.umisti_zed = function (pozice)
{
var je_karel = jsou_shodne(pozice, karel.pozice);
var je_domov = jsou_shodne(pozice, domov.pozice);
if ( !je_karel && !je_domov ) {
if ( mesto.pole[pozice.x][pozice.y] >= 0 ) {
mesto.pole[pozice.x][pozice.y] = -1;
ladici_vypis(DETAIL, "mesto.umisti_zed", pozice, "zeď umístěna");
} else {
mesto.pole[pozice.x][pozice.y] = 0;
ladici_vypis(DETAIL, "mesto.umisti_zed", pozice, "zeď zrušena");
}
mesto.prekresli_pole(pozice);
} else {
var hlaska = "";
if ( je_karel ) {
hlaska = "Karlovi a ";
}
if ( je_domov ) {
hlaska += "domovu ";
}
ladici_vypis(CHYBA, "mesto.umisti_zed", pozice,
"nelze umístit zeď kvůli "+hlaska.slice(0,-3));
}
}
mesto.vymaz_znacky = function ()
{
for ( var x=0; x<mesto.pole.length; x++ ) {
for ( var y=0; y<mesto.pole[x].length; y++ ) {
if ( mesto.pole[x][y] > 0 ) {
mesto.pole[x][y] = 0;
mesto.prekresli_pole({x:x, y:y});
}
}
}
ladici_vypis(INFORMACE, "mesto.vymaz_znacky", "značky vymazány");
}
mesto.vymaz_mesto = function ()
{
var uzivatel_chce = window.confirm("Opravdu chcete vyčistit celé město?");
if ( uzivatel_chce ) {
ladici_vypis(INFORMACE, "mesto.vymaz_mesto", "mažu značky");
for ( var x=0; x<mesto.pole.length; x++ ) {
for ( var y=0; y<mesto.pole[x].length; y++ ) {
if ( mesto.pole[x][y] != 0 ) {
mesto.pole[x][y] = 0;
mesto.prekresli_pole({x:x, y:y});
}
}
}
mesto.pozice_karla({x:0, y:0});
mesto.orientace_karla(0);
mesto.pozice_domova({x:0, y:0});
} else {
ladici_vypis(DETAIL, "mesto.vymaz_mesto", "zrušené mazání města");
}
}
+78
View File
@@ -0,0 +1,78 @@
/*
* [Česky]
* Projekt: Robot Karel
* Copyright: Viz KOPIROVANI v kořenovém adresáři projektu
*
* [English]
* Project: Karel, the Robot
* Copyright: See COPYING in the top level directory
*/
// JavaScript - základní tvar města
// Pomocné funkce
function zapis_strukturu(obsah)
{
for ( var y = mesto.velikost.y-1; y >= 0; y-- ) {
for ( var x = 0; x < mesto.velikost.x; x++ ) {
formatovany_obsah = obsah(x, y);
document.write('<div>' + formatovany_obsah + '</div>');
}
}
}
// ===========================================================================
// =~ Vygenerování města ~====================================================
// Začátek
document.write('<div class="mesto">');
// Nadpis
document.write('<div class="nadpis">Město</div>');
// Obsah
document.write('<div class="obsah">');
// Pozadí
document.write('<div class="linka"></div>');
document.write('<div class="pozadi">');
zapis_strukturu(function(x, y){ return '<div class="policko"></div>'; });
document.write('</div>');
// Struktura města
document.write('<div class="struktura">');
zapis_strukturu(function(x, y){ return '<div id="pozice_'+x+'_'+y+'"></div>'; });
document.write('</div>');
// Domov
document.write('<div class="policko-domov">' +
'<div class="domov" id="pozice_domov"></div></div>');
// Karel
document.write('<div class="policko-karel">' +
'<div class="karel-vychod" id="pozice_karel"></div></div>');
// Výběr
document.write('<div class="policko-vyber">' +
'<div class="vyber" id="pozice_vyber"></div></div>');
// Maska města - rychlejší řešení, než :hover
document.write('<div class="maska">');
zapis_strukturu(function(x, y){ return '<div '+
'onmouseover="return mesto.mys.pres(event,{x:'+x+',y:'+y+'});" ' +
'onmouseout="return mesto.mys.pryc(event,{x:'+x+',y:'+y+'});" '+
'onmousedown="return mesto.mys.stisk(event,{x:'+x+',y:'+y+'});" '+
'onmouseup="return mesto.mys.pust(event,{x:'+x+',y:'+y+'});" '+
'></div>' });
document.write('</div>');
// Konec
document.write('</div>');
document.write('</div>');
// ===========================================================================
// =~ Základní nastavení ~====================================================
mesto.pozice_karla( karel.pozice );
mesto.orientace_karla( karel.smer );
mesto.pozice_domova( domov.pozice );

Some files were not shown because too many files have changed in this diff Show More