Forum zum WebKicks.De Chatsystem Foren-Übersicht Forum zum WebKicks.De Chatsystem
Support-Forum zum WebKicks-Chatsystem
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Dieses Forum dient als Archiv, es können keine neuen Beiträge eröffnet werden.

Hier geht es zum neuen Webkicks Forum
.

Spiel: Dame
Gehe zu Seite 1, 2, 3, 4, 5, 6  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Forum zum WebKicks.De Chatsystem Foren-Übersicht -> Bots, Chat-Games
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
1. FC Keller
Moderator



Anmeldedatum: 04.07.2004
Beiträge: 4176
Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda

BeitragVerfasst am: 24.12.2007, 11:35    Titel: Spiel: Dame Antworten mit Zitat

Hiermit möchte ich euch als kleine Weihnachtsüberaschung mein zweites Spiel für die Webkicks-Chats vorstellen: Dame.

Äußerliches / Funktionsweise
Um ein Spiel zu starten muss muss man den Befehl
Code:
/dame USER

absenden. So erscheinen beim eingeladenen User 2 Buttons, mit denen er das Spiel entweder annehmen oder ablehnen kann.
Nimmt er das Spiel an, so wird bei beiden unten rechts in der Onlineliste ein kleines Dame-Spielfeld eingeblendet.
Wenn man auf einen eigenen Stein klickt bekommt man alle möglichen Züge markiert. Durch Klicken auf so ein markiertes
Feld bewegt man den Stein. Die Steine können nur auf den dunklen Feldern bewegt werden. Durch überspringen eines
gegnerischen Steins kann man diesen "Schlagen". Wer keine Steine mehr hat hat das Spiel verloren.
Wenn ein Stein ganz hinten ankommt wird dieser zur Dame. Die Dame kann sich in beide Richtungen bewegen und beliebig
viele Felder überspringen.
Wenn man einen gegnerischen Stein überspringen kann muss man das auch tun. Tut man das nicht wird der eigene Stein, der
hätte springen müssen, entfernt. Dabei sind Sprünge von Damen priorisiert. Kann man also mit einer Dame und einem normalen
Stein springen, so muss man die Dame nehmen.


Voraussetzungen
Wie bei 4 Gewinnt ist die Grundscriptsammlung sowie ein Webspace für die JS-Datei und die Bilder notwendig und das Nickmenü
hilfreich.

Einbau

Ab sofort gibt es auf www.wktools.net einen Generator. Damit könnt ihr euch ein eigenes Design für dieses Spiel erstellen. Dafür braucht ihr keine besonderen Erfahrungen mit Scripts oder HTML und müsst auch nichts selbst auf einen Webspace hochladen. Er ist also auch für Anfänger durchaus geeignet. Wenn ihr den Generator nutzen wollt braucht ihr ab hier nicht weiterlesen, denn hier wird nur noch der manuelle Einbau erklärt.

------------------------------------------------------------------------------------

Folgendermaßen könnt ihr euch das Script selbst anlegen, anpassen und hosten:

Den folgenden Code müsst ihr als JS-Datei auf den Webspace hochladen:

Code:
var dameBilderPfad = "http://www.deineDomain.de/dame/";
var dameFieldColors = ["#CAAD6C","#7B5536"];
var dameAbsolutePosition = false;
var damePlayerNr = 2;
var damePlayer = new Array(2);
var dameGame;
var dameVorbei = true;
var dameBild1="playera";
var dameBild="playerb";
var dameZuege = 0;
var damePlayerFrei = new Array(2);
damePlayerFrei[1] = true;
damePlayerFrei[2] = false;
var dameTmpPlayer = new Array(2);
dameTmpPlayer[1] = "";
dameTmpPlayer[2] = "";
var dameImPlayer;
var dameMyColor, dameGegnerColor;
var dameMarkiert=[];
var dameTmpGame=[];
var testAusgabe = false;

//Durchschnitt zwischen den beiden Feldfarben errechnen (zum Markieren von Feldern)
a=dameFieldColors;
dameFieldColors[2] = "#";
for(i=1;i<a[0].length;i++){
  dameFieldColors[2] += Math.round((parseInt(a[0].charAt(i), 16)+parseInt(a[1].charAt(i), 16))/2).toString(16);
}

function dameBtnClick(zeile, spalte){
  prd=parent.rightFrame.document;
 
  var tmpSendeBefehl=false;
  //weiße Felder ignorieren und abbrechen wenn man nicht am Zug ist
  if((zeile+spalte)%2 == 0 || damePlayerNr != dameImPlayer)
    return;
   
  dameTmpGame=dameTmpGame.length==0?clone(dameGame):dameTmpGame;
 
  //tmp="";for(i=0; i < 8; i++){tmp+="\n";for(j=0;j<8;j++){tmp+=" "+dameTmpGame[i][j]}}alert(tmp);
   
  if(dameMyColor == "playerb"){
    add=-7;
    multi=-1;
  }
  else{
    add=0;
   multi=1;
  }
  gameSpalte=(spalte+add)*multi
  gameZeile=(zeile+add)*multi
 
  //fremde Steine ignorieren
  clickedStone=dameTmpGame[gameZeile][gameSpalte]
  if(clickedStone != dameImPlayer && clickedStone != dameImPlayer+2 && dameMarkiert.length==0)
    return;

  if(dameMarkiert.length==0){
    dameMoeglicheZuege=new Array();
    for(i=0;i<8;i++){
     for(j=0;j<8;j++){
       if(dameGueltigerZug(gameZeile, gameSpalte, i, j,0)){
          prd.getElementsByName("dameSpalte"+((j+add)*multi))[(i+add)*multi].style.backgroundColor=dameFieldColors[2];
        dameMoeglicheZuege.push(new Array(i, j));
      }
     }
   }
   //alert("erster Klick "+zeile+" "+spalte+" "+prd.getElementsByName("dameSpalte"+spalte)[zeile].src);
    parent.rightFrame.document.getElementsByName("dameSpalte"+spalte)[zeile].style.backgroundColor=dameFieldColors[2];
    dameMarkiert[0]=[gameZeile, gameSpalte];
    return;
  }
  else if(dameMarkiert[0][0]==gameZeile && dameMarkiert[0][1]==gameSpalte){
    //zurücksetzen
    dameMarkiert=[];
    for(i=0;i<8;i++){
      for(j=0;j<8;j++){
        parent.rightFrame.document.getElementsByName("dameSpalte"+j)[i].style.backgroundColor="transparent";
      }
    }
   dameTmpGame=[];
   dameMoeglicheZuege=[];
    return;
  }
  else if(dameMarkiert[dameMarkiert.length-1][0] == gameZeile && dameMarkiert[dameMarkiert.length-1][1] == gameSpalte){
    tmpSendeBefehl=true;
  }
  else if(aktZug = dameGueltigerZug(dameMarkiert[dameMarkiert.length-1][0], dameMarkiert[dameMarkiert.length-1][1], gameZeile, gameSpalte, dameMarkiert.length-1, dameTmpGame)){
    //zug definieren
    dameTmpGame[gameZeile][gameSpalte]=dameTmpGame[dameMarkiert[dameMarkiert.length-1][0]][dameMarkiert[dameMarkiert.length-1][1]];
   if(aktZug==2){
      //Sprung! Übersprungenen Stein entfernen!
      var i=dameMarkiert[dameMarkiert.length-1][0];
      var j=dameMarkiert[dameMarkiert.length-1][1];
      ipp=i<gameZeile;
      jpp=j<gameSpalte;
      for(;ipp && i<gameZeile || !ipp && i>gameZeile;i+=(ipp?1:-1), j+=(jpp?1:-1)){
//       alert(i+" "+j+" "+dameTmpGame[i][j]);
        dameTmpGame[i][j]=0;
//          break;
      }
    }
    dameMoeglicheZuege=[];
    dameMarkiert.push([gameZeile, gameSpalte]);
    var tmp;
    for(var i=0;i<8;i++){
      for(var j=0;j<8;j++){
        tmp=false;
        for(var k=0;k<dameMarkiert.length;k++){
          if(dameMarkiert[k][0] == i && dameMarkiert[k][1]==j){
            tmp=true;
          }
        }
        //wenn tmp schon true ist muss die gueltigerZug-Abfrage nicht gemacht werden (Ressourcen sparen!)
        if(!tmp && dameGueltigerZug(gameZeile,gameSpalte,i,j,dameMarkiert.length-1,dameTmpGame) && (dameMarkiert.length != 2 || dameGueltigerZug(dameMarkiert[0][0],dameMarkiert[0][1],dameMarkiert[1][0],dameMarkiert[1][1],0,dameGame)==2)){
          tmp=true;
          dameMoeglicheZuege.push([i,j]);
        }
      else if(testAusgabe){
        alert("!tmp = " + (!tmp) + ";\n dameGueltigerZug("+gameZeile+","+gameSpalte+","+i+","+j+",dameMarkiert.length-1,dameTmpGame) = "+ (dameGueltigerZug(gameZeile,gameSpalte,i,j,dameMarkiert.length-1,dameTmpGame)) + ";\n dameMarkiert.length!=2 = "+ (dameMarkiert.length!=2) +";\n dameGueltigerZug(dameMarkiert[0][0],dameMarkiert[0][1],dameMarkiert[1][0],dameMarkiert[1][1],0,dameGame)==2 = "+ (dameGueltigerZug(dameMarkiert[0][0],dameMarkiert[0][1],dameMarkiert[1][0],dameMarkiert[1][1],0,dameGame)==2));
        }
        parent.rightFrame.document.getElementsByName("dameSpalte"+((parseInt(j)+add)*multi))[(parseInt(i)+add)*multi].style.backgroundColor=(tmp?dameFieldColors[2]:"transparent");
      }
    }
  }
  if(dameMarkiert[dameMarkiert.length-1][0] == gameZeile && dameMarkiert[dameMarkiert.length-1][1] == gameSpalte && dameMoeglicheZuege.length == 0 || tmpSendeBefehl){
    //Zug absenden
    var tmp=new Array();
    for(var i=0;i<dameMarkiert.length;i++){
      tmp.push(dameMarkiert[i][0]);
      tmp.push(dameMarkiert[i][1]);
    }
    sendeText('/dame setzen, '+damePlayer[dameImPlayer==1?2:1]+', '+tmp.join(", "));
    //alert('/dame setzen, '+damePlayer[dameImPlayer==1?2:1]+', '+tmp.join(", "));
    dameMarkiert=new Array;
    for(i=0;i<8;i++){
      for(var j=0;j<8;j++)
        parent.rightFrame.document.getElementsByName("dameSpalte"+j)[i].style.backgroundColor="transparent";
    }
    dameMoeglicheZuege=[];
   dameMarkiert = new Array();
   dameTmpGame = new Array();
   return
  }
}

function dameGueltigerZug(refZeile, refSpalte, zeile, spalte, zugNummer, game){
  game=game?game:dameGame;
  stein = game[refZeile][refSpalte];
  if(game[zeile][spalte] == 0){
    if(stein==1){
      if(zeile == refZeile+1 && (spalte == refSpalte+1 || spalte == refSpalte-1) && zugNummer==0)
        return 1;//normaler Zug
      if(zeile==refZeile+2 && (spalte==refSpalte+2 && (game[zeile-1][spalte-1]==2 || game[zeile-1][spalte-1]==4) || spalte==refSpalte-2 && (game[zeile-1][spalte+1]==2 || game[zeile-1][spalte+1]==4)))
        return 2;//Sprung!
    }
    else if(stein==2){
      if(zeile == refZeile-1 && (spalte == refSpalte+1 || spalte == refSpalte-1) && zugNummer==0)
        return 1;//normaler Zug
      if(zeile==refZeile-2 && (spalte==refSpalte+2 && (game[zeile+1][spalte-1]==1 || game[zeile+1][spalte-1]==3) || spalte==refSpalte-2 && (game[zeile+1][spalte+1]==1 || game[zeile+1][spalte+1]==3)))
        return 2;//Sprung!
    }
    else if(stein==3 || stein==4){
      //Damen dürfen in jede Richtung
      //berechnen ob diagonal erreichbar
      if(refZeile-zeile == refSpalte-spalte || refZeile-zeile == (refSpalte-spalte)*-1){
        kpp = refZeile<zeile;
        lpp = refSpalte<spalte;
        chk=false;
      for(var k=refZeile+(kpp?1:-1), l=refSpalte+(lpp?1:-1); (kpp&&(k<=zeile) || !kpp&&(k>=zeile)) && (lpp&&(l<=spalte) || !lpp&&(l>=spalte)); (k=k+(kpp?1:-1)),(l=l+(lpp?1:-1))){
          if(game[k][l]==game[refZeile][refSpalte]-2 || game[k][l]==game[refZeile][refSpalte]){
            //wenn auf dem zu überspringenden Feld ein eigener Stein liegt wird abgebrochen
            break;
          }
          if(k==zeile && l==spalte)
            return chk?2:(zugNummer==0?1:0);
          if(game[k][l]==(((game[refZeile][refSpalte]-2)==1)?2:1) || game[k][l]==(((game[refZeile][refSpalte]-2)==1)?4:3)){
            if(chk){
              break;
            }
            chk=true;
          }
        }
      }
    }
  }
  return 0;
}

function dameBefehlsAuswertung(eingabe, sender){
  if(strip_tags(eingabe)==strip_tags(sender)){
    if(strip_tags(sender)==myNick)
      document.write("Dame Fehler: sich selbst einladen ist nicht möglich");
    else
      document.getElementsByTagName("table")[document.getElementsByTagName("table").length-1].style.display = "none";
    return;
  }
  a = strip_tags(eingabe).split(", ");
  b = strip_tags(sender);
  if(strip_tags(a[0]).toLowerCase()=="regeln"){
    if(b.toLowerCase() == myNick.toLowerCase()){
     document.write("<b><u>Regeln für Dame</u></b><br>Wenn man auf einen eigenen Stein klickt bekommt man alle möglichen Züge markiert. Durch Klicken auf ein so markiertes Feld bewegt man den Stein. Die Steine können nur auf den dunklen Feldern bewegt werden. Durch Überspringen eines gegnerischen Steins kann man diesen \"Schlagen\". Wer keine Steine mehr hat, der hat das Spiel verloren. Wenn ein Stein ganz hinten ankommt wird dieser zur Dame. <br>Die Dame kann sich in beide Richtungen bewegen und beliebig viele Felder überspringen. Wenn man einen gegnerischen Stein überspringen kann muss man das auch tun. Tut man das nicht wird der eigene Stein, der hätte springen müssen, entfernt. Dabei sind Sprünge von Damen priorisiert. Kann man also mit einer Dame und einem normalen Stein springen, so muss man die Dame nehmen.");
    }
    else{
      document.getElementsByTagName("table")[document.getElementsByTagName("table").length-1].style.display = "none";
    }
  }
  else if(a.length==1){
    dameEinladung(sender, eingabe);
  }
  if(a[0]=="imFree"){
    dameFrei(sender, a[1], a[2])
  }
  if(a[0]=="setzen"){
    gegner=a[1];
   setzer=b;
   for(i=0;i<2;i++)
     a.shift();
    dameSetzen(gegner, setzer, a);
   document.getElementsByTagName("table")[document.getElementsByTagName("table").length-1].style.display = "none";
  }
}

function dameSwitchPlayer(){
  dameBild = (damePlayerNr==1)?"playerb":"playera";
  dameBild1 = (damePlayerNr==1)?"playera":"playerb";
  damePlayerNr = (damePlayerNr==1)?2:1;
  parent.rightFrame.document.getElementById("amZug").firstChild.nodeValue  = damePlayer[damePlayerNr];
}
function dameSetzen(gegner, setzer, zuegeArray){
  dameTmpGame = clone(dameGame);
  var rd=parent.rightFrame.document;
  if((!(myNick == damePlayer[1] || myNick == damePlayer[2])) || (gegner != damePlayer[1] && gegner != damePlayer[2]) || (strip_tags(setzer) !=  damePlayer[1] && strip_tags(setzer) != damePlayer[2])){
    dameTmpGame=[];
    return;
  }
  refZeile=parseInt(zuegeArray[0]);
  refSpalte=parseInt(zuegeArray[1]);
  destZeile=parseInt(zuegeArray[2]);
  destSpalte=parseInt(zuegeArray[3]);
  //geprüft wird hier nur der erste Teil-Zug (bei Mehrfachsprüngen)
  ersterZug = dameGueltigerZug(refZeile, refSpalte, destZeile, destSpalte,0);
  if(!ersterZug){
    if(myNick == gegner)
      sendeText("/f "+strip_tags(setzer)+" Dame-Automessage: Fehlerhafter Spielzug!");
   dameTmpGame=[];
    return;
  }
  dameSwitchPlayer();
  setzer=strip_tags(setzer);
  if(dameImPlayer==1){
    add=-7;
    multi=-1;
  }
  else{
    add=0;
    multi=1;
  }
  gesetzterStein = dameGame[refZeile][refSpalte];
  for(var a=0;a+3<zuegeArray.length;a+=2){
    refZeile=parseInt(zuegeArray[a]);
    refSpalte=parseInt(zuegeArray[a+1]);
    destZeile=parseInt(zuegeArray[a+2]);
    destSpalte=parseInt(zuegeArray[a+3]);
   
    olRefSpalte=(refSpalte+add)*multi;
    olRefZeile=(refZeile+add)*multi;
    olDestSpalte=(destSpalte+add)*multi;
    olDestZeile=(destZeile+add)*multi;
    delSpalte=delZeile=-1;
    if(gesetzterStein<3){
      if(destSpalte==refSpalte+2)
        delSpalte=refSpalte+1;
      if(destSpalte==refSpalte-2)
        delSpalte=refSpalte-1;
      if(destZeile==refZeile+2)
        delZeile=refZeile+1;
      if(destZeile==refZeile-2)
        delZeile=refZeile-1;
    }
    else{
      if(refZeile-destZeile == refSpalte-destSpalte || refZeile-destZeile == (refSpalte-destSpalte)*-1){
        ipp = refZeile<destZeile;
        jpp = refSpalte<destSpalte;
        chk=false;
        for(i=refZeile+(ipp?1:-1),j=refSpalte+(jpp?1:-1); (ipp&(i<=destZeile) || !ipp&&(i>= destZeile)) && (jpp&&(j<=destSpalte) || !jpp&&(j>=destSpalte)); (i=i+(ipp?1:-1)),(j=j+(jpp?1:-1))){
          if(dameGame[i][j]==(((dameGame[refZeile][refSpalte]-2)==1)?2:1) || dameGame[i][j]==(((dameGame[refZeile][refSpalte]-2)==1)?4:3)){
            delZeile=i;
            delSpalte=j;
          }
        }
      }
    }
    if(delSpalte!=-1){
      dameGame[delZeile][delSpalte]=0;
      parent.rightFrame.document.getElementsByName("dameSpalte"+(delSpalte+add)*multi)[(delZeile+add)*multi].src=dameBilderPfad+"blank.gif";
    }
    dameGame[refZeile][refSpalte] = 0;
    parent.rightFrame.document.getElementsByName("dameSpalte"+olRefSpalte)[olRefZeile].src=dameBilderPfad+"blank.gif";
    if((destZeile==0 || destZeile==7) && gesetzterStein < 3){
      //Dame erhalten!
      dameGame[destZeile][destSpalte] = gesetzterStein+2;
      parent.rightFrame.document.getElementsByName("dameSpalte"+olDestSpalte)[olDestZeile].src=dameBilderPfad+dameBild+"1.gif";
      break;
    }
    else{
      dameGame[destZeile][destSpalte] = gesetzterStein;
      parent.rightFrame.document.getElementsByName("dameSpalte"+olDestSpalte)[olDestZeile].src=dameBilderPfad+dameBild+(gesetzterStein>2?"1":"")+".gif";
    }
    if(delSpalte == -1)
      break;
  }
  //Sprungzwang. Damesprung geht vor. Bei Missachtung/Übersehen wird der Stein, der hätte springen müssen, gelöscht.
  if(gesetzterStein<=2 || gesetzterStein>2 && ersterZug==1){
    //Damesprung geht vor!
    for(var i=0;i<8;i++){
      for(var j=0;j<8;j++){
        if(dameGame[i][j]==gesetzterStein+2){
          for(var a=0;a<8;a++){
            for(var b=0;b<8;b++){
              if(dameGueltigerZug(i,j,a,b,0,dameTmpGame)==2){
                if(i==zuegeArray[0] && j==zuegeArray[1]){
                  //wenn ein Stein der hätte springen müssen normal gesetzt wurde wird dieser gelöscht
                  i=parseInt(zuegeArray[2]);
                  j=parseInt(zuegeArray[3]);
                }
                dameGame[i][j]=0;
                parent.rightFrame.document.getElementsByName("dameSpalte"+((j+add)*multi))[(i+add)*multi].src=dameBilderPfad+"blank.gif";
                dameTmpGame=[];
            dameCheckIfWon();
                return;
              }
            }
          }
        }
      }
    }
   //Ende Damesprungerkennung
  }
  if(ersterZug == 1){
    for(var i=0;i<8;i++){
      for(var j=0;j<8;j++){
        for(var a=0;a<8;a++){
          for(var b=0;b<8;b++){
            tmp = dameGueltigerZug(i,j,a,b,0,dameTmpGame);
            if(tmp==2 && (dameTmpGame[i][j]==gesetzterStein || dameTmpGame[i][j]==gesetzterStein+(gesetzterStein>2?-2:2))){
           //Wenn der getestete Zug ein Sprung mit einem eigenen Stein wäre...
              if(i==zuegeArray[0] && j==zuegeArray[1]){
                //wenn ein Stein der hätte springen müssen normal gesetzt wurde wird dieser gelöscht
                i=parseInt(zuegeArray[2]);
                j=parseInt(zuegeArray[3]);
              }
              dameGame[i][j]=0;
              parent.rightFrame.document.getElementsByName("dameSpalte"+((j+add)*multi))[(i+add)*multi].src=dameBilderPfad+"blank.gif";
              dameTmpGame=[];
              dameCheckIfWon();
              return;
            }
          }
        }
      }
    }
  }
  dameTmpGame=[];
  dameCheckIfWon();
}
function dameCheckIfWon(){
  var steinCounter=[0,0,0];
  for(var k=0;k<8;k++){
    for(var l=0;l<8;l++){
     m=dameGame[k][l]
      if(m>0)
       steinCounter[m<3?m:m-2]++;
    }
  }
  if(steinCounter[1] == 0 || steinCounter[2]==0){
    alert(damePlayer[steinCounter[1]==0?2:1]+" hat das Dame-Spiel gewonnen.");
    parent.rightFrame.document.body.removeChild(parent.rightFrame.document.getElementById("dame"));
  }
}
function dameZeichneTabelle(){
  ie=(document.all&&!window.innerWidth && navigator.userAgent.toLowerCase().indexOf("msie") != -1)?1:0;
  r = parent.rightFrame;
  dameTabelle = r.document.createElement("table");
  dameTabelle.style.borderCollapse = "collapse";
  dameTabelle.style.borderSpacing = "0px";
  dameTbody = r.document.createElement("tbody");
  for(i=0;i<8;i++){
    dameTr = r.document.createElement("tr");
    for(j=0;j<8;j++){
      dameTd = r.document.createElement("td");
      dameTd.style.border = "solid #555 1px";
     dameTd.style.backgroundColor = dameFieldColors[(i+j)%2];
      if(!ie){
        dameTdImg = new Image();
        dameTdImg.src=dameBilderPfad+"blank.gif";
        dameTdImg.style.height = "13px";
        dameTdImg.style.width = "13px";
        dameTdImg.name = "dameSpalte"+j;
        eval("dameTdImg.onclick = function(e){parent.mainframe.dameBtnClick("+i+", "+j+")}");
        dameTd.appendChild(dameTdImg);
      }
      else{
        dameTdImg = "<img src='"+dameBilderPfad+"blank.gif' style='hight:13px;width:13px' onclick='parent.mainframe.dameBtnClick("+i+", "+j+")' name='dameSpalte"+j+"' />";
        dameTd.innerHTML += dameTdImg;
      }
      dameTr.appendChild(dameTd);
    }
    dameTbody.appendChild(dameTr);
  }
  dameTabelle.appendChild(dameTbody);
  dameSpielfeld = r.document.createElement("p");
  dameSpielfeld.style.border = "#888 solid 1px";
  dameSpielfeld.setAttribute("id", "dame");
  dameClose = r.document.createElement("div");
  dameClose.style.marginBottom="0px";
  dameClose.style.textAlign="right";
  dameCloseLink = r.document.createElement("a");
  dameCloseLink.setAttribute("href", "javascript:void(document.body.removeChild(document.getElementById('dame')));void(pm=parent.mainframe);void(pm.sendeText('/f '+pm.damePlayer[(pm.dameImPlayer==1?2:1)]+' Dame-Automessage: ich habe das Dame-Spiel verlassen.'));");
  dameCloseLink.appendChild(r.document.createTextNode("X"));
  dameClose.appendChild(dameCloseLink);
  dameSpielfeld.appendChild(dameClose);
  dameSpielfeld.appendChild(dameTabelle);
  if(dameAbsolutePosition){
    dameSpielfeld.style.position = "absolute";
    dameSpielfeld.style.bottom = "0px";
    dameSpielfeld.style.right = "0px";
  }
  dameNachTbl = r.document.createElement("span");
  dameNachTbl.appendChild(r.document.createTextNode("Am Zug: "));
  dameAmZug = r.document.createElement("span");
  dameAmZug.setAttribute("id", "amZug");
  dameAmZug.appendChild(r.document.createTextNode(damePlayer[2]));
  dameNachTbl.appendChild(dameAmZug);
  dameSpielfeld.appendChild(dameNachTbl);
  if(r.document.getElementById("dame"))
    r.document.body.removeChild(r.document.getElementById("dame"));
  r.document.body.appendChild(dameSpielfeld);
}
function dameEinladung(einlader, eingeladener){
  einlader = strip_tags(einlader);
  if(myNick == einlader || myNick.toLowerCase() == strip_tags(eingeladener).toLowerCase()){
    dameTmpPlayer[1] = einlader;
    dameTmpPlayer[2] = strip_tags(eingeladener);
    damePlayerFrei[2] = false;
   if(myNick.toLowerCase()==strip_tags(eingeladener).toLowerCase()){
      document.write("l&auml;dt dich auf eine Runde Dame ein. <a href='#' onclick='sendeText(\"/dame Regeln\");return false;'>Regeln anzeigen</a><p style='text-align:right;'><button onclick='dameElBtnsDeakt(this); sendeText(\"/dame imFree, "+dameTmpPlayer[1]+", true\")'>annehmen</button><button onclick='dameElBtnsDeakt(this); sendeText(\"/dame imFree, "+dameTmpPlayer[1]+", false\")'>ablehnen</button></p>");
    }
    else
      document.write("l&auml;dt "+eingeladener+" auf eine Runde Dame ein.");
  }
  else
    document.write("l&auml;dt "+eingeladener+" auf eine Runde Dame ein.");
  if((einlader==damePlayer[1] || einlader == damePlayer[2]) && !dameVorbei){
    dameVorbei = true;
    document.write(" Er/Sie beendet damit das derzeitige Spiel.");
    rd=parent.rightFrame.document;
    if(rd.getElementById("dame"))
      rd.body.removeChild(rd.getElementById("dame"));
  }
}
function dameElBtnsDeakt(objBtn){
  for(i in objBtn.parentNode.getElementsByTagName('button')){
    objBtn.parentNode.getElementsByTagName('button')[i].disabled=true;
  }
}
function dameFrei(freeUser, einlader, isFree){
  if(strip_tags(freeUser)==myNick)
    dameVorbei = true;
  if(!(myNick == einlader || myNick == dameTmpPlayer[2])){
    document.write((isFree=="true")?"nimmt die Dame-Einladung an.":"lehnt die Dame-Einladung ab.");
    return;
  }
  if(isFree=="false")
    document.write("lehnt die Dame-Einladung ab.");
  //Meldung für anderen Spieler des vorherigen Spieles falls dieses noch nicht beendet war
  if(!dameVorbei && isFree=="true"){
    document.write(" nimmt die Einladung an und verl&auml;sst damit das bisherige Spiel.");
    rd=parent.rightFrame.document;
    if(rd.getElementById("dame"))
      rd.body.removeChild(rd.getElementById("dame"));
    return;
  }
  if(strip_tags(freeUser) == dameTmpPlayer[2] && isFree=="true"){
    damePlayerFrei[2] = true;
    document.write(" nimmt die Einladung an.");
  }
  if(damePlayerFrei[1] && damePlayerFrei[2])
    starteDame();
}
function starteDame(){
  damePlayer = dameTmpPlayer;
  dameTmpPlayer = new Array();
  dameTmpPlayer[1]=dameTmpPlayer[2]="";
  damePlayerNr = 2;
  dameVorbei = false;
  dameImPlayer = (myNick==damePlayer[1])?1:2;
  dameGame = new Array(8);
 
  dameMyColor = (dameImPlayer==2)?"playera":"playerb";
  dameGegnerColor = (dameImPlayer==2)?"playerb":"playera";
  dameZeichneTabelle();
 
  for(i=0; i < 8; i++){
    dameGame[i]=new Array(8);
    for(j=0;j<8;j++){
     dameGame[i][j] = (i+j)%2?(i<3?1:(i>4?2:0)):-1;
      parent.rightFrame.document.getElementsByName("dameSpalte"+j)[i].src = dameBilderPfad+((i+j)%2?(i<3?dameGegnerColor:(i>4?dameMyColor:"blank")):"blank")+".gif";
    }
  }
}
//Quelle: http://javascript.geniusbug.com/index.php?action=show&name=clone
function clone(myObj){
  if(typeof(myObj) != 'object') return myObj;
  if(myObj == null) return myObj;
  var myNewObj = new Object();
  for(var i in myObj)
    myNewObj[i] = clone(myObj[i]);
  return myNewObj;
}


Anzupassen ist lediglich folgendes in der ersten Codezeile:
Code:
var dameBilderPfad = "http://www.beispiel.de/dame/";


Hier bitte das Verzeichnis angeben, in dem ihr alle Bilder hochladet, die hier gebraucht werden.

Die folgenden 2 Einstellungen sind optional.

In der 2. Zeile steht folgendes:
Code:
var dameFieldColors = ["#CAAD6C","#7B5536"];

Das sind die beiden Farben für die Felder. Die Markierung ist immer automatisch der Mittelwert aus diesen beiden Farben.

In der 3. seht ihr:
Code:
var dameAbsolutePosition = true;


Dadurch wird eingestellt ob das Spielfeld in der Onlineliste unten rechts (und ggf. Nick-Überlappend) oder oberhalb von "Derzeit
im Raum" angezeigt werden soll. Standard (true) bedeutet unten. Wenn es oben sein soll ändert es in false:
Code:
var dameAbsolutePosition = false;


Um den Code auch im Chat einzubinden müsst ihr den folgenden Code mit angepasster URL der js-Datei einfügen:
Code:
<script type="text/javascript" src="http://www.deineDomain.de/dame.js"></script>


Weiterhin muss noch ein Chatbefehl im Admin-Menü angelegt werden. Der Name muss, anders als bei anderen Scripts exakt so
eingehalten werden.

/dame
Code:
<script type=text/javascript>if(parent.info){dameBefehlsAuswertung('%user%','%me%');}else{document.write('spielt mit einem anderen Chatter Dame')}</script>


Zischdings war so nett und hat die Designs für das Spiel entworfen. Ihr müsst jeweils die 5 Bilder in das Verzeichnis hochladen,
welches Ihr in dem Script eingestellt habt. Die Codezeile ist jeweils die Farbeinstellung für das Spielfeld, welche Ihr in der
2. Codezeile anpassen könnt.
Selbstverständlich könnt ihr auch wieder eigene Designs erstellen. Die Bilder haben alle das Format 13x13 Pixel.


Zuletzt bearbeitet von 1. FC Keller am 24.11.2008, 18:04, insgesamt 4-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Zischdings
Webkicks - Team



Anmeldedatum: 22.12.2004
Beiträge: 6161

BeitragVerfasst am: 24.12.2007, 11:46    Titel: Antworten mit Zitat

hier ein paar designs für das spiel. falls jemand andere farben möchte ... bitte bescheid sagen - dazu bitte
mindestens 2 oder gleich alle 4 farbtöne (spielfeld und/oder spielsteine, hexcodes oder auch RGB) nennen.


edit:
für diejenigen unter euch, die zwar steine/kronen brauchen, ihr spielfeld aber selbst färben möchten, habe ich mal ein
paar grafiken extra angefertigt (die dateinamen habe ich zur einfacheren farborientierung nach den jeweiligen hexcodes
benannt, zum einbau ins dame-game müssten sie natürlich entsprechend umbenannt werden) - viel spaß beim gestalten Winken
(auch hier gilt: eigene farbwünsche bitte nennen)








dame.zip (alle spielsteine inkl. blank.gif)
var dameFieldColors = ["#CAAD6C","#7B5536"];




dame.zip (alle spielsteine inkl. blank.gif)
var dameFieldColors = ["#C4ECFF","#4D85A0"];




dame.zip (alle spielsteine inkl. blank.gif)
var dameFieldColors = ["#DFDFDF","#A3A3A3"];




dame.zip (alle spielsteine inkl. blank.gif)
var dameFieldColors = ["#C1C2E1","#8686C4"];




dame.zip (alle spielsteine inkl. blank.gif)
var dameFieldColors = ["#A3CAA3","#538A53"];




dame.zip (alle spielsteine inkl. blank.gif)
var dameFieldColors = ["#CAAD6C","#946641"];


Zuletzt bearbeitet von Zischdings am 21.01.2012, 14:51, insgesamt 6-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Latias13




Anmeldedatum: 05.08.2007
Beiträge: 263

BeitragVerfasst am: 24.12.2007, 11:54    Titel: Antworten mit Zitat

Cool Danke Smilie ich werds bei der nächsten Gelegenheit testen.

Edit: Habs eingebaut. Warte jetzt auf ein Feedback meiner User.
Edit2: Funktioniert nicht aus welchem Grund auch immer.
Wahrscheinlich ein Fehler meinerseits.
Ich werden es morgen Abend (wenn ich mal wieder aus dem Problemmodus rauskomme) selbst testen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Agent007




Anmeldedatum: 12.07.2007
Beiträge: 311

BeitragVerfasst am: 24.12.2007, 12:27    Titel: Antworten mit Zitat

respekt fc ! Überraschung gelungen ! werde ich gleich einbauen !

Zuletzt bearbeitet von Agent007 am 26.12.2007, 15:53, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
hamigra




Anmeldedatum: 31.08.2006
Beiträge: 1601
Wohnort: Werdau

BeitragVerfasst am: 24.12.2007, 12:50    Titel: Antworten mit Zitat

DANKEEEEEEEEEEEEEE
Klappt alles wunderbar.
Dank auch an Moni für die schönen Steine.
Jetzt ist die Dame auch gut zu erkennen Winken

edit:15:15 Uhr
da du es selbst erwähnst.....
Es war für mich eine Ehre, das Spiel im Vorfeld testen zu können und meine User haben ihr Versprechen gehalten, es niemanden weiter zu sagen. Jetzt habe ich es natürlich gleich ins Nickmenü eingetragen. Winken


Zuletzt bearbeitet von hamigra am 24.12.2007, 16:19, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
1. FC Keller
Moderator



Anmeldedatum: 04.07.2004
Beiträge: 4176
Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda

BeitragVerfasst am: 24.12.2007, 14:30    Titel: Antworten mit Zitat

Ach ja... an meine fleißigen Tester: Ich habe noch einiges angepasst... ihr solltet also die Version hier aus dem Forum verwenden Winken
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ChriZ




Anmeldedatum: 02.07.2006
Beiträge: 911
Wohnort: Schwedt/Oder

BeitragVerfasst am: 24.12.2007, 15:08    Titel: Antworten mit Zitat

Danke für die Info Keller. ^^ Funktioniert natürlich einwandfrei. Winken War für mich eine Ehre. Verlegen Lachen xD
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
toby01


Verwarnung

Anmeldedatum: 16.12.2007
Beiträge: 524

BeitragVerfasst am: 24.12.2007, 15:23    Titel: Antworten mit Zitat

das funzt iwie nicht
dast steht nur
ToBiAs:
mach ich was falsch?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Nikeair




Anmeldedatum: 11.01.2007
Beiträge: 1066
Wohnort: Koblenz

BeitragVerfasst am: 24.12.2007, 15:37    Titel: Antworten mit Zitat

Supi gemacht
fettes lob an Daniel und Moni Smilie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
1. FC Keller
Moderator



Anmeldedatum: 04.07.2004
Beiträge: 4176
Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda

BeitragVerfasst am: 24.12.2007, 15:49    Titel: Antworten mit Zitat

@toby: ich konnte bei dir keinen Fehler feststellen. Hattest du nach dem Einbau reconnected oder dich neu eingeloggt?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Latias13




Anmeldedatum: 05.08.2007
Beiträge: 263

BeitragVerfasst am: 24.12.2007, 15:51    Titel: Antworten mit Zitat

Das kann 2 Ursachen haben: 1. JavaScript deaktiviert oder 2. im Problemmodus unterwegs.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
schaggy07


Verwarnung

Anmeldedatum: 22.11.2007
Beiträge: 258
Wohnort: Eggebek

BeitragVerfasst am: 24.12.2007, 16:28    Titel: Antworten mit Zitat

Also ersma lob an Daniel und Moni (wie schon gesagt)
Ich seid echte JavaScript-Tallente!!

Edit:
Habe die 'Dame' Jetzt Eingebaut und habe das Selbe problem wie toby01.
Ich benutze FF Browser und habe gechekt ob JavaScript aktiviert ist.
->Ja es ist aktivivert
Dann habe ich nach dem Problemmodus geschaut.
->Nein ich halte mich nicht im Problemmodus auf. (auf jedenfall denk ich das Lachen )

Habe es auch im IE schon getestet, ebenfalls negativ ausgefallen.
Nochn Edit:
Habe versucht 4Gewinnt zu spielen, vergeblich.
Das geht auch nicht mehr (evtl. nicht kompatibel mit Dame?)


Zuletzt bearbeitet von schaggy07 am 24.12.2007, 17:13, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
toby01


Verwarnung

Anmeldedatum: 16.12.2007
Beiträge: 524

BeitragVerfasst am: 24.12.2007, 16:44    Titel: Antworten mit Zitat

@1.fc keller: hab ich
@latias13: java ist an und probmodus eig kaum (also nur wenn ein chat voll ist!)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MrHarryPotter




Anmeldedatum: 20.09.2007
Beiträge: 309

BeitragVerfasst am: 24.12.2007, 21:05    Titel: Antworten mit Zitat

Zitat:
Den folgenden Code müsst ihr als JS-Datei auf den Webspace hochladen:


mhh muss es auf den webspace gehostet werden oder kann ich auch woanders hosten? (was ich getan habe)

hab 4gewinnt und dame .js-datein woanders, aber nun kommen da keine "Annehmen" "Ablehnen" butons net mehr Verlegen was amche ich falsch? >.<
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ChriZ




Anmeldedatum: 02.07.2006
Beiträge: 911
Wohnort: Schwedt/Oder

BeitragVerfasst am: 24.12.2007, 21:19    Titel: Antworten mit Zitat

schaggy07 hat Folgendes geschrieben:
Habe versucht 4Gewinnt zu spielen, vergeblich.
Das geht auch nicht mehr (evtl. nicht kompatibel mit Dame?)
Daran liegt es eher nicht, da ich es sowohl mit 4 Gewinnt als auch mit einigen anderen Scripts getestet habe und es immer einwandfrei ging. Winken
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Forum zum WebKicks.De Chatsystem Foren-Übersicht -> Bots, Chat-Games Alle Zeiten sind GMT + 2 Stunden
Gehe zu Seite 1, 2, 3, 4, 5, 6  Weiter
Seite 1 von 6

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de