// // 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