[QUIZ#11] Chumper (Javascript)


Chumper

Erfahrenes Mitglied
#1
Hi,
Die erste Stufe habe ich mit Hilfe von Javascript und Google gelöst.
Mit Javascript habe ich alle möglichen (25) Lösungen erstellt und mir von Google die richtige Lösung raussuchen lassen.
Teilweise war ich sehr erstaunt, was Google als deutsche Sprache erkennt...

Naja... wie auch immer, dementsprechend ist der Code auch zusammengefrimmelt.
Man kann ihn ganz sicher verkürzen, aber nach der Mühe bin ich froh, dass er überhaupt funktioniert.

Ich habe die Google Language AJAX API zur Hilfe genommen.
Testen kann man das hier:
http://www.nils-canada.de/stufe1.html

Ihr braucht nun noch eine Textarea für den Ausgangstext und eine Textarea mit der ID "decrypt" für die Lösung, die dann eingetragen wird.

So, mal sehen was man mit der zweiten Stufe machen kann.

Javascript:
google.load("language", "1");


//Hilfsfunktion, die man eigentlich nicht nehmen sollte, aber ich war faul...
function in_array(item,arr) {
for(p=0;p<arr.length;p++) if (item == arr[p]) return true;
return false;
}
	//Array fuer Loesungen
	sol = new Array();
	
	//erlaubte Charzeichen
	charer = new Array(10,32,44,46,13,39);

function decrypt(text) {
	
	//Array leeren
	sol = new Array();
	
	//clearen
	document.getElementById('decrypt').innerHTML = "";
	
	//klein machen
	text = text.toLowerCase(); 
	
	//decrypt
	//Zahlen von 97 zu 122
	for (x=1; x < 26; x++)
	{
		dtext = "";
		for (i = 0; i < text.length; i++) 
		{
			char = "";
			//Charzeichen holen
			char = text.charCodeAt(i);
			
			//Zaehlschritt addieren
			if (!in_array(char, charer))
				char = char+x;
			
			//Falls wir einen Ueberlauf haben, zum Anfang zurueck
			if (char >= 123) 
				char = (char % 122) + 96;
			
			//Moegliche Loesung zusammensetzen
			dtext = dtext + String.fromCharCode(char);  
		}
		
		//Ab ins Array mit der Loesung
		sol.push(dtext);			

		


	}//Ende von for, wir haben nun alle Lösungen beisammen
	
	//Starten mit der Identifizierung der richtigen Loesung
	google.language.detect(sol[0], function(result){trans(result);});
}

function trans(result)
{
	//Falls das Array leer ist, beenden
	if (sol.length == 0)
		return;
	
	//Falls eine Sprache erkennt wurde...
	if (!result.error)
	{
		//Falls die erkannte Sprache deutsch ist... eintragen
		if (result.language == "de")
		document.getElementById('decrypt').innerHTML = document.getElementById('decrypt').innerHTML + '\n\n' + sol[0];
	}
	
	//Erstes Element des Arrays loeschen
	sol.shift();
	
	//Von vorne
	google.language.detect(sol[0], function(result){trans(result);});
}
 
Zuletzt bearbeitet von einem Moderator:

zeja

Erfahrenes Mitglied
#2
Auf jeden Fall ne interessante Idee Google nach der Sprache für den Text zu fragen :)

Was erkennt Google denn so als deutsch, was keines ist?
 

Neue Beiträge