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: Alles auswählen
/dame USER
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 http://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: Alles auswählen
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ä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ädt "+eingeladener+" auf eine Runde Dame ein.");
}
else
document.write("lä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ä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;
}
Code: Alles auswählen
var dameBilderPfad = "http://www.beispiel.de/dame/";
Die folgenden 2 Einstellungen sind optional.
In der 2. Zeile steht folgendes:
Code: Alles auswählen
var dameFieldColors = ["#CAAD6C","#7B5536"];
In der 3. seht ihr:
Code: Alles auswählen
var dameAbsolutePosition = true;
im Raum" angezeigt werden soll. Standard (true) bedeutet unten. Wenn es oben sein soll ändert es in false:
Code: Alles auswählen
var dameAbsolutePosition = false;
Code: Alles auswählen
<script type="text/javascript" src="http://www.deineDomain.de/dame.js"></script>
eingehalten werden.
/dame
Code: Alles auswählen
<script type=text/javascript>if(parent.info){dameBefehlsAuswertung('%user%','%me%');}else{document.write('spielt mit einem anderen Chatter Dame')}</script>
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.