//
// Author: Hanna Lehtola
// Original base document by Timo Ehmke
// Systemvariablen
// ===============
APPLET_WIDTH = 300
APPLET_HEIGHT = 300
WORLD_X_MAX = 9.0
WORLD_X_MIN = -9.0
WORLD_Y_MAX = +9.0
WORLD_Y_MIN = -9.0
ALIGN = RIGHT
// Figurenbeschreibung
// ===================
//punaiset solmut
e[1] = v1p; point; fixed; 5.0,-7.0; 0;red;red;0;
e[2] = v2p; point; fixed; -5.0,-7.0; 0;red;red;0;
e[3] = v3p; point; fixed; -5.0,3.0; 0;red;red;0;
e[4] = v4p; point; fixed; 5.0,3.0; 0;red;red;0;
e[5] = v5p; point; fixed; 0.0,-2.0; 0;red;red;0;
e[6] = v6p; point; fixed; -5.0,-2.0; 0;red;red;0;
e[7] = v7p; point; fixed; 0.0,-7.0; 0;red;red;0;
e[8] = v8p; point; fixed; 5.0,-2.0; 0;red;red;0;
e[9] = v9p; point; fixed; 0.0,3.0; 0;red;red;0;
//mustat solmut
e[10] = v1m; point; fixed; 5.0,-7.0; 0;black;black;0;
e[11] = v2m; point; fixed; -5.0,-7.0; 0;black;black;0;
e[12] = v3m; point; fixed; -5.0,3.0; 0;black;black;0;
e[13] = v4m; point; fixed; 5.0,3.0; 0;black;black;0;
e[14] = v5m; point; fixed; 0.0,-2.0; 0;black;black;0;
e[15] = v6m; point; fixed; -5.0,-2.0; 0;black;black;0;
e[16] = v7m; point; fixed; 0.0,-7.0; 0;black;black;0;
e[17] = v8m; point; fixed; 5.0,-2.0; 0;black;black;0;
e[18] = v9m; point; fixed; 0.0,3.0; 0;black;black;0;
//mustat kaaret
e[19] = v3v9; line; connect; v3m,v9m; 0;0;black;0;
e[20] = v9v4; line; connect; v9m,v4m; 0;0;black;0;
e[21] = v6v5; line; connect; v6m,v5m; 0;0;black;0;
e[22] = v5v8; line; connect; v5m,v8m; 0;0;black;0;
e[23] = v2v7; line; connect; v2m,v7m; 0;0;black;0;
e[24] = v7v1; line; connect; v7m,v1m; 0;0;black;0;
e[25] = v6v3; line; connect; v6m,v3m; 0;0;black;0;
e[26] = v2v6; line; connect; v2m,v6m; 0;0;black;0;
e[27] = v6v3; line; connect; v6m,v3m; 0;0;black;0;
e[28] = v7v5; line; connect; v7m,v5m; 0;0;black;0;
e[29] = v5v9; line; connect; v5m,v9m; 0;0;black;0;
e[30] = v1v8; line; connect; v1m,v8m; 0;0;black;0;
e[31] = v8v4; line; connect; v8m,v4m; 0;0;black;0;
e[32] = v5v3; line; connect; v5m,v3m; 0;0;black;0;
e[33] = v5v4; line; connect; v5m,v4m; 0;0;black;0;
e[34] = v5v2; line; connect; v5m,v2m; 0;0;black;0;
e[35] = v5v1; line; connect; v5m,v1m; 0;0;black;0;
//nimet
e[36] = v1; point; fixed; 5.3,-7.0; black;0;0;0;
e[37] = v2; point; fixed; -6.3,-7.0; black;0;0;0;
e[38] = v3; point; fixed; -6.3,3.0; black;0;0;0;
e[39] = v4; point; fixed; 5.3,3.0; black;0;0;0;
e[40] = v5; point; fixed; 0.4,-2.3; black;0;0;0;
e[41] = v6; point; fixed; -6.3,-2.0; black;0;0;0;
e[42] = v7; point; fixed; -0.2,-7.8; black;0;0;0;
e[43] = v8; point; fixed; 5.3,-2.0; black;0;0;0;
e[44] = v9; point; fixed; 0.0,3.3; black;0;0;0;
e[45] = reitti1; line; connect; v1m,v5m; 0;0;black;0;
e[46] = reitti2; line; connect; v5m,v2m; 0;0;black;0;
e[47] = reitti3; line; connect; v2m,v6m; 0;0;black;0;
e[48] = reitti4; line; connect; v6m,v3m; 0;0;black;0;
e[49] = reitti5; line; connect; v3m,v9m; 0;0;black;0;
e[50] = reitti6; line; connect; v9m,v4m; 0;0;black;0;
e[51] = reitti7; line; connect; v4m,v8m; 0;0;black;0;
e[52] = reitti8; line; connect; v2m,v7m; 0;0;black;0;
e[53] = reitti9; line; connect; v5m,v7m; 0;0;black;0;
e[54] = reitti10; line; connect; v7m,v2m; 0;0;black;0;
e[55] = an1; point; dragable; 5.0,-7.0,reitti1; 0;red;red;0;
e[56] = an2; point; dragable; 0.0,-2.0,reitti2; 0;red;red;0;
e[57] = an3; point; dragable; -5.0,-7.0,reitti3; 0;red;red;0;
e[58] = an4; point; dragable; -5.0,-2.0,reitti4; 0;red;red;0;
e[59] = an5; point; dragable; -5.0,3.0,reitti5; 0;red;red;0;
e[60] = an6; point; dragable; 0.0,3.0,reitti6; 0;red;red;0;
e[61] = an7; point; dragable; 5.0,3.0,reitti7; 0;red;red;0;
e[62] = an8; point; dragable; -5.0,-7.0,reitti8; 0;red;red;0;
e[63] = an9; point; dragable; 0.0,-2.0,reitti9; 0;red;red;0;
e[64] = an10; point; dragable; 0.0,-7.0,reitti10; 0;red;red;0;
e[65] = viiva1; line; connect; v1m,an1; 0;0;red;0;
e[66] = viiva2; line; connect; v5m,an2; 0;0;red;0;
e[67] = viiva3; line; connect; v2m,an3; 0;0;red;0;
e[68] = viiva4; line; connect; v6m,an4; 0;0;red;0;
e[69] = viiva5; line; connect; v3m,an5; 0;0;red;0;
e[70] = viiva6; line; connect; v9m,an6; 0;0;red;0;
e[71] = viiva7; line; connect; v4m,an7; 0;0;red;0;
e[72] = viiva8; line; connect; v2m,an8; 0;0;red;0;
e[73] = viiva9; line; connect; v5m,an9; 0;0;red;0;
e[74] = viiva10; line; connect; v7m,an10; 0;0;red;0;
e[75] = askel; measure; JSfunction; "getStep","action";
e[76] = askel_1; measure; calculate; "if (calculate(askel) = 1) then (1) else (0)"
e[77] = askel_2; measure; calculate; "if (calculate(askel) = 2) then (1) else (0)"
e[78] = askel_3; measure; calculate; "if (calculate(askel) = 3) then (1) else (0)"
e[79] = askel_4; measure; calculate; "if (calculate(askel) = 4) then (1) else (0)"
e[80] = askel_7; measure; calculate; "if (calculate(askel) = 7) then (1) else (0)"
e[81] = askel_8; measure; calculate; "if (calculate(askel) = 8) then (1) else (0)"
// Animation
// =========
anim[1] = "if (calculate(askel) = 1) animate (an1,10,1,50,1)"
anim[2] = "if (isIncident(an1,v5m)&calculate(askel_1)) animate (an2,10,1,50,1)"
anim[3] = "if (isIncident(an2,v2m)&calculate(askel_1)) animate (an3,10,1,50,1)"
anim[4] = "if (isIncident(an3,v6m)&calculate(askel_1)) animate (an4,10,1,50,1)"
anim[5] = "if (isIncident(an4,v3m)&calculate(askel_1)) animate (an5,10,1,50,1)"
anim[6] = "if (isIncident(an5,v9m)&calculate(askel_1)) animate (an6,10,1,50,1)"
anim[7] = "if (isIncident(an6,v4m)&calculate(askel_1)) animate (an7,10,1,50,1)"
anim[8] = "if (calculate(askel) = 2) animate (an7,10,0,50,1)"
anim[9] = "if (isIncident(an7,v4m)&calculate(askel_2)) animate (an6,10,0,50,1)"
anim[10] = "if (isIncident(an6,v9m)&calculate(askel_2)) animate (an5,10,0,50,1)"
anim[11] = "if (isIncident(an5,v3m)&calculate(askel_2)) animate (an4,10,0,50,1)"
anim[12] = "if (isIncident(an4,v6m)&calculate(askel_2)) animate (an3,10,0,50,1)"
anim[13] = "if (calculate(askel) = 3) animate (an8,10,1,50,1)"
anim[14] = "if (calculate(askel) = 4) animate (an8,10,0,50,1)"
anim[15] = "if (calculate(askel) = 5) animate (an2,10,0,50,1)"
anim[16] = "if (calculate(askel) = 7) animate (an9,10,1,50,1)"
anim[17] = "if (isIncident(an9,v7m)&calculate(askel_7)) animate (an10,10,1,50,1)"
anim[18] = "if (isIncident(an10,v2m)&calculate(askel_7)) animate (an3,10,1,50,1)"
anim[19] = "if (isIncident(an3,v6m)&calculate(askel_7)) animate (an4,10,1,50,1)"
anim[20] = "if (isIncident(an4,v3m)&calculate(askel_7)) animate (an5,10,1,50,1)"
anim[21] = "if (isIncident(an5,v9m)&calculate(askel_7)) animate (an6,10,1,50,1)"
anim[22] = "if (isIncident(an6,v4m)&calculate(askel_7)) animate (an7,10,1,50,1)"
// Ein- und Ausblenden von Objekten
// ================================
hidden[1] = "if (calculate(askel) != 6) hide (Textbox_6)"
hidden[2] = "if (not(isIncident(an1,v5m))) hide (an2)"
hidden[3] = "if (not(isIncident(an2,v2m)|isIncident(an10,v2m))) hide (an3)"
hidden[4] = "if (not(isIncident(an3,v6m))) hide (an4)"
hidden[5] = "if (not(isIncident(an4,v3m))) hide (an5)"
hidden[6] = "if (not(isIncident(an5,v9m))) hide (an6)"
hidden[7] = "if (not(isIncident(an6,v4m))) hide (an7)"
hidden[8] = "if (calculate(askel) != 7) hide (an9)"
hidden[9] = "if (not(calculate(askel_3)|calculate(askel_4))) hide (an8)"
//hidden[10] = "if (calculate(askel) != 7) hide (viiva10)"
hidden[10] = "if (not(isIncident(an9,v7m)&isIncident(an3,v2m))) hide (an10)"
hidden[11] = "if (calculate(askel) = 6) hide (viiva8)"
hidden[12] = "if (calculate(askel) > 0) hide (v1m)"
hidden[13] = "if (isIncident(an1,v5m)) hide (v5m)"
hidden[14] = "if (isIncident(an2,v2m)|isIncident(an10,v2m)) hide (v2m)"
hidden[15] = "if (isIncident(an3,v6m)) hide (v6m)"
hidden[16] = "if (isIncident(an4,v3m)) hide (v3m)"
hidden[17] = "if (isIncident(an5,v9m)) hide (v9m)"
hidden[18] = "if (isIncident(an6,v4m)) hide (v4m)"
hidden[19] = "if (isIncident(an8,v7m)) hide (v7m)"
hidden[20] = "if (isIncident(an9,v7m)) hide (v7m)"
hidden[21] = "if (calculate(askel) != 1) hide (Textbox_1)"
hidden[22] = "if (calculate(askel) != 2) hide (Textbox_2)"
hidden[23] = "if (calculate(askel) != 3) hide (Textbox_3)"
hidden[24] = "if (calculate(askel) != 4) hide (Textbox_4)"
hidden[25] = "if (calculate(askel) != 5) hide (Textbox_5)"
hidden[26] = "if (calculate(askel) != 7) hide (Textbox_7)"
// Textfenster
// ===========
//askel 1
Position = 10;10;-1;-1
Kuljetaan ensin lähtösolmusta niin kauas kuin
päästään vierailematta edellisissä solmuissa
uudestaan. Seuraavaksi solmuksi valitaan aina
pienin mahdollinen.
//askel 2
Position = 10;10;-1;-1
Ketjussa ei ole kaikkia verkon solmuja.
Palataan sellaiseen edelliseen solmuun
josta voidaan valita toinen reitti.
//askel 3
Position = 10;10;-1;-1
Nyt voidaan valita reitti solmuun v7.
//askel 4
Position = 10;10;-1;-1
Umpikuja, palattava solmuun v2.
//askel 5
Position = 10;10;-1;-1
Solmusta v2 ei voida edetä solmuun v6
eikä solmuun v7, palattava solmuun v5.
//askel 6
Position = 10;10;-1;-1
Seuraavaksi edettäisiin samaan tapaan
solmuihin v3, v4 ja v6, mutta selvästi
niistä on palattava solmuun v5 kuten
edellä.
//askel 7
Position = 10;10;-1;-1
Edetään solmuun v7, ja siitä niin kauas kuin
päästään. Nyt kaikissa solmuissa vierailtu!
Ketju voidaan jopa sulkea, löydetty suljettu
Hamiltonin ketju