Frage von maxlllll, 58

Ich mache hangman mit java script wie bekomme ich den richtig eratenen Buchsatbe an die richtige stelle geschrieben?

z.B. muss das Wort "unlustig" erraten werden und man gibt "l" dann bekomme ich per gegexp mitgeteilt dass dieser buchstabe auf platz 3(2+1) ist und wie bekomme ich dann ein "l" so in in ein Container geschieben oder sichtbar dass er auf der richtigen stelle ist

Antwort
von Scrummer, 22

Du kannst das auf verschiedene arten lösen... 

Mal angenommen, du hast verschiedene Wörter zur Auswahl die random geladen werden beim Spielstart; Dann macht es am meisten Sinn, wenn du diese in Arrays anlegst. Dann kannst du, wenn der Buchstabe eingegeben wurde, die stelle im array auslesen, an welcher der buchstabe steht.

Ich zum Beispiel finde jquery eine super lösung um einfach HTML inhalte einzufügen. Also würde ich an deiner stelle, den "erratenen" Buchstaben in eine Variable speichern, welche dann per jquery in das passende HTML Feld schreiben: (Wichtig ist dass jquery vorhanden und eingebunden ist!)

<!-- Im Beispiel vom Wort 'unlustig' -->
<div>  <ul>    <li></li> <!-- 'u' -->    <li></li> <!-- 'n' -->    <li></li> <!-- 'l' -->    <li></li> <!-- 'u' -->
<li></li> <!-- 's' -->
<li></li> <!-- 't' -->
<li></li> <!-- 'i' -->
<li></li> <!-- 'g' -->
</ul></div> <span id="com"></span> <!-- Hier kommen allfällige Kommentare hin --> <script>var unlustig = ['u', 'n', 'l', 'u', 's', 't', 'i', 'g'];
function myKeyPress(e){
var keynum;

if(window.event) { // IE
keynum = e.keyCode;
} else if(e.which){ // Netscape/Firefox/Opera
keynum = e.which;
}

input = String.fromCharCode(keynum); // Globale variable
}

// Angenommen er hat 'l' getippt und du musst das jetzt auslesen:// Jetzt muss überprüft werden ob die Variable im Array vorhanden istif (isPresent(input)) { var input_ArrayPos = unlustig.indedOf(input); //ACHTUNG: wenn ein Buchstabe 2x vorkommt wirft der Code fehler! (Bsp: 'u')
var input_pos = input_ArrayPos - 1;
$('ul li:nth-child(input_pos)').html(input); } else { $('span#com').html('Dieser Buchstabe ist nicht im gesuchten Wort vorhanden'); } function isPresent (key) { for(i = 0; i < unlustig.length; i++) { if (unlustig[i] == key) { return true; break; }
} </script>
<style> ul li { float: left; padding-bottom: 3px; border-bottom: 1px solid #000; }</style>
Kommentar von Scrummer ,

Die Formatierung hier ist Ziemlich dumm... Bitte schau dir den Code besser hier an: http://goo.gl/r4FU6H

Kommt besser :)

Kommentar von Scrummer ,

Ich hab grad noch 'nen Fehler von mir gefunden;

Der ArrayIndex fängt ja bei 0 an also muss man +1 rechnen und nicht -1.

Folglich muss es dann so heissen auf Zeile 36 (http://goo.gl/r4FU6H):

var input_pos = input_ArrayPos + 1;
Kommentar von maxlllll ,

Ich habe schon beim kontrolieren ob es ein richtig buchstabe ist regexp benutzt und kann ich dass dann auch mit .replace machen?

Kommentar von Scrummer ,

müsstest du ausprobieren... weiss ich nicht genau

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten