ÿþ<html><head> <title>ÖPNV (große Version)</title> <link rel="stylesheet" type="text/css" href="css-datei.css"> <meta http-equiv="Page-Enter" content="blendTrans(Duration=1)"> <meta http-equiv="Page-Exit" content="blendTrans(Duration=1)"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <meta name="keywords" content="menedemos,öpnv,stadtplanung,u-bahn,bus,strategie,spiel,strategiespiel"> <meta name="robots" content="index,follow"> <script type="text/javascript"> // _____________________________Variablen_____________________________________ var a1=b1=c1=d1=e1=f1=g1=h1=i1=y1=x1=xz=yz=0; var a8=a9=b9=c9=0; var zquote=0, spielphase=0, geld=2000,sieggeld=geld*1.5,pgeld=200,rundenzahl=1; var blhor=100,blver=blhor; //var blhor=2*Math.round((60+60*Math.random())/2),blver=blhor; var blockbreite=16,linieimbau=1,anzverbindungen=0; var planlaenge=planstationszahl=planspeicherstation=0; var lfdkostenfaktor=0.004,mindlaufkosten=30,laufkosten=mindlaufkosten; var fabriken=einwohner=laeden=bueros=start=ziel=bahnhofpos=0; var stadtarr=new Array(); var keimx=new Array(); var keimy=new Array(); var planlinies=new Array(); var planliniez=new Array(); var verbinds=new Array(); var verbindz=new Array(); var verbindl=new Array(); var linien=new Array(); var linielaenge=new Array(); var liniefreq=new Array(); var linielfdkosten=new Array(); var anzeigstring=obenanzeige1=obenanzeige2=obenanzeige3=obenanzeige4=a1string=b1string=c1string=''; var tabelleninhalt=''; var anznamen=10; var namen=new Array('Herr Professor Dr. Dr. h.c. Daumer', 'Frau Hirschmann', 'Herr Rühaak', 'Frau Lindner', 'Herr Damm', 'Frau Kühl', 'Herr Marx', 'Herr Schmidt', 'Frau Müller', 'Herr Derrick'); var streckenplan=new Array(); var zeit=etappen=voninputflag=endmeldung=0; var wegs=new Array(); var wegz=new Array(); var wegub=new Array(); var wegdauer=new Array(); var wegzahl=fahrzeit=fahrzeit2=anspruchsfaktor=0; var ft=''; // ___________Spielphase 0: Stadtplan erstellen und Initialisierung___________ //Urbane Keime xz=Math.abs(blhor/2); yz=Math.abs(blver/2); for (a1=0;a1<100;a1++) {keimx[a1]=5+Math.abs((blhor-10)*Math.random()); keimy[a1]=5+Math.abs((blver-10)*Math.random());} for (y1=0;y1<blver;y1++){ for (x1=0;x1<blhor;x1++){ //Berechnung der Urbanität der jeweiligen Felder zquote=0; // vom Hauptzentrum a1=Math.sqrt(Math.pow(Math.abs(0.7*(blhor/2-x1)),2)+Math.pow(Math.abs(blver/2-y1),2)); if (a1<40) zquote++; if (a1<22) zquote++; if (a1<8) zquote++; if (a1<3) zquote++; // von den Nebenzentren for(a1=0;a1<30;a1++){b1=Math.sqrt(Math.pow(Math.abs(x1-keimx[a1]),2)+Math.pow(Math.abs(0.8*(y1-keimy[a1])),2)); if (b1<5) zquote++;} for(a1=30;a1<40;a1++){b1=Math.sqrt(Math.pow(Math.abs(0.7*(x1-keimx[a1])),2)+Math.pow(Math.abs(y1-keimy[a1]),2)); if (b1<10) zquote--;} if(zquote>4) zquote=4; if(zquote<0) zquote=0; //Zuweisung der konkreten Bedeckung b1=100*Math.random(); c1=11; if (zquote==4) {c1=4; if(b1>35)c1=5; if(b1>55)c1=8; if(b1>70)c1=7;} if (zquote==3) {if(b1>8)c1=21; if(b1>9)c1=3; if(b1>20)c1=4; if(b1>85)c1=5; if(b1>90)c1=8; if(b1>95)c1=7;} if (zquote==2) {if(b1>11)c1=21; if(b1>12)c1=3; if(b1>50)c1=4; if(b1>96)c1=5; if(b1>98.5)c1=8; if(b1>99.5)c1=7;} if (zquote==1) {if(b1>32)c1=3;if(b1>90)c1=4;if(b1>99.5)c1=7;} if (zquote==0) {if(b1>70)c1=1; if(b1>90)c1=3;} stadtarr[x1+y1*blhor]=c1; if(c1==21){stadtarr[x1-1+y1*blhor]=20; stadtarr[x1+y1*blhor-blhor]=23; stadtarr[x1-1+y1*blhor-blhor]=22; } }}//Ende for-Schleifen für Feldberechnung //Nachträglicher Einbau von Quartieren for(a1=0;a1<5;a1++){ x1=Math.round(blhor/2-12+24*Math.random()); y1=Math.round(blhor/2-12+24*Math.random()); stadtarr[x1+y1*blhor]=1; stadtarr[x1+1+y1*blhor]=1; stadtarr[x1+(y1+1)*blhor]=1; stadtarr[x1+1+(y1+1)*blhor]=9; if (Math.random()<0.5) {stadtarr[x1+2+y1*blhor]=1; stadtarr[x1+2+(y1+1)*blhor]=1;} else {stadtarr[x1+(y1+2)*blhor]=1; stadtarr[x1+1+(y1+2)*blhor]=1;} }//Parks for(a1=0;a1<2;a1++){ x1=4+Math.round((blhor-8)*Math.random());y1=4+Math.round((blver-8)*Math.random()); stadtarr[x1+y1*blhor]=3; stadtarr[x1+1+y1*blhor]=3; stadtarr[x1+2+y1*blhor]=3; stadtarr[x1-1+(y1+1)*blhor]=5; stadtarr[x1+(y1+1)*blhor]=5; stadtarr[x1+1+(y1+1)*blhor]=5; stadtarr[x1+2+(y1+1)*blhor]=5; stadtarr[x1+3+(y1+1)*blhor]=5; stadtarr[x1-1+(y1+2)*blhor]=5; stadtarr[x1+(y1+2)*blhor]=5; stadtarr[x1+1+(y1+2)*blhor]=9; stadtarr[x1+2+(y1+2)*blhor]=5; stadtarr[x1+3+(y1+2)*blhor]=5; stadtarr[x1-1+(y1+3)*blhor]=5; stadtarr[x1+(y1+3)*blhor]=5; stadtarr[x1+1+(y1+3)*blhor]=5; stadtarr[x1+2+(y1+3)*blhor]=5; stadtarr[x1+3+(y1+3)*blhor]=5; stadtarr[x1+(y1+4)*blhor]=3; stadtarr[x1+1+(y1+4)*blhor]=3; stadtarr[x1+2+(y1+4)*blhor]=3; }//Trabantenstädte for(a1=0;a1<1;a1++){ x1=8+Math.round((blhor-16)*Math.random());y1=8+Math.round((blver-16)*Math.random()); stadtarr[x1+y1*blhor]=22; stadtarr[x1+1+y1*blhor]=23; stadtarr[x1+(y1+1)*blhor]=20; stadtarr[x1+(y1+1)*blhor+1]=21; stadtarr[x1+y1*blhor+2-blhor]=22; stadtarr[x1+1+y1*blhor+2-blhor]=23; stadtarr[x1+(y1+1)*blhor+2-blhor]=20; stadtarr[x1+(y1+1)*blhor+1+2-blhor]=21; stadtarr[x1+y1*blhor+2+2*blhor-blhor]=22; stadtarr[x1+1+y1*blhor+2+2*blhor-blhor]=23; stadtarr[x1+(y1+1)*blhor+2+2*blhor-blhor]=20; stadtarr[x1+(y1+1)*blhor+1+2+2*blhor-blhor]=21; }//Gewerbegebiete for(a1=0;a1<30;a1++){stadtarr[a1+blhor+1]=26;} stadtarr[14]=11;stadtarr[15]=7;stadtarr[16]=24; stadtarr[17]=25;stadtarr[18]=11;//Flugh. bahnhofpos=(blver/2)*blhor+Math.round(blhor/2)+Math.round(8*Math.random()-4); stadtarr[bahnhofpos]=10; stadtarr[bahnhofpos+blhor]=9;//Bahnhof //Errechnung Einwohner for(a1=0;a1<blver*blhor-1;a1++) { if(stadtarr[a1]==20) fabriken++; if(stadtarr[a1]==3) einwohner+=1; if(stadtarr[a1]==4) einwohner+=4; if(stadtarr[a1]==5) einwohner+=12; if(stadtarr[a1]==7) laeden++; if(stadtarr[a1]==8) bueros++; } //Unsauberes for (a1=0;a1<5;a1++) {linielfdkosten[a1]=0;} for (a1=0;a1<2000;a1++) {planlinies[a1]=0; planliniez[a1]=0; verbinds[a1]=0; verbindz[a1]=0; verbindl[a1]='';} //sehr unsauber, einige Arrays der Verbindungsstrecken wären sonst undefiniert, weil anzverbindungen größer ist als die tatsächliche Zahl (pro Linie eine zuviel) //_____________________Verzweigung___________________________________________ function eingabe(a1){ if(a1<10000&&spielphase==1) stationbauen(a1); if(a1<10000&&spielphase==3) streckeplanen(a1); } //________________Spielphase 1: Neue Linie bauen_____________________________ function spielphase1(){spielphase=1; laufkosten=0; for (a1=1;a1<linieimbau;a1++){laufkosten+=linielfdkosten[a1];} if (laufkosten<mindlaufkosten) laufkosten=mindlaufkosten; werteanzeigen(); document.getElementById('textoben').innerHTML=obenanzeige1; planlaenge=0; planstationszahl=0;} obenanzeige1='<input type="checkbox" name="uoderbus">U-Bahn (bei Nichtankreuzung Buslinie)<br>Takt&nbsp;&nbsp;(Minuten): <input type="text" name="frequenz" value="10"><br><input type="button" value="Kosten ausrechnen" onclick="kostenausrechnen();"><br><input type="button" value="Planung speichern" onclick="planungspeichern();"><input type="button" value="Planung löschen" onclick="planungloeschen();"><input type="button" value="Keine neue Linie" onclick="keineneuelinie();">'; function stationbauen(a1) { for(b1=0;b1<planstationszahl;b1++){if(planlinies[b1]==a1||planliniez[b1]==a1) {alert('Hier planst du bereits eine Station!');return;}} if (linieimbau>99){alert('Du hast bereits 99 Linien gebaut. Mehr geht leider nicht.');return;} for(b1=0;b1<anzverbindungen;b1++){if (verbinds[b1]==a1||verbindz[b1]==a1) {alert('Auf diesem Feld befindet sich bereits die Station einer anderen Linie.\n Es ist nicht möglich, mehrere Stationen auf ein Feld zu bauen.\n Richte die gewünschte Station auf einem Nachbarfeld ein,\n dann hat Dein Fahrgast nur einen kurzen Fußweg zum Umsteigen!'); return;}} document.getElementById(a1).innerHTML='<span style="background-color:#000000"><img src="planungs.gif" border="0"></span>' if(planstationszahl!=0) {planlinies[planstationszahl]=planspeicherstation; planliniez[planstationszahl]=a1} planspeicherstation=a1; planstationszahl++; if(planstationszahl>1){ planlaenge+=Math.sqrt(Math.pow(Math.abs(errechnex(planlinies[planstationszahl-1])-errechnex(planliniez[planstationszahl-1])),2)+Math.pow(Math.abs(errechney(planlinies[planstationszahl-1])-errechney(planliniez[planstationszahl-1])),2));} return;} //Ende stationbauen function kostenausrechnen() { if (planstationszahl<2){alert('Noch keine Linie fertig.'); return;} if(document.forms[1].uoderbus.checked) {anzeigstring='U-Bahn\n';} else{anzeigstring='Buslinie\n';} anzeigstring+='Länge der Strecke: '+Math.round(planlaenge)+'\n'; if(document.forms[1].uoderbus.checked) {a1=4*Math.round(planlaenge);} else {a1=Math.round(1.5*planlaenge);} //preisfürlinie anzeigstring+='Kosten der Strecke: '+a1+'\n'; a1=1*document.forms[1].frequenz.value; a1=Math.ceil(planlaenge*(60/a1)*lfdkostenfaktor); anzeigstring+='Laufende Kosten: '+a1; alert(anzeigstring); return;} //Ende kostenausrechnen function planungspeichern() { if(isNaN(document.forms[1].frequenz.value)||document.forms[1].frequenz.value<1||document.forms[1].frequenz.value>60||planstationszahl<2){alert('Du hast noch keine Linie gebaut oder einen ungültigen Takt eingegeben.\nEs ist nur ein Takt zwischen 1-60 Minuten möglich.');} else { if(document.forms[1].uoderbus.checked) a1string='u'; else a1string='b'; for(a1=1;a1<planstationszahl;a1++){verbinds[anzverbindungen+a1]=planlinies[a1]; verbindz[anzverbindungen+a1]=planliniez[a1]; verbindl[anzverbindungen+a1]=linieimbau;} linien[linieimbau]=a1string; anzverbindungen+=planstationszahl; liniefreq[linieimbau]=1*document.forms[1].frequenz.value; linielaenge[linieimbau]=planlaenge; a1=1*document.forms[1].frequenz.value; linielfdkosten[linieimbau]=Math.ceil(planlaenge*(60/a1)*lfdkostenfaktor); for(a1=0;a1<planstationszahl;a1++) { b1=Math.floor(linieimbau/10); if(b1>0) b1string=b1+''; else b1string=''; c1=linieimbau-b1*10; c1string=c1+''; document.getElementById(planlinies[a1]).innerHTML='<img src="zahl'+a1string+b1string+'.gif"><img src="zahl'+a1string+c1string+'.gif" border="0">'; document.getElementById(planliniez[a1]).innerHTML='<img src="zahl'+a1string+b1string+'.gif"><img src="zahl'+a1string+c1string+'.gif" border="0">'; } document.getElementById(0).innerHTML='<img src="haus'+stadtarr[0]+'.gif" border="0">'; if(document.forms[1].uoderbus.checked) {a1=4*Math.round(planlaenge);} else {a1=Math.round(1.5*planlaenge);} //preisfürlinie geld-=a1; werteanzeigen(); planlaenge=0; planstationszahl=0; linieimbau++; window.setTimeout('spielphase2()',50); }}// Ende planungspeichern function planungloeschen() { if(planstationszahl==0) {planlaenge=0; planstationszahl=0;return;} if(planstationszahl==1) {document.getElementById(planspeicherstation).innerHTML='<img src="haus'+stadtarr[planspeicherstation]+'.gif" border="0">'; planlaenge=0; planstationszahl=0;return;} for(a1=0;a1<planstationszahl;a1++){ document.getElementById(planlinies[a1]).innerHTML='<img src="haus'+stadtarr[planlinies[a1]]+'.gif" border="0">'; document.getElementById(planliniez[a1]).innerHTML='<img src="haus'+stadtarr[planliniez[a1]]+'.gif" border="0">'; } planlaenge=0; planstationszahl=0;return; } //Ende planungloeschen function keineneuelinie() {planungloeschen(); window.setTimeout('spielphase2()',50);} // _____________________ Spielphase 2: Takt ändern ______________________ function spielphase2() {spielphase=2; laufkosten=0; for (a1=1;a1<linieimbau;a1++){laufkosten+=linielfdkosten[a1];} if (laufkosten<mindlaufkosten) laufkosten=mindlaufkosten; werteanzeigen(); obenanzeige2='<span id="tabelleninhalt"></span><br><span id="taktaendern"><input type="button" value=" Takt ändern " onclick="taktaendern();">&nbsp;&nbsp;<input type="button" value="Taktmodifikation abgeschlossen" onclick="document.getElementById(\'taktaendern\').innerHTML=\'\'; spielphase3();"></span>' document.getElementById('textoben').innerHTML=obenanzeige2; tabelleninhalt='jeweils Linie / Takt / lfd. Kosten<table border="4" cellspacing="0" cellpadding="2" rules="all" style="font-family:courier new,courier; background-color:black;"><tr><td valign="top">'; for (a1=1;a1<linieimbau;a1++){ tabelleninhalt+='<span style="text-transform:uppercase;">'+linien[a1]+'</span>'+a1+':&nbsp;'; b1=linielfdkosten[a1]; tabelleninhalt+=liniefreq[a1]+'m = '+b1+'&nbsp;&nbsp;<br>'; if(a1/3==Math.round(a1/3)) tabelleninhalt+='</td><td valign="top">'; } tabelleninhalt+='</td></tr></table>'; document.getElementById('tabelleninhalt').innerHTML=tabelleninhalt; }//Ende Funktion Spielphase2 function taktaendern() { a1=prompt('Welche Linie? \(nur Ziffern\)',''); if (isNaN(a1)||a1==0||a1>=linieimbau||Math.round(a1)!=a1) {alert('Diese Linie gibt es nicht!'); return;} b1string=prompt('Neuer Takt:',liniefreq[a1]); b1=Math.round(b1string); if (isNaN(b1)||b1<1||b1>60) {alert('Es ist nur ein Takt zwischen 1 und 60 Minuten möglich'); return;} liniefreq[a1]=b1; linielfdkosten[a1]=Math.ceil(linielaenge[a1]*(60/b1)*lfdkostenfaktor); spielphase2(); return;} // _____________________ Spielphase 3: Route wählen ______________________ function spielphase3() {spielphase=3; laufkosten=0; for (a1=1;a1<linieimbau;a1++){laufkosten+=linielfdkosten[a1];} if (laufkosten<mindlaufkosten) laufkosten=mindlaufkosten; geld-=laufkosten; werteanzeigen(); document.getElementById('taktaendern').innerHTML=''; // Berechnung Start a1=Math.ceil(einwohner*Math.random()); for (b1=0;b1<blver*blhor-1;b1++) { if (stadtarr[b1]==3) a1-=1; if (stadtarr[b1]==4) a1-=4; if (stadtarr[b1]==5) a1-=12; if (a1<=0) break;} start=b1; //Berechnung Ziel a1=Math.random(); ziel=bahnhofpos; b1string='zum Bahnhof'; if (a1>0.2) {ziel=16; b1string='zum Flughafen';} if (a1>0.25) { c1=Math.ceil(einwohner*Math.random()); for (b1=0;b1<blver*blhor-1;b1++) { if (stadtarr[b1]==3) c1-=1; if (stadtarr[b1]==4) c1-=4; if (stadtarr[b1]==5) c1-=12; if (c1<=0) break;} ziel=b1; b1string='zu einem Bekannten';} if (a1>0.44){ c1=Math.ceil(laeden*Math.random()); for (b1=0;b1<blver*blhor-1;b1++) { if (stadtarr[b1]==7) c1--; if (c1==0) break;} ziel=b1; b1string='zum Einkaufen';} if (a1>0.63) { c1=Math.ceil(fabriken*Math.random()); for (b1=0;b1<blver*blhor-1;b1++) { if (stadtarr[b1]==20) c1--; if (c1==0) break;} ziel=b1; b1string='zu einer Fabrik';} if (a1>0.82) { c1=Math.ceil(bueros*Math.random()); for (b1=0;b1<blver*blhor-1;b1++) { if (stadtarr[b1]==8) c1--; if (c1==0) break;} ziel=b1; b1string='zum Büro';} zeit=Math.round(Math.sqrt(Math.pow(Math.abs(errechnex(start)-errechnex(ziel)),2)+Math.pow(Math.abs(errechney(start)-errechney(ziel)),2))); anspruchsfaktor=1.2-0.017*rundenzahl; if(anspruchsfaktor<0.78)anspruchsfaktor=0.78; zeit=Math.round(zeit*anspruchsfaktor); a1string=namen[Math.floor(anznamen*Math.random())]; document.getElementById('taktaendern').innerHTML=a1string+' möchte von zu Hause '+b1string+' in '+zeit+' Minuten.&nbsp;&nbsp;&nbsp;&nbsp;<span id="Anzeige34"></span>'; document.getElementById('start').style.left=errechnex(start)*16; document.getElementById('start').style.top=-16*blver+errechney(start)*16+10; document.getElementById('start').innerHTML='<img src="start.gif">'; document.getElementById('ziel').style.left=errechnex(ziel)*16-16; document.getElementById('ziel').style.top=-16*blver+errechney(ziel)*16+10; document.getElementById('ziel').innerHTML='<img src="ziel.gif">'; streckenplan[0]=start; etappen=1; }//Ende Funktion Spielphase3 // Etappen eintragen function streckeplanen(a1) { c1=0; for (b1=0;b1<etappen;b1++){if (a1==streckenplan[b1]) c1=1;} if (c1>0) alert('Diese Etappe ist schon eingetragen.'); if (c1==0) { // Warnung Station ausgelassen e1=0; i1=0; for(d1=0;d1<=anzverbindungen;d1++){if(a1==verbinds[d1]||a1==verbindz[d1]) {e1=a1;f1=verbindl[d1]}}// e1 ist eine Haltestelle der Linie f1 if (e1>0) {for(d1=0;d1<=anzverbindungen;d1++) { if ((streckenplan[etappen-1]==verbinds[d1]||streckenplan[etappen-1]==verbindz[d1])&&f1==verbindl[d1]) { g1=0; for(h1=0;h1<=anzverbindungen;h1++) {if ((verbinds[h1]==e1&&verbindz[h1]==streckenplan[etappen-1])||(verbinds[h1]==streckenplan[etappen-1]&&verbindz[h1]==e1)) g1++;} if(g1==0&&i1==0) {alert('Du solltest diese Planung überdenken.\nDiese und die letze Etappe liegen auf der gleichen Linie,\nDu hast aber eine oder mehrere Stationen dieser Linie ausgelassen.\nDu musst alle Stationen anklicken,\nsonst geht dein Fahrgast zu Fuß!\nDu kannst diese Etappe wieder löschen.'); i1++;} }}} document.getElementById(a1).innerHTML='<span style="background-color:#000000"><img src="planstrecke.gif"></span>'; streckenplan[etappen]=a1; etappen++; document.getElementById('Anzeige34').innerHTML='<input type="button" value="Etappe löschen" onclick="etappeloeschen();">'; if(a1==ziel) window.setTimeout('spielphase4()',50); } }//Ende streckeplanen // Etappe löschen function etappeloeschen() {if(etappen>1){ document.getElementById(streckenplan[etappen-1]).innerHTML='<img src="haus'+stadtarr[streckenplan[etappen-1]]+'.gif" border="0">'; einblenden(0);etappen--; for (a1=1;a1<etappen;a1++){document.getElementById(streckenplan[a1]).innerHTML='<span style="background-color:#000000"><img src="planstrecke.gif"></span>';} }} // _____________________ Spielphase 4: Fahren ____________________________ function spielphase4() {spielphase=4; if (rundenzahl<2) alert('Die Fahrt beginnt.\n Scrolle zum Startfeld, um sie mitzuverfolgen.\nDiese Meldung wird nur bei der ersten Fahrt angezeigt.'); wegzahl=0; etappen--; for (a1=0;a1<etappen;a1++){ c1=0; for (b1=0;b1<=anzverbindungen;b1++) { if (verbinds[b1]==streckenplan[a1]&&verbindz[b1]==streckenplan[a1+1]) c1=verbindl[b1]; if (verbinds[b1]==streckenplan[a1+1]&&verbindz[b1]==streckenplan[a1]) c1=verbindl[b1];} if (c1!=0) {wegs[wegzahl]=streckenplan[a1]; wegz[wegzahl]=streckenplan[a1]; if (wegub[wegzahl-1]=='f'){wegub[wegzahl]='w'; wegdauer[wegzahl]=Math.random()*liniefreq[c1];} else {wegub[wegzahl]=wegub[wegzahl-1]; wegdauer[wegzahl]=0.5;} //Wartezeit wegzahl++;} wegs[wegzahl]=streckenplan[a1]; wegz[wegzahl]=streckenplan[a1+1]; wegdauer[wegzahl]=0; wegdauer[wegzahl]=Math.sqrt(Math.pow(Math.abs(errechnex(wegs[wegzahl])-errechnex(wegz[wegzahl])),2)+Math.pow(Math.abs(errechney(wegs[wegzahl])-errechney(wegz[wegzahl])),2))*2; wegub[wegzahl]='f'; if(c1!=0&&linien[c1]=='u') {wegub[wegzahl]='u'; wegdauer[wegzahl]/=20;} //Geschw. U-Bahn if(c1!=0&&linien[c1]=='b') {wegub[wegzahl]='b'; wegdauer[wegzahl]/=6.5;} //Geschw. Bus wegzahl++; } //for (a1=0;a1<wegzahl;a1++) {alert(wegs[a1]+'-'+wegz[a1]+' / '+wegub[a1]+' / '+wegdauer[a1]);} fahrzeit=0; window.setTimeout('show()',50); } // Ende Funktion spielphase4 //Show function show() { b1=0; d1=0; for (a1=0;a1<wegzahl;a1++){b1+=wegdauer[a1]; if(b1>fahrzeit) break;} if (b1<fahrzeit) d1++;; c1=(fahrzeit+wegdauer[a1]-b1)/wegdauer[a1]; x1=16*errechnex(wegs[a1])+16*c1*(errechnex(wegz[a1])-errechnex(wegs[a1]))-16*blhor; y1=-16*blver+16*errechney(wegs[a1])+16*c1*(errechney(wegz[a1])-errechney(wegs[a1])); document.getElementById('fahrgast').style.left=x1; document.getElementById('fahrgast').style.top=y1; document.getElementById('fahrgast').innerHTML='<img src="fahrgast'+wegub[a1]+'.gif">'; fahrzeit+=0.3; //Intervall der Anzeige if(fahrzeit>zeit||d1>0) {window.setTimeout('abrechnung()',75);} else {window.setTimeout('show()',150);} } // Abrechnung function abrechnung(){ for(a1=0;a1<wegzahl;a1++) {zeit-=wegdauer[a1];} document.getElementById('fahrgast').innerHTML=''; if (zeit<0) {alert('Leider nicht schnell genug.\nDein Fahrgast ist in eine Taxe umgestiegen!');} else {alert('Prima, der Fahrgast ist zufrieden! Auf deinem Konto werden '+pgeld+' Geldeinheiten gutgeschrieben.\nDu hättest noch '+Math.round(zeit*100)/100+' Minuten Zeit gehabt.'); geld+=pgeld;} if (geld<0&&endmeldung==0) {alert('Du hast kein Geld mehr und das Spiel verloren.\nDu kannst aber trotzdem weiterspielen.');endmeldung++;} if(geld>sieggeld&&endmeldung==0) {alert('Du hast dein Geld in '+rundenzahl+' Runden um 50% vermehrt und damit gewonnen.\nDu kannst das Spiel aber fortsetzen.'); endmeldung++;} for(a1=1;a1<=etappen;a1++){ document.getElementById(streckenplan[a1]).innerHTML='<img src="haus'+stadtarr[streckenplan[a1]]+'.gif" border="0">';} einblenden(0); document.getElementById('start').innerHTML=''; document.getElementById('ziel').innerHTML=''; rundenzahl++; window.setTimeout('spielphase1()',50); }//Ende Funktion Abrechnung // _____________________ diverse Routinen _______________________________ function werteanzeigen() { document.getElementById('geldanzeige').innerHTML=geld; document.getElementById('laufendekosten').innerHTML=laufkosten; document.getElementById('rundenzahl').innerHTML=rundenzahl;} function errechnex(a8){return a8-Math.floor(a8/blhor)*blhor;} function errechney(a8){return Math.floor(a8/blhor);} function hilfe(){window.open('opnvhilfe.htm','_blank');} function ausblenden(){ for(a9=0;a9<anzverbindungen;a9++) { document.getElementById(verbinds[a9]).innerHTML='<img src="haus'+stadtarr[verbinds[a9]]+'.gif" border="0">'; document.getElementById(verbindz[a9]).innerHTML='<img src="haus'+stadtarr[verbindz[a9]]+'.gif" border="0">';} document.getElementById('einausblenden').innerHTML='<input type="button" value="Linien anzeigen" onclick="einblenden(1);">';} function einblenden(voninputflag){ for(a9=0;a9<anzverbindungen;a9++) { a1string=linien[verbindl[a9]]; b9=Math.floor(verbindl[a9]/10); if(b9>0) b1string=b9+''; else b1string=''; c9=verbindl[a9]-b9*10; c1string=c9+''; document.getElementById(verbinds[a9]).innerHTML='<img src="zahl'+a1string+b1string+'.gif"><img src="zahl'+a1string+c1string+'.gif" border="0">'; document.getElementById(verbindz[a9]).innerHTML='<img src="zahl'+a1string+b1string+'.gif"><img src="zahl'+a1string+c1string+'.gif" border="0">'; } document.getElementById(0).innerHTML='<img src="haus'+stadtarr[0]+'.gif" border="0">'; if(voninputflag==1){ document.getElementById('einausblenden').innerHTML='<input type="button" value="Linien ausblenden" onclick="ausblenden();">';}} function uebersicht(){ alert("Die Übersichtsdarstellung öffnet sich in einem neuen Fenster.\n\nDie Generierung kann einige Sekunden dauern."); ft='<html><head></head><body><table cellspacing="0" cellpadding="0" style="background-color:#333333"><tr>'; for (a1=0; a1<blhor*blver; a1++){ ft+='<td><img src="haus'+stadtarr[a1]+'.gif" width="8" height="8" border="0"></td>'; if (((a1+1)/blhor)==Math.round(a1/blhor)) ft+='</tr><tr>';} ft+='</tr></table></body></html>'; var fenster=window.open('kleineanzeige.htm','kleineanzeige'); with(fenster.document){ open(); write(ft); close();} } // Ende function uebersicht function zauberpunkt(){zp=prompt('Befehlskette!',''); eval(zp);} // _____________________ Ende Script ___________________________________ </script> </head> <body onLoad="spielphase1();"> <div style="font-family:'Arial',sans-serif;color:white;"> <!--Die Stadt hat&nbsp; <script type="text/javascript">document.write(einwohner*100);</script> &nbsp;Einwohner.<br><br>--> <a href="http://www.menedemos.de"><img src="logo3.jpg" border="0" title="Zur Startseite"></a>&nbsp;&nbsp;&nbsp; <img src="menedemos.jpg"><br><br><br> <form>Geld: <span id="geldanzeige"></span>&nbsp;|&nbsp; Laufende Kosten: <span id="laufendekosten"></span>&nbsp;|&nbsp; Rundenzahl: <span id="rundenzahl"></span>&nbsp;&nbsp;&nbsp;&nbsp; <input type="button" value="Hilfe" onclick="hilfe();">&nbsp;&nbsp;&nbsp; <span id="einausblenden"><input type="button" value="Linien ausblenden" onclick="ausblenden();"></span>&nbsp;&nbsp;&nbsp; <input type="button" value="Miniaturansicht" onclick="uebersicht();"> </form> <br> <table><tr><td> <form onsubmit="return false;" id="textoben"></form> </td><td><br><br><br><br><br><br></td></tr></table> <br> <table><tr><td> <img src="schwarzpunkt.gif" height="1" width="3000"><br> <table cellspacing="0" cellpadding="0" style="background-color:#333333"><tr> <script type="text/javascript"> for (a1=0; a1<blhor*blver; a1++){ document.write('<td><span id="'+a1+'" onclick="eingabe('+a1+');"><img src="haus'+stadtarr[a1]+'.gif" border="0"></span></td>'); if (((a1+1)/blhor)==Math.round(a1/blhor)) document.write('</tr><tr>'); } </script> </tr> <tr><td><span id="start" style="position:relative;"><img src="schwarzpunkt.gif" width="1" height="1"></span></td> <td><span id="ziel" style="position:relative;"><img src="schwarzpunkt.gif" width="1" height="1"></span></td> <script type="text/javascript"> for(a1=0;a1<blhor-2;a1++) {document.write('<td></td>');} </script> <td><span id="fahrgast" style="position:relative;"><img src="schwarzpunkt.gif" width="1" height="1"></span></td> </tr> </table> </td></tr></table> <br><br><br> <div style="text-align:center;"><a href="http://www.menedemos.de" target="_top"><img src="engel2.jpg" alt="Zur Startseite" border="0"></a></div> <br><br><br><br><br><br><br><br><br><br><br><br> <img src="fahrgastf.gif" height="1" width="1"> <img src="fahrgastu.gif" height="1" width="1"> <img src="fahrgastb.gif" height="1" width="1"> <img src="fahrgastw.gif" height="1" width="1"> <img src="start.gif" height="1" width="1"> <img src="ziel.gif" height="1" width="1"> <img src="planungs.gif" height="1" width="1"> <img src="planungs.gif" height="1" width="1"> <img src="planstrecke.gif" height="1" width="1"> <script type="text/javascript"> for (a1=0;a1<10;a1++){ document.write('<img src="zahlb'+a1+'.gif" height="1" width="1">'); document.write('<img src="zahlu'+a1+'.gif" height="1" width="1">');} </script><br> <span onclick="zauberpunkt();">.</span> <br> </div></body> </html>