Bergervei/Javascript-Spielwiese

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Javascript</language>
== Gebrauch des Smileys ==

<code id="575e4fe7ef3fd">
function ggT(m, n) {
 if (n == 0)
  return m;
 else
  return ggT(n, m % n);
}
</code>

<check execute="(ggT(123, 69) == 3) && (ggT(9797, 303) == 101) && (ggT(31, 5) == 1)">
true
</check>

<run id="575e4fe7ef477">
ggT(123, 9);
</run>

== Turtlegrafik ==

<code id="57617d4f30174" hidden>
function center(turtle) {
 turtle.move(200, 150);
}

function black(turtle) {
 turtle.penColor(0, 0, 0);
}

function red(turtle) {
 turtle.penColor(255, 0, 0);
}

function brown(turtle) {
 turtle.penColor(100, 50, 0);
}

function orange(turtle) {
 turtle.penColor(255, 100, 0);
}

function yellow(turtle) {
 turtle.penColor(255, 200, 0);
}

function green(turtle) {
 turtle.penColor(0, 255, 0);
}

function blue(turtle) {
 turtle.penColor(0, 0, 255);
}

function pink(turtle) {
 turtle.penColor(200, 50, 200);
}
</code>

<code id="57618d00e9982">
var farbliste = ["red", "orange", "yellow", "green", "blue", "pink"];

function n_eck(turtle, x, n) {
 var winkel = 360 / n;
 for (var i = 1; i <= n; i++) {
  turtle.forward(x);  
  turtle.right(winkel); 
 }
}

function farbstern(turtle, x, n, m) {
 var winkel = 360 / m;
 var farbe;
 for (var i = 1; i <= m; i++) {
  farbe = farbliste[Math.floor((i - 1) * farbliste.length / m)];
  switch (farbe) {
   case "red":
    red(turtle); break;
   case "brown":
    brown(turtle); break;
   case "orange":
    orange(turtle); break;
   case "yellow":
    yellow(turtle); break;
   case "green":
    green(turtle); break;
   case "blue":
    blue(turtle); break;
   case "pink":
    pink(turtle); break;
   default:
    black(turtle); break;
  }
  n_eck(turtle, x, n);
  turtle.right(winkel);
 }
}
</code>

<canvas w="400" h="300"></canvas>

<run id="57618d00e99ff">
canvas1.clear(); 
turtle1.move(200, 150);
farbstern(turtle1, 75, 5, 55);
</run>

<code id="5b0c70d02658f">
function kreis(turtle, x, y, r) {
 var winkel = 180 / r / Math.PI;
 var n = 360 / winkel;
 turtle.move(x - r, y);
 for (var i = 1; i <= n; i++) {
  turtle.forward(1);
  turtle.right(winkel);
 }
}
</code>

<canvas w="400" h="300"></canvas>

<run id="5b0c70d026631">
canvas2.clear();
kreis(turtle2, 200, 150, 50);
</run>

== Zeichenzähler ==

<code id="5ba880a3466e7">
function zeichenzaehler(zeichenkette, z) {
 var zaehler = 0;
 for (var i = 0; i < zeichenkette.length; i++)
  if (z == zeichenkette.substr(i, 1)) zaehler++;
 return zaehler;
}
</code>

<run id="5ba87ccf7e1d4">
zeichenzaehler("Mississippi-Missouri", "i");
</run>

== Vokalzähler ==

<code id="5ba880a346776">
function vokalzaehler(zeichenkette) {
 var zaehler = 0;
 var vokale = "AEIOU";
 zeichenkette = zeichenkette.toUpperCase();
 for (var j = 0; j < vokale.length; j++)
  for (var i = 0; i < zeichenkette.length; i++)
   if (vokale.substr(j, 1) == zeichenkette.substr(i, 1)) zaehler++;
 return zaehler;
}
</code>

<run id="5ba87ccf7e23f">
vokalzaehler("Mississippi-Missouri");
</run>

== Drei Chinesen mit dem Kontrabass... ==

<code id="5bbcd022ed78a">
function dreiChinesen(zeichenkette, zeichen) {
 var neukette = "", zei = "";
 var vokale = "AEIOUÄÖÜaeiouäöü";
 var pos = -1;
 for (var i = 0; i < zeichenkette.length; i++) {
  zei = zeichenkette.substr(i, 1);
  pos = vokale.indexOf(zeichenkette.substr(i, 1));
  if (pos >= 0)   
   if (pos < 8)
    neukette = neukette + zeichen.toUpperCase();
   else
    neukette = neukette + zeichen.toLowerCase();
  else
   neukette = neukette + zei;
 }
 return neukette;
}
</code>

<run id="5bbcd022ed841">
dreiChinesen("Drei Chinesen mit dem Kontrabass saßen auf der Straße und erzählten sich was.", "i");
</run>

== Plindromprüfung ==

<code id="5ba880a346807">
function palindrompruefer(zeichenkette) {
 var neukette = "";
 zeichenkette = zeichenkette.toUpperCase();
 for (var i = 0; i < zeichenkette.length; i++)
  neukette = zeichenkette.substr(i, 1) + neukette;
 return (zeichenkette == neukette);
}
</code>

<run id="5b9619346de9e">
palindrompruefer("Rentner");
</run>

== Schüttelwörter ==

<code id="5bbcd6e2a1b86" hidden>
function schuettelTest(zeichenkette, neukette) {
 var test = (zeichenkette.length == neukette.length);
 var pos = -1;
 if (test)
  for (i = 0; i < neukette.length; i++) {
   pos = zeichenkette.indexOf(neukette.substr(i, 1));
   test = test && (pos >= 0);
  }
 return test;
} 
</code>

<code id="5ba880a3468ae">
function schuetteln(zeichenkette) {
 var neukette = "";
 var pos, zeichen;
 do {
  pos = Math.floor(Math.random() * zeichenkette.length);
  zeichen = zeichenkette.substr(pos, 1);
  neukette = neukette + zeichen;
  zeichenkette = zeichenkette.replace(zeichen, "");
 }
 while (zeichenkette.length > 0);
 return neukette;
} 
</code>

<check execute="schuettelTest('das ist ein langer Text', schuetteln('das ist ein langer Text')) && (schuetteln('das ist ein langer Text') != schuetteln('das ist ein langer Text'))">
true
</check>

<run id="5b960f62e3580">
schuetteln("Informatik");
</run>

== Cäsar-Verschlüsselung ==

<code id="5ba880a346956">
function wandeln(zeichen, schritt) {
 var code = zeichen.charCodeAt();
 if (code > 64 && code < 91) {
  code = code + schritt;
  while (code > 90) code = code - 26;
  while (code < 65) code = code + 26;
  return String.fromCharCode(code);
 }
 else
  return zeichen;
}

function caesarCodieren(zeichenkette, schluesselbuchstabe, richtung) {
 var neukette = "";
 zeichenkette = zeichenkette.toUpperCase();
 schluesselbuchstabe = schluesselbuchstabe.toUpperCase();
 for (var i = 0; i < zeichenkette.length; i++) {
  let buchstabe = zeichenkette.substr(i, 1);
  let schritt = schluesselbuchstabe.charCodeAt() - 65;
  neukette = neukette + wandeln(buchstabe, richtung * schritt);
 }
 return neukette;
}

function caesarVerschluesseln(zeichenkette, schluesselbuchstabe) {
 return caesarCodieren(zeichenkette, schluesselbuchstabe, 1);
}

function caesarEntschluesseln(zeichenkette, schluesselbuchstabe) {
 return caesarCodieren(zeichenkette, schluesselbuchstabe, -1);
}
</code>

<run id="5ba880a346a3f">
caesarVerschluesseln("Informatik", "B");
</run>

<run id="5ba880a346ae6">
caesarEntschluesseln("JOGPSNBUJL", "B");
</run>