Spiel: Hangman

Infos zu Spielen, Bots und Tools.
1. FC Keller
Moderator
Beiträge: 866
Registriert: 04.07.2004, 17:10
Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda
Kontaktdaten:

Spiel: Hangman

Ungelesener Beitrag von 1. FC Keller » 19.08.2009, 14:00

Hallo zusammen!

Da das Spiel Hangman gewünscht wurde habe ich mich mal hingesetzt und ein Script dazu gebastelt.
Wie so oft braucht ihr die Grundscriptsammlung in der Ankündigung.
Dann speichert ihr den folgenden Code als .js ab und ladet die Datei auf einen Webspace:

Code: Alles auswählen

hmWords = ["Webkicks", "Chat", "Keller", "WkTools", "Moni", "Zischdings", "Hangman"];
//hmImgPfad= "http://wktools.net/images/games/hangman/black_handgemalt/";
hmImgPfad= "http://wktools.net/images/games/hangman/black_strichliste/";
//hmBilder=[hmImgPfad+"hm0.gif", hmImgPfad+"hm1.gif", hmImgPfad+"hm2.gif", hmImgPfad+"hm3.gif", hmImgPfad+"hm4.gif", hmImgPfad+"hm5.gif", hmImgPfad+"hm6.gif", hmImgPfad+"hm7.gif", hmImgPfad+"hm8.gif", hmImgPfad+"hm9.gif", hmImgPfad+"hm10.gif", hmImgPfad+"hm11.gif"];
hmBilder=[hmImgPfad+"hm10.gif", hmImgPfad+"hm9.gif", hmImgPfad+"hm8.gif", hmImgPfad+"hm7.gif", hmImgPfad+"hm6.gif", hmImgPfad+"hm5.gif", hmImgPfad+"hm4.gif", hmImgPfad+"hm3.gif", hmImgPfad+"hm2.gif", hmImgPfad+"hm1.gif", hmImgPfad+"hm0.gif"];
hmAllowOwnWords=1;
hmBefehl = "/hm";
hmSpielfeldBorderStyle="1px dotted #006600";
hmAbsolutePosition=1;
hmUmlaute=1;

//feste spielvariablen - nicht aendern!
hmTmpPlayer="";
hmWord="";
hmLetters = [];
hmStatus=0;
hmGameRunning=0;

function hmBefehlsAuswertung(eingabe, sender){
  u=strip_tags(eingabe);
  m=strip_tags(sender);
  u2=u.split(" ");    
  if(!hmGameRunning && (u!="" && !hmAllowOwnWords || hmAllowOwnWords && (u2.length<2 || u2[0]!="s") && u != "")){
    document.write("im Moment läuft kein Hangman-Spiel. Spiel starten per \"/hm s wort\" oder \"/hm\"");
    return;
  }
  if(!hmGameRunning){
    document.write("startet ein Hangman-Spiel.");
    if(hmAllowOwnWords && u2.length>1){
      if(u2.shift()=="s"){
        if(!u.match(/\w+[a-z\s]+/i)){
          document.write(" Fehler: Ungültiges Wort: "+u);
	  return;
        }
	hmWord=u2.join(" ");
	hmGameRunning=2;
	hmZeichneTabelle(hmWord);
	hmLetters=[];
	hmStatus=0;
      }
    }
    else{
      sendeText(hmBefehl+" "+(parseInt(Math.random() * hmWords.length)), m);
      hmGameRunning=1;
      hmTmpPlayer=m;
      window.setTimeout("if(hmGameRunning==1)hmGameRunning=0;", 3000); //Wenn kein Spiel innerhalb von 3 Sekunden gestartet wird wird der Status wieder auf "kein Spiel laeuft" gesetzt.
    }
    return;
  }
  if(hmGameRunning==1 && m==hmTmpPlayer){
    hmGameRunning=2;
    hmWord=hmWords[u];
    hmTmpPlayer="";
    hmZeichneTabelle(hmWord);
    hmLetters=[];
    hmStatus=0;
    document.getElementsByTagName("table")[document.getElementsByTagName("table").length-1].style.display="none";
    return;
  }
  if(hmGameRunning != 2) return;
  hmZug(u);
}

function hmZug(u){
  u=u.toLowerCase();
  if(u.length!=1){
    if(u==hmWord.toLowerCase()){
      document.write("Gelöst: "+hmWord);
      hmGameRunning=0;
      setTimeout('r=parent.rightFrame;r.document.body.removeChild(r.document.getElementById("Hangman"))', 3000);
    }
    else{
      document.write("Falsche Lösung: "+u+((hmStatus==(hmBilder.length-1))?(" Game Over :-( Lösung: "+hmWord):""));
      hmStatus++;
      parent.rightFrame.document.getElementById("hmBild").src=hmBilder[hmStatus];
      if(hmStatus==(hmBilder.length-1)){
	hmGameRunning=0;
	setTimeout('r=parent.rightFrame;r.document.body.removeChild(r.document.getElementById("Hangman"))', 3000);
      }
    }
    return;
  }
  if(hmUmlaute && !u.match(/^[a-zäöüß]$/i) || !hmUmlaute && !u.match(/^[a-z]$/i)){
    document.write("immer nur ein Buchstabe!");
    return;
  }
  if(!hmLetters.inArray(u))hmLetters[hmLetters.length]=u;
  if(!(hmWord.toLowerCase().match(u))){
    hmStatus++;
    parent.rightFrame.document.getElementById("hmBild").src=hmBilder[hmStatus];
    document.write("sendet ein "+u+". Leider falsch."+((hmStatus==(hmBilder.length-1))?(" Game Over :-( Lösung: "+hmWord):""));
    if(hmStatus==(hmBilder.length-1)){
      hmGameRunning=0;
      setTimeout('r=parent.rightFrame;r.document.body.removeChild(r.document.getElementById("Hangman"))', 3000);
    }
  }
  else{
    tmpWord=hmWord;
    if(hmUmlaute){
      tmpArr=[];
      for(i=0;i<tmpWord.length;i++){
        if(tmpWord.charAt(i).match(/([^a-zäöüß ])/i)){//Sonderzeichen ausser ÄÖÜß ausschliessen!
          tmpSonderzeichen=RegExp.$1;
          if(!tmpArr.inArray("\\"+tmpSonderzeichen))tmpArr[tmpArr.length]="\\"+tmpSonderzeichen; 
        }
      }
      eval("tmpWord=tmpWord.replace(/[^"+hmLetters.join("")+tmpArr.join("")+" ]/gi, '_');");
    }
    else eval("tmpWord=tmpWord.replace(/[^"+hmLetters.join("")+"0-9\\W ]/gi, '_');");
    parent.rightFrame.document.getElementById("hmText").innerHTML=tmpWord;
    document.write("sendet ein "+u+". Das ist ein Treffer."+(tmpWord==hmWord?(" Gelöst! Lösung: "+hmWord):""));
    if(tmpWord==hmWord){
      hmGameRunning=0;
      setTimeout('r=parent.rightFrame;r.document.body.removeChild(r.document.getElementById("Hangman"))', 3000);
    }
  }
  if(hmUmlaute)b=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", "ä", "ö", "ü", "ß"];
  else b=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
  bb="";
  for(i=0;i<b.length;i++){
    if(!hmLetters.inArray(b[i]))
    bb+=" <span onclick='parent.mainframe.sendeText(\""+hmBefehl+" "+b[i]+"\")'>"+b[i]+"</span>";
  }
  parent.rightFrame.document.getElementById("hmBuchstaben").innerHTML=bb+"<br><span onclick='with(parent.info.document.eingabe.message){value=\""+hmBefehl+" \"+document.getElementById(\"hmText\").innerHTML; focus(); if(createTextRange){pos=createTextRange(); pos.collapse(false); pos.select();}}'>lösen</span>";
}

function hmZeichneTabelle(word){
  ie=(document.all&&!window.innerWidth && navigator.userAgent.toLowerCase().indexOf("msie") != -1)?1:0;
  r = parent.rightFrame;
  
  hmSpielfeld = r.document.createElement("p");
  hmSpielfeld.style.border = hmSpielfeldBorderStyle;
  hmSpielfeld.setAttribute("id", "Hangman");
  hmClose = r.document.createElement("div");
  hmClose.style.marginBottom="0px";
  hmClose.style.textAlign="right";
  hmCloseLink = r.document.createElement("a");
  hmCloseLink.setAttribute("href", "javascript:void(document.body.removeChild(document.getElementById('Hangman')));");
  hmCloseLink.appendChild(r.document.createTextNode("X"));
  hmClose.appendChild(hmCloseLink);
  hmSpielfeld.appendChild(hmClose);
  if(hmAbsolutePosition){
    hmSpielfeld.style.position = "absolute";
    hmSpielfeld.style.zIndex = "2";
    hmSpielfeld.style.bottom = "10px";
    hmSpielfeld.style.right = "15px";
  }
  hmGameBildP = r.document.createElement("p");
  hmGameBild = r.document.createElement("img");
  hmGameBild.src = hmBilder[0];
  hmGameBild.setAttribute("id", "hmBild");
  hmGameBildP.appendChild(hmGameBild);
  hmSpielfeld.appendChild(hmGameBildP);
  hmGameText = r.document.createElement("span");
  hmGameText.setAttribute("id", "hmText")
  if(hmUmlaute)hmGameText.appendChild(r.document.createTextNode(word.replace(/[a-zäöüß]/gi, "_")));
  else hmGameText.appendChild(r.document.createTextNode(word.replace(/[a-z]/gi, "_")));
  hmSpielfeld.appendChild(hmGameText);
  hmGameBuchstaben = r.document.createElement("div");
  hmGameBuchstaben.setAttribute("id", "hmBuchstaben");
  if(hmUmlaute)b=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", "ä", "ö", "ü", "ß"];
  else b=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
  bb="";
  for(i=0;i<b.length;i++){
    bb+=" <span onclick='parent.mainframe.sendeText(\""+hmBefehl+" "+b[i]+"\")'>"+b[i]+"</span>";
  }
  hmGameBuchstaben.innerHTML = bb+"<br><span onclick='with(parent.info.document.eingabe.message){value=\""+hmBefehl+" \"+document.getElementById(\"hmText\").innerHTML; focus(); if(createTextRange){pos=createTextRange(); pos.collapse(false); pos.select();}}'>lösen</span>";
  hmSpielfeld.appendChild(hmGameBuchstaben);
  
  if(r.document.getElementById("Hangman"))
  r.document.body.removeChild(r.document.getElementById("Hangman"));
  r.document.body.insertBefore(hmSpielfeld, r.document.getElementsByTagName("p")[0]);
}
Die ersten 8 Zeilen können angepasst werden um das Script zu konfigurieren.
hmWords ist ein Array der Vorgegebenen Worte. Gebt dort einfach alle Worte in Anführungszeichen und durch Komma getrennt ein, die im Spiel zu erraten sein sollen.

hmImgPfad ist der Pfad, in dem die Bilder gespeichert sind. Das dient lediglich dazu, den Code in der nächsten Zeile zu verkürzen da in aller Regel die Bilder ja in einem Verzeichnis liegen.

hmBilder ist ein Array der Hangman-Bilder, also vom leeren Bild das sich dann immer weiter aufbaut bis das Männchen am Galgen hängt... Wem das Galgenmännchen nicht gefällt der kann auch eine Strichliste herunterzählen lassen oder sich irgendwas anderes ausdenken... der Fantasie sind keine Grenzen gesetzt ;)
Wenn euch die Schreibweise zu unübersichtlich ist oder ihr (z.B. durch einen Bildhoster) darauf angewiesen seid unterschiedliche Verzeichnisse für die Bilder zu nutzen könnt ihr auch auf hmImgPfad verzichten und im Code direkt die ganzen Bild-URLs eintragen:

Code: Alles auswählen

hmBilder=["http://wktools.net/images/games/hangman/black_handgemalt/hm0.gif", "http://wktools.net/images/games/hangman/black_handgemalt/hm1.gif", "http://wktools.net/images/games/hangman/black_handgemalt/hm2.gif", "http://wktools.net/images/games/hangman/black_handgemalt/hm3.gif", "http://wktools.net/images/games/hangman/black_handgemalt/hm4.gif", "http://wktools.net/images/games/hangman/black_handgemalt/hm5.gif", "http://wktools.net/images/games/hangman/black_handgemalt/hm6.gif", "http://wktools.net/images/games/hangman/black_handgemalt/hm7.gif", "http://wktools.net/images/games/hangman/black_handgemalt/hm8.gif", "http://wktools.net/images/games/hangman/black_handgemalt/hm9.gif", "http://wktools.net/images/games/hangman/black_handgemalt/hm10.gif", "http://wktools.net/images/games/hangman/black_handgemalt/hm11.gif"];
Die Anzahl der hier eingetragenen Bilder entscheidet darüber, wie oft die User falsch raten dürfen bevor das Spiel vorbei ist. Im Beispiel sind es 12 Bilder, also (da das erste, leere, ja gleich am Anfang drin ist) 11 Fehlversuche bevor das Spiel beendet ist.

Moni postet im folgenden Beitrag auch gleich einige Bilder-Sets... Wer selbst welche erstellt kann diese natürlich auch gerne hier veröffentlichen.

hmAllowOwnWords entscheidet ob die User eigene Worte anbieten können oder ob nur die fest eingetragenen zufällig gewählt werden. Ist es auf 1, so können die User per /hm s WORT ein Hangmanspiel mit einem eigenen Wort starten, ansonsten geht es nur per /hm und es wird ein zufälliges Wort aus dem Array gewählt.

in hmBefehl wird der Chatbefehl eingestellt, den ihr angelegt habt. /hm empfiehlt sich da er kurz ist und man ihn in dem Spiel recht häufig eingeben muss ;)

Über hmSpielfeldBorderStyle könnt ihr per CSS den Rahmen des Spielfeldes einstellen.

hmAbsolutePosition bestimmt darüber ob das Spielfeld in der OL absolut positioniert wird und damit die Nicks überlagert oder fest oberhalb der Nicks angezeigt wird.

hmUmlaute bestimmt ob im Spiel auch Umlaute (ÄÖÜ und ß) verwendet werden dürfen. Wenn man diesen Wert auf 0 setzt werden diese Zeichen wie alle Sonderzeichen behandelt und direkt angezeigt. Man sollte dann in den zu erratenden Worten ä durch ae, ß durch ss usw. umschreiben.

Anschließend wird die JS-Datei wie gewohnt in die normale und die Gastankündigung eingebunden:

Code: Alles auswählen

<script type='text/javascript' src='http://URL der JS-Datei'></script>
Dann muss noch der bereits erwähnte Chatbefehl angelegt werden. Empfehlung wie gesagt /hm, kann aber auch anders genannt werden - dann aber auch im Script ändern.

Code: Alles auswählen

<script type=text/javascript>if(parent.info){hmBefehlsAuswertung('%user%','%me%');}else{document.write('spielt Hangman')}</script>
Ein Spiel wird dann mittels "/hm s Wort" gestartet wenn man ein eigenes Wort angeben will oder nur /hm um ein zufälliges von denen zu wählen, die im Script eingetragen sind.

Raten kann man dann mit "/hm x" (x natürlich durch einen beliebigen Buchstaben ersetzen) oder durch Klicken auf den Buchstaben in der Onlineliste.

Lösen kann man per "/hm Wort".

Hier schonmal 2 Bildersets von mir:
Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild

Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild

Changelog:
23.12.2009: Es können nun auch Umlaute verwendet werden. Diese Funktion lässt sich deaktivieren, sodass Umlaute mit ae, etc. umschrieben werden müssen.
Zuletzt geändert von 1. FC Keller am 23.12.2009, 01:10, insgesamt 1-mal geändert.
Grund: Neues Feature: es können Umlaute (de-)aktiviert werden

Benutzeravatar
ZischDings
Moderator
Beiträge: 672
Registriert: 22.12.2004, 16:01
Kontaktdaten:

Re: Hangman

Ungelesener Beitrag von ZischDings » 19.08.2009, 14:02

hier meine farbige hangman-grafiken für euch.
die einzelnen grafiken sind pro farbe gezippt - zum download einfach auf die farbe deiner wahl klicken ;-)

wie immer würde ich auf wunsch auch in einer ganz individuellen farbe einfärben, wenn man mir den hex-code (zB #BF8000) oder die rgb-werte (zB 191,128,0) nennt :)

BildBildBildBildBildBildBildBildBildBildBild

BildBildBildBildBildBildBildBildBildBildBild

BildBildBildBildBildBildBildBildBildBildBild


BildBildBildBildBildBildBildBildBild

BildBildBildBildBildBildBildBildBild

BildBildBildBild

TauchBlubba
Beiträge: 79
Registriert: 21.10.2007, 19:04
Wohnort: Altenstadt (Mittelhessen)
Kontaktdaten:

Re: Spiel: Hangman

Ungelesener Beitrag von TauchBlubba » 19.08.2009, 19:59

Besten Danke, geiler gehts nicht. :mrgreen:

bremergoere
Beiträge: 34
Registriert: 27.07.2009, 16:22
Kontaktdaten:

Re: Spiel: Hangman

Ungelesener Beitrag von bremergoere » 19.08.2009, 20:09

der sagt mir immer derzeit gibt es kein hangman ;(
Zuletzt geändert von 1. FC Keller am 19.08.2009, 20:19, insgesamt 1-mal geändert.
Grund: codes bitte in code-tags posten. und diesen code zu posten war total unnütz

1. FC Keller
Moderator
Beiträge: 866
Registriert: 04.07.2004, 17:10
Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda
Kontaktdaten:

Re: Spiel: Hangman

Ungelesener Beitrag von 1. FC Keller » 19.08.2009, 21:13

du musst hm per /hm oder /hm s Wort starten. Wenn du /hm buchstabe oder /hm wort eingibst und noch kein spiel läuft bekommst du die meldung "kein spiel läuft"

bremergoere
Beiträge: 34
Registriert: 27.07.2009, 16:22
Kontaktdaten:

Re: Spiel: Hangman

Ungelesener Beitrag von bremergoere » 20.08.2009, 15:16

habe ich ja gemacht keller aber es funktioniert leider nicht :(

1. FC Keller
Moderator
Beiträge: 866
Registriert: 04.07.2004, 17:10
Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda
Kontaktdaten:

Re: Spiel: Hangman

Ungelesener Beitrag von 1. FC Keller » 20.08.2009, 16:29

Keine ahnung warum aber bei dir waren im Chatbefehl bei %user% und %me% jeweils \ vor den % sodass es nicht vom Chat erkannt und ersetzt wurde.
Hab das korrigiert. Jetzt musst du nur noch die Bild-Adressen in der js richtig eintragen ;)
Wenn du die gesamte adresse des Bildes mit http:// angibst musst du hmBilderPfad löschen. Es müsste also bei dir so aussehen:

Code: Alles auswählen

hmWords = ["Webkicks", "Chat", "Keller", "WkTools", "Moni", "Zischdings", "Hangman"];
hmBilder=["http://wkhost.webkicks.de/chatsymbole/01.gif", "http://wkhost.webkicks.de/chatsymbole/02.gif", "http://wkhost.webkicks.de/chatsymbole/03.gif", "http://wkhost.webkicks.de/chatsymbole/04.gif", "http://wkhost.webkicks.de/chatsymbole/05.gif", "http://wkhost.webkicks.de/chatsymbole/06.gif", "http://wkhost.webkicks.de/chatsymbole/07.gif", "http://wkhost.webkicks.de/chatsymbole/08.gif", "http://wkhost.webkicks.de/chatsymbole/09.gif", "http://wkhost.webkicks.de/chatsymbole/10.gif", "http://wkhost.webkicks.de/chatsymbole/11.gif", "http://wkhost.webkicks.de/chatsymbole/12.gif"];
hmAllowOwnWords=1;
hmBefehl = "/hm";
hmSpielfeldBorderStyle="1px dotted #006600";
hmAbsolutePosition=1;

iDark
Beiträge: 21
Registriert: 06.07.2009, 19:50
Kontaktdaten:

Re: Spiel: Hangman

Ungelesener Beitrag von iDark » 20.08.2009, 23:40

Hey,

1. Danke für das Spiel :)

2. Ist es Normal, dass die _ nicht auseinander sind ..bei mir sieht es so aus: _____ statt _ _ _ _ :oops:

2. Kann man die Befehle /hm X für andere unsichtbar machen? Also nicht, dass im Chat-Stream für andere die texte erscheinen?

3. Wie bekomme ich HG schwarz hin? ..ich mag nicht Transparent haben! ^^

4. Wenn ich auf 'x' klicke, wird das Spiel garnicht beendet (passiert garnix)

5. Ich hoffe, die grafiken gefallen euch. Habe erst in 3 Farben.. aber wenn andere Farben gewünscht werden, einfach bescheid geben :)

Black:
BildBildBildBildBildBildBildBildBildBildBild

White:
BildBildBildBildBildBildBildBildBildBildBild

Red:
BildBildBildBildBildBildBildBildBildBildBild

TauchBlubba
Beiträge: 79
Registriert: 21.10.2007, 19:04
Wohnort: Altenstadt (Mittelhessen)
Kontaktdaten:

Re: Spiel: Hangman

Ungelesener Beitrag von TauchBlubba » 23.08.2009, 15:00

3. Wie bekomme ich HG schwarz hin? ..ich mag nicht Transparent haben! ^^
Das interessiert mich auch, bekomme leider nur bei der Buchstaben Auswahl und dem lösen einen Hintergrund.

grüße
Chrissi

1. FC Keller
Moderator
Beiträge: 866
Registriert: 04.07.2004, 17:10
Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda
Kontaktdaten:

Re: Spiel: Hangman

Ungelesener Beitrag von 1. FC Keller » 24.08.2009, 19:22

iDark hat geschrieben:2. Ist es Normal, dass die _ nicht auseinander sind ..bei mir sieht es so aus: _____ statt _ _ _ _ :oops:
Joa... ist schon absicht. Ich hatte anfangs bindestriche... ----- da hat man kleine abstände dazwischen. stören die fehlenden Abstände denn wirklich so?
iDark hat geschrieben:2. Kann man die Befehle /hm X für andere unsichtbar machen? Also nicht, dass im Chat-Stream für andere die texte erscheinen?

Code: Alles auswählen

function hmZug(u){
  u=u.toLowerCase();
  if(u.length!=1){
    if(u==hmWord.toLowerCase()){
      document.write("Gel&ouml;st: "+hmWord);
      hmGameRunning=0;
      setTimeout('r=parent.rightFrame;r.document.body.removeChild(r.document.getElementById("Hangman"))', 3000);
    }
    else{
      document.write("Falsche L&ouml;sung: "+u+((hmStatus==(hmBilder.length-1))?(" Game Over :-( L&ouml;sung: "+hmWord):""));
      hmStatus++;
      parent.rightFrame.document.getElementById("hmBild").src=hmBilder[hmStatus];
      if(hmStatus==(hmBilder.length-1)){
   hmGameRunning=0;
   setTimeout('r=parent.rightFrame;r.document.body.removeChild(r.document.getElementById("Hangman"))', 3000);
      }
    }
    return;
  }
  if(!u.match(/^[a-z]$/)){
    document.write("immer nur ein Buchstabe!");
    return;
  }
  if(!hmLetters.inArray(u))hmLetters[hmLetters.length]=u;
  if(!(hmWord.toLowerCase().match(u))){
    hmStatus++;
    parent.rightFrame.document.getElementById("hmBild").src=hmBilder[hmStatus];
    document.write("sendet ein "+u+". Leider falsch."+((hmStatus==(hmBilder.length-1))?(" Game Over :-( L&ouml;sung: "+hmWord):""));
    if(hmStatus==(hmBilder.length-1)){
      hmGameRunning=0;
      setTimeout('r=parent.rightFrame;r.document.body.removeChild(r.document.getElementById("Hangman"))', 3000);
    }
  }
  else{
    tmpWord=hmWord;
    //eval("tmpWord=tmpWord.replace(/[^"+hmLetters.join("")+"0-9\.\!\_\+\*\'\#\"\$\^\<\>\|\:\)\(\]\[\}\\\{\/\&\%\§ ]/gi, '-');");
    eval("tmpWord=tmpWord.replace(/[^"+hmLetters.join("")+"0-9 ]/gi, '_');");
    parent.rightFrame.document.getElementById("hmText").innerHTML=tmpWord;
    document.write("sendet ein "+u+". Das ist ein Treffer."+(tmpWord==hmWord?(" Gel&ouml;st! L&ouml;sung: "+hmWord):""));
    if(tmpWord==hmWord){
      hmGameRunning=0;
      setTimeout('r=parent.rightFrame;r.document.body.removeChild(r.document.getElementById("Hangman"))', 3000);
    }
  }
  b=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
  bb="";
  for(i=0;i<b.length;i++){
    if(!hmLetters.inArray(b[i]))
    bb+=" <span onclick='parent.mainframe.sendeText(\""+hmBefehl+" "+b[i]+"\")'>"+b[i]+"</span>";
  }
  parent.rightFrame.document.getElementById("hmBuchstaben").innerHTML=bb+"<br><span onclick='with(parent.info.document.eingabe.message){value=\""+hmBefehl+" \"+document.getElementById(\"hmText\").innerHTML; focus(); if(createTextRange){pos=createTextRange(); pos.collapse(false); pos.select();}}'>l&ouml;sen</span>";
  tbls=document.getElementsByTagName("table");
  tbls[tbls.length].style.display = "none";
}
Ergänzt habe ich in dieser Funktion nur die letzten beiden Zeilen.
iDark hat geschrieben:3. Wie bekomme ich HG schwarz hin? ..ich mag nicht Transparent haben! ^^
hmSpielfeld = r.document.createElement("p");
hmSpielfeld.style.backgroundColor = "#000000";
hmSpielfeld.style.border = hmSpielfeldBorderStyle;
Wenn ihr diese Zeile einfügt sollte es laufen.
iDark hat geschrieben:4. Wenn ich auf 'x' klicke, wird das Spiel garnicht beendet (passiert garnix)
Das ist (teilweise) absicht. Es sollte sich lediglich bei dem jenigen der das X klickt das Spielfeld schließen. Das Spiel selbst soll nicht beendet werden da so ja ein Chatter allen anderen das Spiel verderben könnte.
iDark hat geschrieben:5. Ich hoffe, die grafiken gefallen euch. Habe erst in 3 Farben.. aber wenn andere Farben gewünscht werden, einfach bescheid geben :)
Ich find sie gut :-)

iDark
Beiträge: 21
Registriert: 06.07.2009, 19:50
Kontaktdaten:

Re: Spiel: Hangman

Ungelesener Beitrag von iDark » 25.08.2009, 00:49

1. FC Keller hat geschrieben:Joa... ist schon absicht. Ich hatte anfangs bindestriche... ----- da hat man kleine abstände dazwischen. stören die fehlenden Abstände denn wirklich so?
Mich irgendwie schon :oops:
Durch _ _ _ erkennt man sofort wie viele Buchstaben da sind .. wäre mir persönlich echt lieber. ^^
1. FC Keller hat geschrieben:Ich find sie gut :-)
Das ehrt mich sehr :D

Maxs
Moderator
Beiträge: 551
Registriert: 09.10.2008, 18:21
Kontaktdaten:

Re: Spiel: Hangman

Ungelesener Beitrag von Maxs » 11.10.2009, 12:39

Hey,
hab das Nickmenü-Script und wenn ich einen Buchstaben in dem kleinen Fenster anklicke, dann erscheint das Menü und er regestriert nicht, das ich auf dem Buchstaben geklickt habe. Aber über /hm [Buchstabe] funktioniert es ja. Wäre aber trotzdem toll wenn man den Bug beheben könnte.

Grüße Maxs

InvaderX
Beiträge: 49
Registriert: 21.08.2009, 00:10

Re: Spiel: Hangman

Ungelesener Beitrag von InvaderX » 11.10.2009, 18:39

So sieht des bei mir aus wenn man einen Buchstaben anklickt:
Bild

Maxs
Moderator
Beiträge: 551
Registriert: 09.10.2008, 18:21
Kontaktdaten:

Re: Spiel: Hangman

Ungelesener Beitrag von Maxs » 11.10.2009, 19:17

Jo genau, so bei mri auch.

badboy144
Beiträge: 15
Registriert: 05.10.2009, 21:29

Re: Spiel: Hangman

Ungelesener Beitrag von badboy144 » 14.10.2009, 22:25

ich habe mal eine frage wo kann ich denn code als js ab speichern und wie baue ich das eigenlich ein ann mir das einer sagen wär sehr nett



hmWords = ["Webkicks", "Chat", "Keller", "WkTools", "Moni", "Zischdings", "Hangman"];
hmImgPfad= "http://wktools.net/images/games/hangman ... andgemalt/";
hmBilder=[hmImgPfad+"hm0.gif", hmImgPfad+"hm1.gif", hmImgPfad+"hm2.gif", hmImgPfad+"hm3.gif", hmImgPfad+"hm4.gif", hmImgPfad+"hm5.gif", hmImgPfad+"hm6.gif", hmImgPfad+"hm7.gif", hmImgPfad+"hm8.gif", hmImgPfad+"hm9.gif", hmImgPfad+"hm10.gif", hmImgPfad+"hm11.gif"];
hmAllowOwnWords=1;
hmBefehl = "/hm";
hmSpielfeldBorderStyle="1px dotted #006600";
hmAbsolutePosition=1;

//feste spielvariablen - nicht aendern!
hmTmpPlayer="";
hmWord="";
hmLetters = [];
hmStatus=0;
hmGameRunning=0;

function hmBefehlsAuswertung(eingabe, sender){
u=strip_tags(eingabe);
m=strip_tags(sender);
u2=u.split(" ");
if(!hmGameRunning && (u!="" && !hmAllowOwnWords || hmAllowOwnWords && (u2.length<2 || u2[0]!="s") && u != "")){
document.write("im Moment l&auml;uft kein Hangman-Spiel");
return;
}
if(!hmGameRunning){
document.write("startet ein Hangman-Spiel.");
if(hmAllowOwnWords && u2.length>1){
if(u2.shift()=="s"){
if(!u.match(/\w+[a-z\s]+/i)){
document.write(" Fehler: Ung&uuml;ltiges Wort: "+u);
return;
}
hmWord=u2.join(" ");
hmGameRunning=2;
hmZeichneTabelle(hmWord);
hmLetters=[];
hmStatus=0;
}
}
else{
sendeText(hmBefehl+" "+(parseInt(Math.random() * hmWords.length)), m);
hmGameRunning=1;
hmTmpPlayer=m;
window.setTimeout("if(hmGameRunning==1)hmGameRunning=0;", 3000); //Wenn kein Spiel innerhalb von 3 Sekunden gestartet wird wird der Status wieder auf "kein Spiel laeuft" gesetzt.
}
return;
}
if(hmGameRunning==1 && m==hmTmpPlayer){
hmGameRunning=2;
hmWord=hmWords;
hmTmpPlayer="";
hmZeichneTabelle(hmWord);
hmLetters=[];
hmStatus=0;
document.getElementsByTagName("table")[document.getElementsByTagName("table").length-1].style.display="none";
return;
}
if(hmGameRunning != 2) return;
hmZug(u);
}

function hmZug(u){
u=u.toLowerCase();
if(u.length!=1){
if(u==hmWord.toLowerCase()){
document.write("Gel&ouml;st: "+hmWord);
hmGameRunning=0;
setTimeout('r=parent.rightFrame;r.document.body.removeChild(r.document.getElementById("Hangman"))', 3000);
}
else{
document.write("Falsche L&ouml;sung: "+u+((hmStatus==(hmBilder.length-1))?(" Game Over :-( L&ouml;sung: "+hmWord):""));
hmStatus++;
parent.rightFrame.document.getElementById("hmBild").src=hmBilder[hmStatus];
if(hmStatus==(hmBilder.length-1)){
hmGameRunning=0;
setTimeout('r=parent.rightFrame;r.document.body.removeChild(r.document.getElementById("Hangman"))', 3000);
}
}
return;
}
if(!u.match(/^[a-z]$/)){
document.write("immer nur ein Buchstabe!");
return;
}
if(!hmLetters.inArray(u))hmLetters[hmLetters.length]=u;
if(!(hmWord.toLowerCase().match(u))){
hmStatus++;
parent.rightFrame.document.getElementById("hmBild").src=hmBilder[hmStatus];
document.write("sendet ein "+u+". Leider falsch."+((hmStatus==(hmBilder.length-1))?(" Game Over :-( L&ouml;sung: "+hmWord):""));
if(hmStatus==(hmBilder.length-1)){
hmGameRunning=0;
setTimeout('r=parent.rightFrame;r.document.body.removeChild(r.document.getElementById("Hangman"))', 3000);
}
}
else{
tmpWord=hmWord;
//eval("tmpWord=tmpWord.replace(/[^"+hmLetters.join("")+"0-9\.\!\_\+\*\'\#\"\$\^\<\>\|\:\)\(\]\[\}\\\{\/\&\%\§ ]/gi, '-');");
eval("tmpWord=tmpWord.replace(/[^"+hmLetters.join("")+"0-9 ]/gi, '_');");
parent.rightFrame.document.getElementById("hmText").innerHTML=tmpWord;
document.write("sendet ein "+u+". Das ist ein Treffer."+(tmpWord==hmWord?(" Gel&ouml;st! L&ouml;sung: "+hmWord):""));
if(tmpWord==hmWord){
hmGameRunning=0;
setTimeout('r=parent.rightFrame;r.document.body.removeChild(r.document.getElementById("Hangman"))', 3000);
}
}
b=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
bb="";
for(i=0;i<b.length;i++){
if(!hmLetters.inArray(b))
bb+=" <span onclick='parent.mainframe.sendeText(\""+hmBefehl+" "+b+"\")'>"+b+"</span>";
}
parent.rightFrame.document.getElementById("hmBuchstaben").innerHTML=bb+"<br><span onclick='with(parent.info.document.eingabe.message){value=\""+hmBefehl+" \"+document.getElementById(\"hmText\").innerHTML; focus(); if(createTextRange){pos=createTextRange(); pos.collapse(false); pos.select();}}'>l&ouml;sen</span>";
}

function hmZeichneTabelle(word){
ie=(document.all&&!window.innerWidth && navigator.userAgent.toLowerCase().indexOf("msie") != -1)?1:0;
r = parent.rightFrame;

hmSpielfeld = r.document.createElement("p");
hmSpielfeld.style.border = hmSpielfeldBorderStyle;
hmSpielfeld.setAttribute("id", "Hangman");
hmClose = r.document.createElement("div");
hmClose.style.marginBottom="0px";
hmClose.style.textAlign="right";
hmCloseLink = r.document.createElement("a");
hmCloseLink.setAttribute("href", "javascript:void(document.body.removeChild(document.getElementById('Hangman')));");
hmCloseLink.appendChild(r.document.createTextNode("X"));
hmClose.appendChild(hmCloseLink);
hmSpielfeld.appendChild(hmClose);
if(hmAbsolutePosition){
hmSpielfeld.style.position = "absolute";
hmSpielfeld.style.zIndex = "2";
hmSpielfeld.style.bottom = "10px";
hmSpielfeld.style.right = "15px";
}
hmGameBildP = r.document.createElement("p");
hmGameBild = r.document.createElement("img");
hmGameBild.src = hmBilder[0];
hmGameBild.setAttribute("id", "hmBild");
hmGameBildP.appendChild(hmGameBild);
hmSpielfeld.appendChild(hmGameBildP);
hmGameText = r.document.createElement("span");
hmGameText.setAttribute("id", "hmText")
hmGameText.appendChild(r.document.createTextNode(word.replace(/[a-z]/gi, "_")));
hmSpielfeld.appendChild(hmGameText);
hmGameBuchstaben = r.document.createElement("div");
hmGameBuchstaben.setAttribute("id", "hmBuchstaben");
b=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
bb="";
for(i=0;i<b.length;i++){
bb+=" <span onclick='parent.mainframe.sendeText(\""+hmBefehl+" "+b+"\")'>"+b+"</span>";
}
hmGameBuchstaben.innerHTML = bb+"<br><span onclick='with(parent.info.document.eingabe.message){value=\""+hmBefehl+" \"+document.getElementById(\"hmText\").innerHTML; focus(); if(createTextRange){pos=createTextRange(); pos.collapse(false); pos.select();}}'>l&ouml;sen</span>";
hmSpielfeld.appendChild(hmGameBuchstaben);

if(r.document.getElementById("Hangman"))
r.document.body.removeChild(r.document.getElementById("Hangman"));
r.document.body.insertBefore(hmSpielfeld, r.document.getElementsByTagName("p")[0]);
}

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste