Thema: Projekt für ein Lösungsprogramm
Hallo, Ich glaube der Link sagt alles...
http://www.devshare.de/cgi-bin/ubb/ulti
5;t=003573
Habt ihr Lust?
denn nur so kannst du weiterhin träumen!
Sie sind nicht angemeldet. Bitte melden Sie sich an oder registrieren Sie sich.
Sie anmelden oder registrieren um eine Antwort zu verfassen
Hallo, Ich glaube der Link sagt alles...
http://www.devshare.de/cgi-bin/ubb/ulti
5;t=003573
Habt ihr Lust?
Der Link ja, aber der Titel... - aber lassen wir das.
Ich weiß dummerweise nich, wie so ein Würfel aufgebaut ist. Ich hab nur das ungefähre Bild im Kopf. Wäre nett, wenn das wer skizzieren könnte.
hast du schon ein bild gefunden, sonst zeichne ich eins...
Man merkt übrigens wie stark sie Leute hier Projekte mögen (das letzte hab ja auch ich sogesehen gelöst... *lol*
Is auch irgendwie das falsche Forum für Projekte, wa?!
btw: http://web.usna.navy.mil/~wdj/rubik_nts.htm
ich nahm an, dass das nicht nur ein spiel ist, swondern ein lösungprogramm.
Nur leider hab ich dort nicht verstanden, welche programme ich dazu brauche...
Kannst du sie mir hier auflisten?
Ehrlich gesagt, das in dem US-Navy-link wollt ich mir nich antun. Nur-Ascii-Text, ohne History oder grafische Darstellung der Formeln. Unübersichtlich.
@st2: ? Was zum Henker soll das heißen ?
na, wenn du erst mal ne halbe stunde dortbist, bermerkst du, dass es sich um eine gelungene verkaufsstrategie mit demoversion handelt.
Bei der Abteilung "Rubic" wirst du am schluss per link auf eine auswahlseite mit vielen zipdateien geleitet.
Da steht dann was über Mathematik, und da gibt es eine zip mit Dateien für den ihr proggi, was du auch iurgendwo downloaden kannst (aber auch kaufen...)
Und was du da auf den seiten siehst, ist den ihr netter sourcecode für die rubic erweitereung <img border="0" title="" alt="[Lächeln]" src="images/icons/smile.gif" />
ich hab das gefühl, du hälst den latex-code (.tex) für das proggie. es gibt kein progii.
@sometimes
"Ja, ich habe es mir so vorgestellt, dass dieses Würfelprogramm ein großes Eingabefeld hat, wo alle farben reinkommen, und nach einem knopfdruck so lange dreht, bis es den Würfel hat, und mir die 100 bis 100000 anweisungen per drucker zu gesicht gibt..."
Problem Nr1:
Wie willst Du entscheiden, ob Du unter den mannigfaltigen Möglichkeiten der Farbkombinationen eine
getroffen hast, die auf die Ausgangsstellung zurückgeführt werden kann?
Problem Nr2:
Welche Form der Darstellung wählst Du?
_____________________________________________________________________________________________________________________________________
Ad 2:
Weil Du es als js-script machen willst, bleibt sinnvollerweise nur eine zweidimensionale Darstellung.
Das ist aber gar nicht weiter tragisch, alldieweil sich zweidimensional das Problem sowieso am ehesten visualisieren lässt.
Allerdings muß dann eine function zum Drehen des gesamten Würfels um die eignen Achsen definiert werden (hier heisst die DR() -->ruft WD() und BX()),
die im recht eigentlichen Sinn mit den auszuführenden Operationen nicht allzuviel zu tun hat.
Genaugenommen gibt es davon nämlich bloß zwo (CXr und CXv), und wenn man's noch genauer nimmt, lassen die
sich auf eine einzige logische Operation reduzieren.
Die allerdings richtet bei aller Unscheinbarkeit ne ganze Menge an:
Jede Schicht des Würfels lässt sich begreifen als Array, das aus den aneinandergereihten Farbflächen der
jeweiligen Schicht zusammengesetzt ist.
Es gibt also bei einer Kantenlänge von zb. n=3 insgesamt 6 Arrays: 3 in 'waagrechter' und drei in 'senkrechter' Richtung.
Bei jeder Drehung einer Schicht verschiebt sich das betroffene Array in Drehrichtung um n Felder, in den betroffenen
Arrays senkrecht zur Drehrichtung werden die entsprechenden Felder ausgetauscht (function BX()).
Zu beachten ist hierbei, daß eine Drehung der aussenliegenden Schichten (also für alle n>2) auch immer eine Drehung der
zugehörigen 'Deckplatte' insgesamt bedeutet (-->WD()).
Ad1:
Um also allzugrosser Verwirrnis vorzubeugen, kannst Du auf das Gewitterwölkchen klicken.
Das erzeugt Dir eine zufällige gültige Mischung. Zugleich erscheint im Textfeld der Weg back home.
Wenn Du in eben jennes Textfeld klickst, kommst Du auch wieder brav zuhause an.
Du kannst aber auch eigene Creationen erzeugen, indem Du - wie im richtigen Leben auch - den
Würfel drehst und wendest.
Willst Du den Weg zurück lieber selbst finden, klickst Du mit der rechten Maustaste ins Textfeld,
und der Text verschwindet.
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"><html>
<head>
<style>
s{font-Family:webdings;font-Size:17px;text-decoration:none;text-align:center;cursor:default;}
button{font-Family:webdings;font-Size:40px;background-Color:#cacaca;}
input{border-Style:solid;border-Width:1px;background-Color:#cacaca;cursor:default;}
</style>
<script>
var q=30,t=60,l=350,a=2,aq=6,spT=5,Co=['red','green','blue','yellow','orange','white'];
var d=document,e,n=2,S=[],s='s',W=[],w='w',tuo,zuo,zc=0,zb5=1,u=null,tx=0,X=[];
with(d){onclick=CLICK;onmousedown=DOWN;onmouseover=OVER;onmouseup=UP;oncontextmenu=onselectstart=RF;};
function CLICK()
{e=event.srcElement;
e.blur();
for(i=0;i<n;i++)
{o0=i==0?2:1;o1=i==0##i==n-1;n0=n*3;n1=n*3-1; //// <----HIER 1
E(w+i+n0)?(ex=w+i,(BX(0,w,s),o1?WD(0,S,s,o0):u),TX(ex+n1)):
E(w+i+n1)?(ex=w+i,(BX(1,w,s),o1?WD(1,S,s,o0):u),TX(ex+n0)):
E(s+i+n0)?(ex=s+i,(BX(0,s,w),o1?WD(0,W,w,o0):u),TX(ex+n1)):
E(s+i+n1)?(ex=s+i,(BX(1,s,w),o1?WD(1,W,w,o0):u),TX(ex+n0)):u;
};
E('b0')?HM():
E('b1')?(DR(0),TX('b2')):E('b2')?(DR(2),TX('b1')):E('b4')?(DR(1),TX('b3')):E('b3')?(DR(3),TX('b4')):
E('b5')&&zb5==1?(zuo=0,TUO(),zb5=0):u;
ZC();
};
function DOWN()
{eb=event.button;
if(eb==2&&!E('tt0')){zc++;ZC();};
if(eb==1&&E('tt0')&&X.length>0)C(X[X.length-1],'purple');
if(eb==2&&E('tt0'))C('tt0',C()=='#000000'?B('tt0'):'#000000');
};
function OVER()
{e=event.srcElement;
D('in0').value=e.id.match(/[s,w,b]/)&&!e.id.match(/b[0,5]/)&&e.innerHTML!=''?e.id:'';
};
function UP()
{if(eb==1&&E('tt0')&&X.length>0)
{tx=1;
D(X[X.length-1]).click();
X.pop();
D('tt0').innerHTML=X.toString().replace(/,/g,'<br>');
tx=0;
};
ZC();
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function A(a,aa){return AR(A)==1?d.getElementsByTagName(a).length:d.getElementsByTagName(a)[aa];};
function AR(a,r){return AR.arguments.length==1?a.arguments.length:a.arguments[r];};
function B(b,bb){return AR(B)==0?e.style.backgroundColor:AR(B)==1?D(b).style.backgroundColor:D(b).style.backgroundColor=bb;};
function C(c,cc){return AR(C)==0?e.style.color:AR(C)==1?D(c).style.color:D(c).style.color=cc;};
function CR(cr1,cr2,cr3,cr4)
{var cro=A(cr1,cr2).appendChild(d.createElement(cr3));
with(cro){if(AR(CR)==4)id=cr4;style.position='absolute';};
};
function D(di){return d.getElementById(di);};
function IR(ia,ie){return Math.round(ia+Math.random()*ie);};
function POS(dpos,posl,post,posw,posh,posiH)
{with(D(dpos))
{if(AR(POS)==6)dpos.match(/input/)?value=posiH:innerHTML=posiH;
with(style){left=posl;top=post;width=posw;height=posh;};
};
};
function RF(){return false;};
function Z(z,zz){return AR(Z)==1?D(z).style.zIndex:D(z).style.zIndex=zz;};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function INIT()
{for(i=0;i<n;i++)
{W[i]=[];S[i]=[];
for(j=0;j<n;j++)for(k=0;k<4;k++)
{jk=j+n*k;
ijk=i+''+jk;
aqn=jk>=3*n?-aq:jk>=n&&jk<2*n?aq:jk>=2*n&&jk<3*n?2*aq:0;
W[i][j+n*k]=Co[k];
CR('body',0,s,w+ijk);
POS(w+ijk,l+(q+a)*(jk<3*n?jk:(j+n*(k-4)))+aqn,t+(q+a)*(i+n),q,q,i+jk==i+n*3?3:i+jk==i+n*3-1?4:'');
B(w+ijk,W[i][jk]);
Z(w+ijk,500);
S[i][j+n*k]=k==1?Co[4]:k==3?Co[5]:Co[k];
CR('body',0,s,s+ijk);
POS(s+ijk,l+(q+a)*i,t+(q+a)*(jk<3*n?j+n*(k+1):(j+n*(k-3)))+aqn,q,q,i+jk==i+n*3?5:i+jk==i+n*3-1?6:'');
B(s+ijk,S[i][jk]);
};
};
for(i=0;i<A(s);i++)A(s,i).style.paddingTop=spT;
for(i=0;i<6;i++)
{CR('body',0,'button','b'+i);
POS('b'+i,30+(i%2==0?60:0),20+(i==1##i==2?100:i==3##i==4?160:0),60,60,i==0?n:i==1?3:i==2?4:i==3?6:i==4?5:'Ü'); //// <----HIER 2
D('b0').style.fontFamily='impact';
};
CR('body',0,'tt','tt0');POS('tt0',30,300,120,17);B('tt0','#cacaca');C('tt0','#000000');
CR('body',0,'form','fo0');POS('fo0',30,270,0,0);
CR('form',0,'input','in0');POS('in0',0,0,120,0);
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function BX(x0,x1,x2)
{x3=eval(x1.toUpperCase());x4=eval(x2.toUpperCase());
x0==0?CXv(x3):CXr(x3);
for(j=0;j<n;j++)for(k=0;k<4;k++)
{B(x1+i+''+(j+n*k),x3[i][j+n*k]);
B(x2+j+i,x4[j][i]=x3[i][j]);
B(x2+j+''+(3*n-i-1),x4[j][3*n-i-1]=x3[i][3*n-j-1]);
};
};
function CXv(x1){x1[i]=x1[i].concat(x1[i].slice(0,n)).slice(n,5*n);};
function CXr(x1){x1[i]=x1[i].slice(-n,x1[i].length).concat(x1[i]).slice(0,-n);};
function DR(dr)
{for(i=0;i<n;i++)dr==0?BX(0,w,s):dr==1?BX(0,s,w):dr==2?BX(1,w,s):BX(1,s,w);
dr==0?WD(0,S,s):dr==1?WD(0,W,w):dr==2?WD(1,S,s):WD(1,W,w);
};
function WD(z,wd1,wd2,o)
{Wd=[];o1=o==u##o==1;o2=o==u##o==2; //// <----HIER 3
function WB(a,b,c,d){return B(wd2+a+''+b,wd1[a][b]=AR(WB)==4?wd1[c][d]:c);};
if(n==4)
{for(i=0;i<3;i++)
{wn=z*3;
if(o1){Wd[i]=wd1[x=i][y= 7];WB(x,y,x=wn,y= 4+wn+(z==1?-i:i));WB(x,y,x=3-i,y= 4);WB(x,y,x=3-wn,y= 7-wn+(z==1?i:-i));WB(x,y,Wd[i]);};
if(o2){Wd[i]=wd1[x=i][y=12];WB(x,y,x=wn,y=15-wn+(z==1?i:-i));WB(x,y,x=3-i,y=15);WB(x,y,x=3-wn,y=12+wn+(z==1?-i:i));WB(x,y,Wd[i]);};
};
if(o1){xn=wd1[x=1][y= 5];WB(x,y,x=2-z,y= 5+z);WB(x,y,x=2,y= 6);WB(x,y,x=1+z,y= 6-z);WB(x,y,xn);};
if(o2){xn=wd1[x=1][y=14];WB(x,y,x=2-z,y=14-z);WB(x,y,x=2,y=13);WB(x,y,x=1+z,y=13+z);WB(x,y,xn);};
};
if(n==3)
{for(i=0;i<2;i++)
{mi=z*i;ni=i-mi;w2=2*z;wm=w2-mi;wn=w2+ni;
if(o1){Wd[i]=wd1[x=ni][y=3+mi];WB(x,y,x=2-wm,y= 3+wn);WB(x,y,x=2-ni,y= 5-mi);WB(x,y,x= wm,y=5-wn);WB(x,y,Wd[i]);};
if(o2){Wd[i]=wd1[x=mi][y=9+ni];WB(x,y,x= wn,y=11-wm);WB(x,y,x=2-mi,y=11-ni);WB(x,y,x=2-wn,y=9+wm);WB(x,y,Wd[i]);};
};
};
if(n==2)
{if(o1){Wd=wd1[x=1][y=3];WB(x,y,x= z,y=3-z);WB(x,y,x=0,y=2);WB(x,y,x=1-z,y=2+z);WB(x,y,Wd);};
if(o2){Wd=wd1[x=1][y=7];WB(x,y,x=1-z,y=6+z);WB(x,y,x=0,y=6);WB(x,y,x= z,y=7-z);WB(x,y,Wd);};
};
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function E(e0){return e==D(e0);};
function HM()
{n++;
if(n==5)n=2;
if(AR(HM)==1)n=AR(HM,0);
d.body.innerHTML='';
INIT();
D('b0').innerHTML=n;
X=[];
};
function TX(xt){tx==0?X.push(xt):u,D('tt0').innerHTML=X.toString().replace(/,/g,'<br>');};
function TUO(){tuo=setInterval('UO()',1);};
function UO()
{zuo++;
zuo%IR(1,3)==0?D(w+IR(0,n-1)+(n*3-IR(0,1))).click():u;
zuo%IR(1,3)==0?D('b'+IR(1,3)).click():u;
zuo%IR(1,3)==0?D(s+IR(0,n-1)+(n*3-IR(0,1))).click():u;
if(zuo>17){clearInterval(tuo);zb5=1;tx=1;TX();tx=0;};
ZC();
};
function ZC()
{for(i=0;i<A(s);i++)A(s,i).style.color=zc%2==0?'black':A(s,i).style.backgroundColor;
for(i=0;i<4;i++)D('b'+(i+1)).style.color='#000000';
};
</script>
</head>
<body onload='INIT()' style='background-Color:#000000'>
</body>
</html>[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">Wegen eines Darstellungsfehlers an Bord müssen in allen mit <----HIER 1,2,3 gekennzeichneten Zeilen die
gatter # durch pipes | ersetzt werden.
Um nun den Algorithmus für ein selbstständiges Auflösen zu formulieren, wirst Du um ein
wenig Mathmatik nicht rumkommen.
Und dafür gibt es sicherlich geeignetere Sprachen als Javascript.
zB. python, oder - was wintel empfehlen würde - FORTRAN, oder auch schlicht C.
Und die zugehörige Mathematik wird im von awakening angegebenen link gezeigt.
gruß
matho
P.S. Der Einfachheit halber ist das Ding nur fürn IE
danke!
(hast du das alles selber hingekriegt?)
Naja...
erstmal
1)WOOOW!!! <img border="0" title="" alt="[Lächeln]" src="images/icons/smile.gif" />
2)ICh hab festgestellt, dass in einem W und einem S die farben des Würfels gespeichert werden...
Aber wie kann ich an die einzelnen werte kommen?
Ich kann weder mit split noch mit substring oder indexOf arbeiten....
ich will nämlich jetzt den Compi bilder machen lassen...
@sometimes
- (hast du das alles selber hingekriegt?) -
Wer sonst? Ein Programm, daß mir das Zeuchs schreibt, hab ich mir
noch nicht geschrieben, und unser Kater Fritz weigert sich strikt - der
ist nämlich schlauer als ich.
- ich will nämlich jetzt den Compi bilder machen lassen... -
Brauchst Du vielleicht gar nicht:
Ich habe das Ganze mal insofern vereinfacht, als daß jetzt
ein Gesamtarray aller Felder gebildet wird - Ca[] -, und nur
noch ein Operator existiert - Q() -, der sich, abhängig vom
Aufruf mittels Cu() das benötigte Teilarray (also die jeweilige
Schicht des Würfels) herauspickt.
Q() entscheidet auch darüber, ob eine Deckplatte mitgedreht werden
muß oder nicht, und auch, in welche Richtung - das wiederum geschieht
in function W().
Eine Drehung in eine Richtung ist das gleiche wie 3 Drehungen in die
entgegengesetzte, weswegen Q() als zweites Argument entweder eine 1
oder eine 3 übergeben wird.
Eine Drehung des gesamten Würfels um 90° ist nichts anderes als
die Drehung aller Schichten gleichzeitig - function QQ().
Dafür ist ein click mit der rechten Maustaste in eine der äusseren
Würfelflächen vorgesehn.
Das Gesamtarray erscheint als text, die Zahlen stehen für die Farben:
0 für gelb, 1 für rot, usw., dem Array Co[] entsprechend.
Die aktuellen Wertänderungen werden lila markiert.
Durch die Hin-und Herrechnerei wird das alles jetzt ein wenig schwerfällig
und langsam, wobei man generell unterscheiden muß zwischen der
bildlichen Darstellung in einem browser unter Zuhilfenahme von javascript
und der eigentlichen Rechenperation.
Deshalb und der Einfachheit zuliebe habe ich nur den 4schichtigen Würfel genommen.
Die jeweilig entgegengesetzten Operationen erscheinen unten in der div-Leiste, und
durch einen click darauf werden sie ausgeführt.
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"><html>
<head>
<style>
s{font-Family:webdings;font-Size:15px;text-decoration:none;text-align:center;cursor:default;}
button{font-Family:webdings;font-Size:40px;background-Color:#cacaca;}
tt{font-Size:20px;font-Weight:bold;cursor:default;}
div{font-Family:verdana;font-Size:17px;background-Color:white;cursor:default;}
</style>
<script>
var q=33,t=40,l=440,a=2,aq=16,Co=['yellow','red','green','blue','white','orange'];
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var d=document,n=4,Ca=[],Cu=[],Cih=[],s='s',tx=0,u=null,X=[];
with(d){onmouseup=UP;onselectstart=oncontextmenu=RF;};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function UP()
{e=event.srcElement;eb=event.button;
e.blur();
tx=0;
if(e.tagName=='S')
{if(eb==1)
E('00')?Q(0,1):E('04')?Q(1,1):E('08')?Q(2,1):E('012')?Q(3,1):
E('40')?Q(4,1):E('41')?Q(5,1):E('42')?Q(6,1):E('43')?Q(7,1):
E('33')?Q(0,3):E('37')?Q(1,3):E('311')?Q(2,3):E('315')?Q(3,3):
E('512')?Q(4,3):E('513')?Q(5,3):E('514')?Q(6,3):E('515')?Q(7,3):u;
if(eb==2)
EM(0)?QQ(0,1):EM(4)?QQ(4,1):EM(3)?QQ(0,3):EM(5)?QQ(4,3):u;
};
if(E('b0'))for(l=0;l<17;l++)Q(IR(0,n*2-1),l%IR(0,3)==0?1:3);
if(E('d0')&&X.length>0)
{tx=1;
xl=X[X.length-1].toString();
Q(xl.match(/^d/),xl.match(/d$/));
X.pop();
IX();
};
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function Q(q0,q1)
{for(j=0;j<q1;j++)
q0==0?(CU(0,0),W(4)):q0==1?CU(2,4):q0==2?CU(4,8):q0==3?(CU(6,12),W(5)):
q0==4?(CU(1,0,15),W(0)):q0==5?CU(3,1,14):q0==6?CU(5,2,13):(CU(4,3,12),W(2));
if(tx==0)X.push(q0+''+(q1==1?3:1));
IX();
TX();
};
function QQ(q,qq){for(l=0;l<n;l++)Q(l+q,qq)};
function W(w)
{Ww=[];ow=(w==2##w==4); <--HIER
function Wc(w0,w1){B(w+''+w0,COL(Ca[w][w0]=AR(Wc)==3?w1:Ca[w][w1]))};
for(i=0;i<n;i++)
{n1=n-1;ni=n*i;nn=n*n;nn1=n*n1;ni1=ni+n1;
Ww[i]=Ca[w][i<n1?nn-1-i:nn-2*i];
if(i<n1){Wc(nn-1-i,ow?ni1:nn1-ni);Wc(ow?ni1:(nn1-ni),i);Wc(i,ow?nn1-ni:ni1);Wc(ow?nn1-ni:ni1,Ww[i],'');};
};
Wc(10,ow?6:9);Wc(ow?6:9,5);Wc(5,ow?9:6);Wc(ow?9:6,Ww[3],'');
};
function CU(cu,cu1,cu2)
{o=Cu[cu];
function CI(){return k!=3?i*n+cu1:cu2-i*n};
function CK(){return k==0?4:k==1?1:k==2?5:3};
function CO(){return o[i+k*n]};
for(k=0;k<4;k++)for(i=0;i<n;i++)o.push(AR(CU)==2?Ca[k][i+cu1]:Ca[CK()][CI()]);
o=o.concat(o.slice(0,n)).slice(n,5*n);
for(k=0;k<4;k++)for(i=0;i<n;i++)B(AR(CU)==2?k+''+(i+cu1):CK()+''+CI(),COL(AR(CU)==2?Ca[k][i+cu1]=CO():Ca[CK()][CI()]=CO()));
for(i=0;i<2*n;i++)Cu[i]=[];
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function E(e0){return e==D(e0);};
function EM(e0){return e.id.match(eval('/^'+e0+'/'));};
function COL(col){return col==0?Co[0]:col==1?Co[1]:col==2?Co[2]:col==3?Co[3]:col==4?Co[4]:Co[5]};
function IX(){IH('d0',X.toString().replace(/,/g,' '));};
function TX()
{for(i=0;i<6;i++)for(j=0;j<n;j++)for(k=0;k<n;k++)
{jk=j+n*k;tc='tt'+i+''+jk;
Cih[i][jk]=IH(tc);
IH(tc,Ca[i][jk]);
C(tc,IH(tc)==Cih[i][jk]?'black':'purple');
};
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function A(a,aa){return AR(A)==1?d.getElementsByTagName(a).length:d.getElementsByTagName(a)[aa];};
function AR(a,r){return AR.arguments.length==1?a.arguments.length:a.arguments[r];};
function B(b,bb){return AR(B)==0?e.style.backgroundColor:AR(B)==1?D(b).style.backgroundColor:D(b).style.backgroundColor=bb;};
function C(c,cc){return AR(C)==0?e.style.color:AR(C)==1?D(c).style.color:D(c).style.color=cc;};
function CR(cr1,cr2,cr3,cr4)
{var cro=A(cr1,cr2).appendChild(d.createElement(cr3));
with(cro){if(AR(CR)==4)id=cr4;style.position='absolute';};
};
function D(di){return d.getElementById(di);};
function IH(i,h){return AR(IH)==0?e.innerHTML:AR(IH)==1?D(i).innerHTML:D(i).innerHTML=h;};
function IR(ia,ie){return Math.round(ia+Math.random()*ie);};
function POS(dpos,posl,post,posw,posh,posiH)
{with(D(dpos))
{if(AR(POS)==6)dpos.match(/input/)?value=posiH:innerHTML=posiH;
with(style){left=posl;top=post;width=posw;height=posh;};
};
};
function RF(){return false;};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function INIT()
{for(i=0;i<6;i++)
{Ca[i]=[];Cih[i]=[];
aqn=i<4?i*aq:aq;qa=q+a;nq=n*qa;
CR('body',0,'span','q'+i);
POS('q'+i,l+(i<4?nq*i:nq)+aqn,i<4?t+nq:i==4?t-aqn:t+2*nq+aqn,0,0);
for(j=0;j<n;j++)for(k=0;k<n;k++)
{jk=j+n*k;
Ca[i][jk]=i;
CR('span',i,s,i+''+jk);
POS(i+''+jk,j*qa,k*qa,q,q);
B(i+''+jk,COL(Ca[i][jk]));
CR('body',0,'tt','tt'+i+''+jk);POS('tt'+i+''+jk,30+jk*20+(jk>11?45:jk>7?30:jk>3?15:0),120+60*i,0,0,i);
};
};
CR('body',0,'div','d0');
POS('d0',30,500,1000,20);
CR('body',0,'button','b0');
POS('b0',30,20,60,60,'Ü');
for(i=0;i<2*n;i++)Cu[i]=[];
};
</script>
</head>
<body onload='INIT()' bgColor='gray'>
</body>
</html>[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">Und wieder die gatter an der markierten Stelle durch pipes ersetzen.
gruß
matho
@matho: ich würde gern mal mit deinem Kater Fritz reden *rotfl*
PS: ja, ich weiß, dass ich albern bin.
hi, um das hier mal wieder uptodate zu bringen.. <img src="/forum/images/graemlins/smile.gif" alt="" />
Mein alter rechner ist futsch.. und ich muss alles nochmal machen.. <img src="/forum/images/graemlins/frown.gif" alt="" />
Also.. Wie kann ich einen Würfel drehen? (1. Script)
Z.B. Hab ich den Würfel mit 3 Feldern gewählt..
Ich möchte nun S[0] um eins nach rechts schieben.. wie geht das?
Und dann, wie kann ich den würfel aktuallisieren??
need help!
Moin sometimes,
ich würd' Dir ja helfen, wenn ich Deine Fragen
verstehen könnte.
Den Würfel drehst Du, indem Du (1.script) auf
die grossen Buttons mit den Pfeilen drauf drückst.
Für's Aktualisieren ist die function HM() zuständig.
Wenn's darum geht, daß die Kantenlänge beim
Aktualisieren nicht geändert werden soll, bau
halt zB. noch 'nen button ein, der HM() aufruft und
n nicht hochzählt.
mit rätselndem gruß
matho
ich mein das nicht, dass ich auf nen button draufdrücken mag..
ich will eine funktiion schreiben, mit der ich drehe..
(und weiss net, welchen funktionsnamen du benutzt, wenn man auf den button draufgeht..)
(wie heißt die funktion, mit der gedreht wird, und welche übergabewerte hat die??)
meine dateien bisher:
script5.html:
<html>
<head>
<style>
s{
font-Family:webdings;
font-Size:17px;
text-decoration:none;
text-align:center;
cursor:default;
}
button{
font-Family:webdings;
font-Size:40px;
background-Color:#cacaca;
}
input{
border-Style:solid;
border-Width:1px;
background-Color:#cacaca;
cursor:default;
}
</style>
<script>
var q=30,t=60,l=350,a=2,aq=6,spT=5,Co=['red','green','blue','yellow','orange','white'];
var d=document,e,n=3,S=[],s='s',W=[],w='w',tuo,zuo,zc=0,zb5=1,u=null,tx=0,X=[];
with(d){
onclick=CLICK;
onmousedown=DOWN;
onmouseover=OVER;
onmouseup=UP;
oncontextmenu=onselectstart=RF;
};
function CLICK(){
e=event.srcElement;
//e.blur();
for(i=0;i<n;i++) {
o0=i==0?2:1;o1=i==0||i==n-1;n0=n*3;n1=n*3-1;
E(w+i+n0)?(ex=w+i,(BX(0,w,s),o1?WD(0,S,s,o0):u),TX(ex+n1)): E(w+i+n1)?(ex=w+i,(BX(1,w,s),o1?WD(1,S,s,o0):u),TX(ex+n0)): E(s+i+n0)?(ex=s+i,(BX(0,s,w),o1?WD(0,W,w,o0):u),TX(ex+n1)): E(s+i+n1)?(ex=s+i,(BX(1,s,w),o1?WD(1,W,w,o0):u),TX(ex+n0)):u;
};
E('b0')?HM(): E('b1')?(DR(0),TX('b2')):E('b2')?(DR(2),TX('b1')):E('b4')?(DR(1),TX('b3')):E('b3')?(DR(3),TX('b4')): E('b5')&&zb5==1?(zuo=0,TUO(),zb5=0):u; ZC();
};
function DOWN(){
eb=event.button;
if(eb==2&&!E('tt0')){zc++;ZC();
};
if(eb==1&&E('tt0')&&X.length>0)C(X[X.length-1],'purple');
if(eb==2&&E('tt0'))C('tt0',C()=='#000000'?B('tt0'):'#000000');
};
function OVER(){
e=event.srcElement;
D('in0').value=e.id.match(/[s,w,b]/)&&!e.id.match(/b[0,5]/)&&e.innerHTML!=''?e.id:'';
};
function UP(){
if(eb==1&&E('tt0')&&X.length>0) {tx=1;
D(X[X.length-1]).click();
X.pop();
D('tt0').innerHTML=X.toString().replace(/,/g,'<br>');
tx=0;
};
ZC();
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function A(a,aa){
return AR(A)==1?d.getElementsByTagName(a).length:d.getElementsByTagName(a)[aa];
};
function AR(a,r){
return AR.arguments.length==1?a.arguments.length:a.arguments[r];
};
function B(b,bb){
return AR(B)==0?e.style.backgroundColor:AR(B)==1?D(b).style.backgroundColor:D(b).style.backgroundColor=bb;
};
function C(c,cc){
return AR(C)==0?e.style.color:AR(C)==1?D(c).style.color:D(c).style.color=cc;
};
function CR(cr1,cr2,cr3,cr4){
var cro=A(cr1,cr2).appendChild(d.createElement(cr3));
with(cro){
if(AR(CR)==4)id=cr4;
style.position='absolute';
};
};
function D(di){
return d.getElementById(di);
};
function IR(ia,ie){
return Math.round(ia+Math.random()*ie);
};
function POS(dpos,posl,post,posw,posh,posiH){
with(D(dpos)) {
if(AR(POS)==6)dpos.match(/input/)?value=posiH:innerHTML=posiH;
with(style){
left=posl;
top=post;
width=posw;
height=posh;
};
};
};
function RF(){
return false;
};
function Z(z,zz){
return AR(Z)==1?D(z).style.zIndex:D(z).style.zIndex=zz;};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function INIT(){
for(i=0;i<n;i++) {
W[i]=[];S[i]=[];
for(j=0;j<n;j++)for(k=0;k<4;k++) {
jk=j+n*k;ijk=i+''+jk;aqn=jk>=3*n?-aq:jk>=n&&jk<2*n?aq:jk>=2*n&&jk<3*n?2*aq:0;
W[i][j+n*k]=Co[k];
CR('body',0,s,w+ijk);
POS(w+ijk,l+(q+a)*(jk<3*n?jk:(j+n*(k-4)))+aqn,t+(q+a)*(i+n),q,q,i+jk==i+n*3?3:i+jk==i+n*3-1?4:'');
B(w+ijk,W[i][jk]);
Z(w+ijk,500);
S[i][j+n*k]=k==1?Co[4]:k==3?Co[5]:Co[k];
CR('body',0,s,s+ijk);
POS(s+ijk,l+(q+a)*i,t+(q+a)*(jk<3*n?j+n*(k+1):(j+n*(k-3)))+aqn,q,q,i+jk==i+n*3?5:i+jk==i+n*3-1?6:'');
B(s+ijk,S[i][jk]);
};
};
for(i=0;i<A(s);i++)A(s,i).style.paddingTop=spT;
for(i=0;i<6;i++) {
CR('body',0,'button','b'+i);
POS('b'+i,30+(i%2==0?60:0),20+(i==1||i==2?100:i==3||i==4?160:0),60,60,i==0?n:i==1?3:i==2?4:i==3?6:i==4?5:'Ã?');
D('b0').style.fontFamily='impact';
};
CR('body',0,'tt','tt0');
POS('tt0',30,300,120,17);
B('tt0','#cacaca');
C('tt0','#000000');
CR('body',0,'form','fo0');
POS('fo0',30,270,0,0);
CR('form',0,'input','in0');
POS('in0',0,0,120,0);
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function BX(x0,x1,x2){
x3=eval(x1.toUpperCase());
x4=eval(x2.toUpperCase());
x0==0?CXv(x3):CXr(x3);
for(j=0;j<n;j++)for(k=0;k<4;k++) {
B(x1+i+''+(j+n*k),x3[i][j+n*k]);
B(x2+j+i,x4[j][i]=x3[i][j]);
B(x2+j+''+(3*n-i-1),x4[j][3*n-i-1]=x3[i][3*n-j-1]);
};
};
function CXv(x1){
x1[i]=x1[i].concat(x1[i].slice(0,n)).slice(n,5*n);
};
function CXr(x1){x1[i]=x1[i].slice(-n,x1[i].length).concat(x1[i]).slice(0,-n);
};
function DR(dr){
for(i=0;i<n;i++)dr==0?BX(0,w,s):dr==1?BX(0,s,w):dr==2?BX(1,w,s):BX(1,s,w);
dr==0?WD(0,S,s):dr==1?WD(0,W,w):dr==2?WD(1,S,s):WD(1,W,w);
};
function WD(z,wd1,wd2,o){Wd=[];o1=o==u||o==1;o2=o==u||o==2;
function WB(a,b,c,d){
return B(wd2+a+''+b,wd1[a][b]=AR(WB)==4?wd1[c][d]:c);
};
if(n==4) {
for(i=0;i<3;i++) {
wn=z*3;
if(o1){
Wd[i]=wd1[x=i][y= 7];
WB(x,y,x=wn,y= 4+wn+(z==1?-i:i));
WB(x,y,x=3-i,y= 4);
WB(x,y,x=3-wn,y= 7-wn+(z==1?i:-i));WB(x,y,Wd[i]);
};
if(o2){Wd[i]=wd1[x=i][y=12];
WB(x,y,x=wn,y=15-wn+(z==1?i:-i));
WB(x,y,x=3-i,y=15);
WB(x,y,x=3-wn,y=12+wn+(z==1?-i:i));
WB(x,y,Wd[i]);
};
};
if(o1){
xn=wd1[x=1][y= 5];
WB(x,y,x=2-z,y= 5+z);
WB(x,y,x=2,y= 6);
WB(x,y,x=1+z,y= 6-z);
WB(x,y,xn);
};
if(o2){
xn=wd1[x=1][y=14];
WB(x,y,x=2-z,y=14-z);
WB(x,y,x=2,y=13);
WB(x,y,x=1+z,y=13+z);
WB(x,y,xn);
};
};
if(n==3) {
for(i=0;i<2;i++) {
mi=z*i;ni=i-mi;w2=2*z;wm=w2-mi;wn=w2+ni;
if(o1){
Wd[i]=wd1[x=ni][y=3+mi];
WB(x,y,x=2-wm,y= 3+wn);
WB(x,y,x=2-ni,y= 5-mi);
WB(x,y,x= wm,y=5-wn);
WB(x,y,Wd[i]);
};
if(o2){
Wd[i]=wd1[x=mi][y=9+ni];
WB(x,y,x= wn,y=11-wm);
WB(x,y,x=2-mi,y=11-ni);
WB(x,y,x=2-wn,y=9+wm);
WB(x,y,Wd[i]);
};
};
};
if(n==2) {
if(o1){
Wd=wd1[x=1][y=3];
WB(x,y,x= z,y=3-z);
WB(x,y,x=0,y=2);
WB(x,y,x=1-z,y=2+z);
WB(x,y,Wd);
};
if(o2){
Wd=wd1[x=1][y=7];
WB(x,y,x=1-z,y=6+z);
WB(x,y,x=0,y=6);
WB(x,y,x= z,y=7-z);
WB(x,y,Wd);
};
};
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function E(e0){
return e==D(e0);
};
function HM(){
n++;
if(n==5)n=2;
if(AR(HM)==1)n=AR(HM,0);
d.body.innerHTML='';
INIT();
D('b0').innerHTML=n;
X=[];
};
function TX(xt){
tx==0?X.push(xt):u,D('tt0').innerHTML=X.toString().replace(/,/g,'<br>');
};
function TUO(){
tuo=setInterval('UO()',1);
};
function UO(){
zuo++;
zuo%IR(1,3)==0?D(w+IR(0,n-1)+(n*3-IR(0,1))).click():u; zuo%IR(1,3)==0?D('b'+IR(1,3)).click():u; zuo%IR(1,3)==0?D(s+IR(0,n-1)+(n*3-IR(0,1))).click():u;
if(zuo>17){
clearInterval(tuo);
zb5=1;
tx=1;
TX();
tx=0;
};
ZC();
};
function ZC(){
for(i=0;i<A(s);i++)A(s,i).style.color=zc%2==0?'black':A(s,i).style.backgroundColor;
for(i=0;i<4;i++)D('b'+(i+1)).style.color='#000000';
};
function getW () { return W; }
function getS () { return S; }
function info () {
var x=getW ();
var xx=x[0];
var xxx=x[1];
var xxxx=x[2];
var y=getS ();
var yy=y[0];
var yyy=y[1];
var yyyy=y[2];
var aus='W:n_______________nGanz:n'+x+'n___________________n0:n'+xx+'n1:n'+xxx+'n2:n'+xxxx+'n___________________________nnS:n_______________nGanz:n'+y+'n___________________n0:n'+yy+'n1:n'+yyy+'n2:n'+yyyy+'n___end';
//alert(getW ()+"n"+getS ());
alert(aus);
}
function setzte () {
var sp01=prompt("Bitte Feldreihe angeben.. (W|S)","");
var sp02=prompt("Bitte Koordinate der spalte / Zeile angeben.. (0|1|2)","");
var sp03=prompt("Bitte Zahlkoordinate angeben (0-11)","");
var sp04=prompt("Bitte farbe angeben.. (white|blue|yellow|green|orange)","");
eval(sp01+'['+Number(sp02)+']['+Number(sp03)+']="'+sp04+'";');
}
var win;
function fenster () {
//win=window.open("wincontroll.html","","height=600, width=600");
}
function farben () {
var fenster=window.open("colorpicker.html","farben","height=600, width=300");
self.resizeTo("700","800");
self.moveTo(0,0);
fenster.resizeTo("200","800");
fenster.moveTo(700,0);
}
farben ()
</script>
</head>
<body onload='INIT()' style='background-Color:#000000'>
</body>
</html>
colorpicker.html:
<html>
<head>
<title></title>
<meta name="author" content="Andreas B">
<meta name="generator" content="Ulli Meybohms HTML EDITOR">
<style>
#ausgabe {
position:absolute;
}
</style>
<script>
function info () {
window.opener.info ();
}
</script>
<script>
/*
W|S - nach rechts, oder nach unten?
0|1|2 - Spalte, oder Reihe
0-11 - Koordinate
"" - farbe
*/
var colo="gray";
function farbe (w) {
colo=w;
ausgabe.innerHTML=w;
}
function setzten (a,b,c) {
if (a!="B") {
eval('window.opener.'+a+'['+Number(b)+']['+Number(c)+']="'+colo+'";');
}
else {
eval('window.opener.S['+Number(b)+']['+Number(c)+']="'+colo+'";');
eval('window.opener.W['+Number(b)+']['+Number(c)+']="'+colo+'";');
}
}
function schliessen () {
window.close ();
}
</script>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<table height="120" width="120">
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzten("S","0","9")' bgcolor="gray"> </td>
<td width="10" onclick='setzten("S","1","9")' bgcolor="gray"> </td>
<td width="10" onclick='setzten("S","2","9")' bgcolor="gray"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzten("S","0","10")' bgcolor="gray"> </td>
<td width="10" onclick='setzten("S","1","10")' bgcolor="gray"> </td>
<td width="10" onclick='setzten("S","2","10")' bgcolor="gray"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzten("S","0","11")' bgcolor="gray"> </td>
<td width="10" onclick='setzten("S","1","11")' bgcolor="gray"> </td>
<td width="10" onclick='setzten("S","2","11")' bgcolor="gray"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick='setzten("W","0","9")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("W","0","10")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("W","0","11")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("B","0","0")' bgcolor="red"> </td>
<td width="10" onclick='setzten("B","0","1")' bgcolor="red"> </td>
<td width="10" onclick='setzten("B","0","2")' bgcolor="red"> </td>
<td width="10" onclick='setzten("W","0","3")' bgcolor="green"> </td>
<td width="10" onclick='setzten("W","0","4")' bgcolor="green"> </td>
<td width="10" onclick='setzten("W","0","5")' bgcolor="green"> </td>
<td width="10" onclick='setzten("B","0","6")' bgcolor="blue"> </td>
<td width="10" onclick='setzten("B","0","7")' bgcolor="blue"> </td>
<td width="10" onclick='setzten("B","0","8")' bgcolor="blue"> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick='setzten("W","1","9")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("W","1","10")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("W","1","11")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("B","1","0")' bgcolor="red"> </td>
<td width="10" onclick='setzten("B","1","1")' bgcolor="red"> </td>
<td width="10" onclick='setzten("B","1","2")' bgcolor="red"> </td>
<td width="10" onclick='setzten("W","1","3")' bgcolor="green"> </td>
<td width="10" onclick='setzten("W","1","4")' bgcolor="green"> </td>
<td width="10" onclick='setzten("W","1","5")' bgcolor="green"> </td>
<td width="10" onclick='setzten("B","1","6")' bgcolor="blue"> </td>
<td width="10" onclick='setzten("B","1","7")' bgcolor="blue"> </td>
<td width="10" onclick='setzten("B","1","8")' bgcolor="blue"> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick='setzten("W","2","9")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("W","2","10")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("W","2","11")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("B","2","0")' bgcolor="red"> </td>
<td width="10" onclick='setzten("B","2","1")' bgcolor="red"> </td>
<td width="10" onclick='setzten("B","2","2")' bgcolor="red"> </td>
<td width="10" onclick='setzten("W","2","3")' bgcolor="green"> </td>
<td width="10" onclick='setzten("W","2","4")' bgcolor="green"> </td>
<td width="10" onclick='setzten("W","2","5")' bgcolor="green"> </td>
<td width="10" onclick='setzten("B","2","6")' bgcolor="blue"> </td>
<td width="10" onclick='setzten("B","2","7")' bgcolor="blue"> </td>
<td width="10" onclick='setzten("B","2","8")' bgcolor="blue"> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzen("S","0","3")' bgcolor="orange"> </td>
<td width="10" onclick='setzen("S","1","3")' bgcolor="orange"> </td>
<td width="10" onclick='setzen("S","2","3")' bgcolor="orange"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzen("S","0","4")' bgcolor="orange"> </td>
<td width="10" onclick='setzen("S","1","4")' bgcolor="orange"> </td>
<td width="10" onclick='setzen("S","2","4")' bgcolor="orange"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzen("S","0","5")' bgcolor="orange"> </td>
<td width="10" onclick='setzen("S","1","5")' bgcolor="orange"> </td>
<td width="10" onclick='setzen("S","2","5")' bgcolor="orange"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzen("B","0","6")' bgcolor="blue"> </td>
<td width="10" onclick='setzen("B","1","6")' bgcolor="blue"> </td>
<td width="10" onclick='setzen("B","2","6")' bgcolor="blue"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzen("B","0","7")' bgcolor="blue"> </td>
<td width="10" onclick='setzen("B","1","7")' bgcolor="blue"> </td>
<td width="10" onclick='setzen("B","2","7")' bgcolor="blue"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzen("B","0","8")' bgcolor="blue"> </td>
<td width="10" onclick='setzen("B","1","8")' bgcolor="blue"> </td>
<td width="10" onclick='setzen("B","2","8")' bgcolor="blue"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
</table> <br>
<table height="10"><tr><td colspan="7"><b>Farben:</b></td></tr>
<tr><td width="10" bgcolor="yellow" onclick="farbe('yellow')"> </td>
<td width="10" bgcolor="gray" onclick="farbe('gray')"> </td>
<td width="10" bgcolor="green" onclick="farbe('green')"> </td>
<td width="10" bgcolor="red" onclick="farbe('red')"> </td>
<td width="10" bgcolor="blue" onclick="farbe('blue')"> </td>
<td width="10" bgcolor="orange" onclick="farbe('orange')"> </td>
<td></td>
</tr>
<tr><td colspan="7"><b>Aktuelle Farbe</b></td></tr>
<tr><td colspan="7"><p id="ausgabe">gray</p></td></tr>
</table>
<br>
<a href="javascript:info ()">INFO</a>
</body>
</html>
Tjanun,
wenn ich mir die Arbeitsweise Deines Codes anschauen möchte,
bekomme ich neben dem pop-up-window allerlei Fehlermeldungen,
so ala 'undefined ist kein objekt', oder 'Objekt erwartet', usw.
Weil ja nun das Zeugs schon ein halbes Jahr alt ist, kann ich
auch nichts anderes machen als Du, nämlich mir das alles noch mal
durchguggen, schaun, wie was mit was zusammenhängt - was man halt
so macht, wenn man nichts bessres zu tun hat.
Was mir bei oberflächlicher Betrachtung recht schnell auffällt,
ist zB:
Aus ehemals (mein erstes script):
if(n==3)
{for(i=0;i<2;i++)
{mi=z*i;ni=i-mi;w2=2*z;wm=w2-mi;wn=w2+ni;
if(o1){Wd[i]=wd1[x=ni][y=3+mi];WB(x,y,x=2-wm,y= 3+wn);WB(x,y,x=2-ni,y= 5-mi);WB(x,y,x= wm,y=5-wn);WB(x,y,Wd[i]);};
if(o2){Wd[i]=wd1[x=mi][y=9+ni];WB(x,y,x= wn,y=11-wm);WB(x,y,x=2-mi,y=11-ni);WB(x,y,x=2-wn,y=9+wm);WB(x,y,Wd[i]);};
};
};
wird bei Dir:
if(n==3) {
for(i=0;i<2;i++) {
mi=z*i;ni=i-mi;w2=2*z;wm=w2-mi;wn=w2+ni;
if(o1){
Wd=wd1[x=ni][y=3+mi];
WB(x,y,x=2-wm,y= 3+wn);
WB(x,y,x=2-ni,y= 5-mi);
WB(x,y,x= wm,y=5-wn);
WB(x,y,Wd);
};
Das sind relativ gravierende Änderungen, deren Sinn und Zweck ich nicht auf Anhieb nachvollziehen kann.
Ich denke, Du solltest, bevor Du scripts postest, erst einmal die Fehler entfernen, oder aber,
wenn Fehler drin sind, die Quelle dieser zumindest soweit eingrenzen, daß der Antwortende sich
nicht die Mühe machen muß, das Zeuch zu entlausen, und sich dann auf die Suche begeben darf.
Und wenn Du Änderungen in irgeneinem script vornimmst, könntest Du auch angeben, wo die sich befinden,
und vor allem, warum sie gemacht wurden.
gruß
matho
hm..
diese umformatierung habe ich gemacht, weil wenn ich den text (und code) hier im forum kopiere, ihn in meinem editor (phase5) in einer einzigen Zeile angezeigt bekomme..
Deshlab hab ich auch die zeilen ein wenig anders zurechtgerückt..
Das mit den Fehlern liegt an dem tollen #-| fehler.
(Du weiÃ?t doch, dass man # zu | umwandeln muss (in deinen scripten)) ich hatte vergessen, meine jetzt so anzupassen, weshalb auch der text fett angezeigt wird.. hier ist nochmal der code, diesmal mit den gattern, statt mit den pipes:
script5.html:
<html>
<head>
<style>
s{
font-Family:webdings;
font-Size:17px;
text-decoration:none;
text-align:center;
cursor:default;
}
button{
font-Family:webdings;
font-Size:40px;
background-Color:#cacaca;
}
input{
border-Style:solid;
border-Width:1px;
background-Color:#cacaca;
cursor:default;
}
</style>
<script>
var q=30,t=60,l=350,a=2,aq=6,spT=5,Co=['red','green','blue','yellow','orange','white'];
var d=document,e,n=3,S=[],s='s',W=[],w='w',tuo,zuo,zc=0,zb5=1,u=null,tx=0,X=[];
with(d){
onclick=CLICK;
onmousedown=DOWN;
onmouseover=OVER;
onmouseup=UP;
oncontextmenu=onselectstart=RF;
};
function CLICK(){
e=event.srcElement;
//e.blur();
for(i=0;i<n;i++) {
o0=i==0?2:1;o1=i==0##i==n-1;n0=n*3;n1=n*3-1; //hier
E(w+i+n0)?(ex=w+i,(BX(0,w,s),o1?WD(0,S,s,o0):u),TX(ex+n1)): E(w+i+n1)?(ex=w+i,(BX(1,w,s),o1?WD(1,S,s,o0):u),TX(ex+n0)): E(s+i+n0)?(ex=s+i,(BX(0,s,w),o1?WD(0,W,w,o0):u),TX(ex+n1)): E(s+i+n1)?(ex=s+i,(BX(1,s,w),o1?WD(1,W,w,o0):u),TX(ex+n0)):u;
};
E('b0')?HM(): E('b1')?(DR(0),TX('b2')):E('b2')?(DR(2),TX('b1')):E('b4')?(DR(1),TX('b3')):E('b3')?(DR(3),TX('b4')): E('b5')&&zb5==1?(zuo=0,TUO(),zb5=0):u; ZC();
};
function DOWN(){
eb=event.button;
if(eb==2&&!E('tt0')){zc++;ZC();
};
if(eb==1&&E('tt0')&&X.length>0)C(X[X.length-1],'purple');
if(eb==2&&E('tt0'))C('tt0',C()=='#000000'?B('tt0'):'#000000');
};
function OVER(){
e=event.srcElement;
D('in0').value=e.id.match(/[s,w,b]/)&&!e.id.match(/b[0,5]/)&&e.innerHTML!=''?e.id:'';
};
function UP(){
if(eb==1&&E('tt0')&&X.length>0) {tx=1;
D(X[X.length-1]).click();
X.pop();
D('tt0').innerHTML=X.toString().replace(/,/g,'<br>');
tx=0;
};
ZC();
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function A(a,aa){
return AR(A)==1?d.getElementsByTagName(a).length:d.getElementsByTagName(a)[aa];
};
function AR(a,r){
return AR.arguments.length==1?a.arguments.length:a.arguments[r];
};
function B(b,bb){
return AR(B)==0?e.style.backgroundColor:AR(B)==1?D(b).style.backgroundColor:D(b).style.backgroundColor=bb;
};
function C(c,cc){
return AR(C)==0?e.style.color:AR(C)==1?D(c).style.color:D(c).style.color=cc;
};
function CR(cr1,cr2,cr3,cr4){
var cro=A(cr1,cr2).appendChild(d.createElement(cr3));
with(cro){
if(AR(CR)==4)id=cr4;
style.position='absolute';
};
};
function D(di){
return d.getElementById(di);
};
function IR(ia,ie){
return Math.round(ia+Math.random()*ie);
};
function POS(dpos,posl,post,posw,posh,posiH){
with(D(dpos)) {
if(AR(POS)==6)dpos.match(/input/)?value=posiH:innerHTML=posiH;
with(style){
left=posl;
top=post;
width=posw;
height=posh;
};
};
};
function RF(){
return false;
};
function Z(z,zz){
return AR(Z)==1?D(z).style.zIndex:D(z).style.zIndex=zz;};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function INIT(){
for(i=0;i<n;i++) {
W[i]=[];S[i]=[];
for(j=0;j<n;j++)for(k=0;k<4;k++) {
jk=j+n*k;ijk=i+''+jk;aqn=jk>=3*n?-aq:jk>=n&&jk<2*n?aq:jk>=2*n&&jk<3*n?2*aq:0;
W[i][j+n*k]=Co[k];
CR('body',0,s,w+ijk);
POS(w+ijk,l+(q+a)*(jk<3*n?jk:(j+n*(k-4)))+aqn,t+(q+a)*(i+n),q,q,i+jk==i+n*3?3:i+jk==i+n*3-1?4:'');
B(w+ijk,W[i][jk]);
Z(w+ijk,500);
S[i][j+n*k]=k==1?Co[4]:k==3?Co[5]:Co[k];
CR('body',0,s,s+ijk);
POS(s+ijk,l+(q+a)*i,t+(q+a)*(jk<3*n?j+n*(k+1):(j+n*(k-3)))+aqn,q,q,i+jk==i+n*3?5:i+jk==i+n*3-1?6:'');
B(s+ijk,S[i][jk]);
};
};
for(i=0;i<A(s);i++)A(s,i).style.paddingTop=spT;
for(i=0;i<6;i++) {
CR('body',0,'button','b'+i);
POS('b'+i,30+(i%2==0?60:0),20+(i==1##i==2?100:i==3##i==4?160:0),60,60,i==0?n:i==1?3:i==2?4:i==3?6:i==4?5:'Ã?'); //hier
D('b0').style.fontFamily='impact';
};
CR('body',0,'tt','tt0');
POS('tt0',30,300,120,17);
B('tt0','#cacaca');
C('tt0','#000000');
CR('body',0,'form','fo0');
POS('fo0',30,270,0,0);
CR('form',0,'input','in0');
POS('in0',0,0,120,0);
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function BX(x0,x1,x2){
x3=eval(x1.toUpperCase());
x4=eval(x2.toUpperCase());
x0==0?CXv(x3):CXr(x3);
for(j=0;j<n;j++)for(k=0;k<4;k++) {
B(x1+i+''+(j+n*k),x3[i][j+n*k]);
B(x2+j+i,x4[j][i]=x3[i][j]);
B(x2+j+''+(3*n-i-1),x4[j][3*n-i-1]=x3[i][3*n-j-1]);
};
};
function CXv(x1){
x1[i]=x1[i].concat(x1[i].slice(0,n)).slice(n,5*n);
};
function CXr(x1){x1[i]=x1[i].slice(-n,x1[i].length).concat(x1[i]).slice(0,-n);
};
function DR(dr){
for(i=0;i<n;i++)dr==0?BX(0,w,s):dr==1?BX(0,s,w):dr==2?BX(1,w,s):BX(1,s,w);
dr==0?WD(0,S,s):dr==1?WD(0,W,w):dr==2?WD(1,S,s):WD(1,W,w);
};
function WD(z,wd1,wd2,o){Wd=[];o1=o==u##o==1;o2=o==u##o==2; //hier
function WB(a,b,c,d){
return B(wd2+a+''+b,wd1[a][b]=AR(WB)==4?wd1[c][d]:c);
};
if(n==4) {
for(i=0;i<3;i++) {
wn=z*3;
if(o1){
Wd[i]=wd1[x=i][y= 7];
WB(x,y,x=wn,y= 4+wn+(z==1?-i:i));
WB(x,y,x=3-i,y= 4);
WB(x,y,x=3-wn,y= 7-wn+(z==1?i:-i));WB(x,y,Wd[i]);
};
if(o2){Wd[i]=wd1[x=i][y=12];
WB(x,y,x=wn,y=15-wn+(z==1?i:-i));
WB(x,y,x=3-i,y=15);
WB(x,y,x=3-wn,y=12+wn+(z==1?-i:i));
WB(x,y,Wd[i]);
};
};
if(o1){
xn=wd1[x=1][y= 5];
WB(x,y,x=2-z,y= 5+z);
WB(x,y,x=2,y= 6);
WB(x,y,x=1+z,y= 6-z);
WB(x,y,xn);
};
if(o2){
xn=wd1[x=1][y=14];
WB(x,y,x=2-z,y=14-z);
WB(x,y,x=2,y=13);
WB(x,y,x=1+z,y=13+z);
WB(x,y,xn);
};
};
if(n==3) {
for(i=0;i<2;i++) {
mi=z*i;ni=i-mi;w2=2*z;wm=w2-mi;wn=w2+ni;
if(o1){
Wd[i]=wd1[x=ni][y=3+mi];
WB(x,y,x=2-wm,y= 3+wn);
WB(x,y,x=2-ni,y= 5-mi);
WB(x,y,x= wm,y=5-wn);
WB(x,y,Wd[i]);
};
if(o2){
Wd[i]=wd1[x=mi][y=9+ni];
WB(x,y,x= wn,y=11-wm);
WB(x,y,x=2-mi,y=11-ni);
WB(x,y,x=2-wn,y=9+wm);
WB(x,y,Wd[i]);
};
};
};
if(n==2) {
if(o1){
Wd=wd1[x=1][y=3];
WB(x,y,x= z,y=3-z);
WB(x,y,x=0,y=2);
WB(x,y,x=1-z,y=2+z);
WB(x,y,Wd);
};
if(o2){
Wd=wd1[x=1][y=7];
WB(x,y,x=1-z,y=6+z);
WB(x,y,x=0,y=6);
WB(x,y,x= z,y=7-z);
WB(x,y,Wd);
};
};
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function E(e0){
return e==D(e0);
};
function HM(){
n++;
if(n==5)n=2;
if(AR(HM)==1)n=AR(HM,0);
d.body.innerHTML='';
INIT();
D('b0').innerHTML=n;
X=[];
};
function TX(xt){
tx==0?X.push(xt):u,D('tt0').innerHTML=X.toString().replace(/,/g,'<br>');
};
function TUO(){
tuo=setInterval('UO()',1);
};
function UO(){
zuo++;
zuo%IR(1,3)==0?D(w+IR(0,n-1)+(n*3-IR(0,1))).click():u; zuo%IR(1,3)==0?D('b'+IR(1,3)).click():u; zuo%IR(1,3)==0?D(s+IR(0,n-1)+(n*3-IR(0,1))).click():u;
if(zuo>17){
clearInterval(tuo);
zb5=1;
tx=1;
TX();
tx=0;
};
ZC();
};
function ZC(){
for(i=0;i<A(s);i++)A(s,i).style.color=zc%2==0?'black':A(s,i).style.backgroundColor;
for(i=0;i<4;i++)D('b'+(i+1)).style.color='#000000';
};
function getW () { return W; }
function getS () { return S; }
function info () {
var x=getW ();
var xx=x[0];
var xxx=x[1];
var xxxx=x[2];
var y=getS ();
var yy=y[0];
var yyy=y[1];
var yyyy=y[2];
var aus='W:n_______________nGanz:n'+x+'n___________________n0:n'+xx+'n1:n'+xxx+'n2:n'+xxxx+'n___________________________nnS:n_______________nGanz:n'+y+'n___________________n0:n'+yy+'n1:n'+yyy+'n2:n'+yyyy+'n___end';
//alert(getW ()+"n"+getS ());
alert(aus);
}
function setzte () {
var sp01=prompt("Bitte Feldreihe angeben.. (W#S)",""); //hier
var sp02=prompt("Bitte Koordinate der spalte / Zeile angeben.. (0#1#2)",""); //hier
var sp03=prompt("Bitte Zahlkoordinate angeben (0-11)","");
var sp04=prompt("Bitte farbe angeben.. (white#blue#yellow#green#orange)",""); //hier
eval(sp01+'['+Number(sp02)+']['+Number(sp03)+']="'+sp04+'";');
}
var win;
function fenster () {
//win=window.open("wincontroll.html","","height=600, width=600");
}
function farben () {
var fenster=window.open("colorpicker.html","farben","height=600, width=300");
self.resizeTo("700","800");
self.moveTo(0,0);
fenster.resizeTo("200","800");
fenster.moveTo(700,0);
}
farben ()
</script>
</head>
<body onload='INIT()' style='background-Color:#000000'>
</body>
</html>
colorpicker.html:
<html>
<head>
<title></title>
<meta name="author" content="Andreas B">
<meta name="generator" content="Ulli Meybohms HTML EDITOR">
<style>
#ausgabe {
position:absolute;
}
</style>
<script>
function info () {
window.opener.info ();
}
</script>
<script>
/*
W#S - nach rechts, oder nach unten? //hier
0#1#2 - Spalte, oder Reihe //hier
0-11 - Koordinate
"" - farbe
*/
var colo="gray";
function farbe (w) {
colo=w;
ausgabe.innerHTML=w;
}
function setzten (a,b,c) {
if (a!="B") {
eval('window.opener.'+a+'['+Number(b)+']['+Number(c)+']="'+colo+'";');
}
else {
eval('window.opener.S['+Number(b)+']['+Number(c)+']="'+colo+'";');
eval('window.opener.W['+Number(b)+']['+Number(c)+']="'+colo+'";');
}
}
function schliessen () {
window.close ();
}
</script>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<table height="120" width="120">
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzten("S","0","9")' bgcolor="gray"> </td>
<td width="10" onclick='setzten("S","1","9")' bgcolor="gray"> </td>
<td width="10" onclick='setzten("S","2","9")' bgcolor="gray"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzten("S","0","10")' bgcolor="gray"> </td>
<td width="10" onclick='setzten("S","1","10")' bgcolor="gray"> </td>
<td width="10" onclick='setzten("S","2","10")' bgcolor="gray"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzten("S","0","11")' bgcolor="gray"> </td>
<td width="10" onclick='setzten("S","1","11")' bgcolor="gray"> </td>
<td width="10" onclick='setzten("S","2","11")' bgcolor="gray"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick='setzten("W","0","9")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("W","0","10")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("W","0","11")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("B","0","0")' bgcolor="red"> </td>
<td width="10" onclick='setzten("B","0","1")' bgcolor="red"> </td>
<td width="10" onclick='setzten("B","0","2")' bgcolor="red"> </td>
<td width="10" onclick='setzten("W","0","3")' bgcolor="green"> </td>
<td width="10" onclick='setzten("W","0","4")' bgcolor="green"> </td>
<td width="10" onclick='setzten("W","0","5")' bgcolor="green"> </td>
<td width="10" onclick='setzten("B","0","6")' bgcolor="blue"> </td>
<td width="10" onclick='setzten("B","0","7")' bgcolor="blue"> </td>
<td width="10" onclick='setzten("B","0","8")' bgcolor="blue"> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick='setzten("W","1","9")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("W","1","10")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("W","1","11")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("B","1","0")' bgcolor="red"> </td>
<td width="10" onclick='setzten("B","1","1")' bgcolor="red"> </td>
<td width="10" onclick='setzten("B","1","2")' bgcolor="red"> </td>
<td width="10" onclick='setzten("W","1","3")' bgcolor="green"> </td>
<td width="10" onclick='setzten("W","1","4")' bgcolor="green"> </td>
<td width="10" onclick='setzten("W","1","5")' bgcolor="green"> </td>
<td width="10" onclick='setzten("B","1","6")' bgcolor="blue"> </td>
<td width="10" onclick='setzten("B","1","7")' bgcolor="blue"> </td>
<td width="10" onclick='setzten("B","1","8")' bgcolor="blue"> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick='setzten("W","2","9")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("W","2","10")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("W","2","11")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("B","2","0")' bgcolor="red"> </td>
<td width="10" onclick='setzten("B","2","1")' bgcolor="red"> </td>
<td width="10" onclick='setzten("B","2","2")' bgcolor="red"> </td>
<td width="10" onclick='setzten("W","2","3")' bgcolor="green"> </td>
<td width="10" onclick='setzten("W","2","4")' bgcolor="green"> </td>
<td width="10" onclick='setzten("W","2","5")' bgcolor="green"> </td>
<td width="10" onclick='setzten("B","2","6")' bgcolor="blue"> </td>
<td width="10" onclick='setzten("B","2","7")' bgcolor="blue"> </td>
<td width="10" onclick='setzten("B","2","8")' bgcolor="blue"> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzen("S","0","3")' bgcolor="orange"> </td>
<td width="10" onclick='setzen("S","1","3")' bgcolor="orange"> </td>
<td width="10" onclick='setzen("S","2","3")' bgcolor="orange"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzen("S","0","4")' bgcolor="orange"> </td>
<td width="10" onclick='setzen("S","1","4")' bgcolor="orange"> </td>
<td width="10" onclick='setzen("S","2","4")' bgcolor="orange"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzen("S","0","5")' bgcolor="orange"> </td>
<td width="10" onclick='setzen("S","1","5")' bgcolor="orange"> </td>
<td width="10" onclick='setzen("S","2","5")' bgcolor="orange"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzen("B","0","6")' bgcolor="blue"> </td>
<td width="10" onclick='setzen("B","1","6")' bgcolor="blue"> </td>
<td width="10" onclick='setzen("B","2","6")' bgcolor="blue"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzen("B","0","7")' bgcolor="blue"> </td>
<td width="10" onclick='setzen("B","1","7")' bgcolor="blue"> </td>
<td width="10" onclick='setzen("B","2","7")' bgcolor="blue"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzen("B","0","8")' bgcolor="blue"> </td>
<td width="10" onclick='setzen("B","1","8")' bgcolor="blue"> </td>
<td width="10" onclick='setzen("B","2","8")' bgcolor="blue"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
</table> <br>
<table height="10"><tr><td colspan="7"><b>Farben:</b></td></tr>
<tr><td width="10" bgcolor="yellow" onclick="farbe('yellow')"> </td>
<td width="10" bgcolor="gray" onclick="farbe('gray')"> </td>
<td width="10" bgcolor="green" onclick="farbe('green')"> </td>
<td width="10" bgcolor="red" onclick="farbe('red')"> </td>
<td width="10" bgcolor="blue" onclick="farbe('blue')"> </td>
<td width="10" bgcolor="orange" onclick="farbe('orange')"> </td>
<td></td>
</tr>
<tr><td colspan="7"><b>Aktuelle Farbe</b></td></tr>
<tr><td colspan="7"><p id="ausgabe">gray</p></td></tr>
</table>
<br>
<a href="javascript:info ()">INFO</a>
</body>
</html>
scheiß forum <img src="/forum/images/graemlins/wink.gif" alt="" />
Ok.. Häng dashier an die script datei mit dem würfel:
function getW () { return W; }
function getS () { return S; }
function info () {
var x=getW ();
var xx=x[0];
var xxx=x[1];
var xxxx=x[2];
var y=getS ();
var yy=y[0];
var yyy=y[1];
var yyyy=y[2];
var aus='W:n_______________nGanz:n'+x+'n___________________n0:n'+xx+'n1:n'+xxx+'n2:n'+xxxx+'n___________________________nnS:n_______________nGanz:n'+y+'n___________________n0:n'+yy+'n1:n'+yyy+'n2:n'+yyyy+'n___end';
//alert(getW ()+"n"+getS ());
alert(aus);
}
function setzte () {
var sp01=prompt("Bitte Feldreihe angeben.. (W#S)",""); //hier
var sp02=prompt("Bitte Koordinate der spalte / Zeile angeben.. (0#1#2)",""); //hier
var sp03=prompt("Bitte Zahlkoordinate angeben (0-11)","");
var sp04=prompt("Bitte farbe angeben.. (white#blue#yellow#green#orange)",""); //hier
eval(sp01+'['+Number(sp02)+']['+Number(sp03)+']="'+sp04+'";');
}
var win;
function fenster () {
//win=window.open("wincontroll.html","","height=600, width=600");
}
function farben () {
var fenster=window.open("colorpicker.html","farben","height=600, width=300");
self.resizeTo("700","800");
self.moveTo(0,0);
fenster.resizeTo("200","800");
fenster.moveTo(700,0);
}
farben ()
</script>
</head>
<body onload='INIT()' style='background-Color:#000000'>
</body>
</html>
und mache das in die datei colorpicker.html:
<html>
<head>
<title></title>
<meta name="author" content="Andreas B">
<meta name="generator" content="Ulli Meybohms HTML EDITOR">
<style>
#ausgabe {
position:absolute;
}
</style>
<script>
function info () {
window.opener.info ();
}
</script>
<script>
/*
W#S - nach rechts, oder nach unten? //hier
0#1#2 - Spalte, oder Reihe //hier
0-11 - Koordinate
"" - farbe
*/
var colo="gray";
function farbe (w) {
colo=w;
ausgabe.innerHTML=w;
}
function setzten (a,b,c) {
if (a!="B") {
eval('window.opener.'+a+'['+Number(b)+']['+Number(c)+']="'+colo+'";');
}
else {
eval('window.opener.S['+Number(b)+']['+Number(c)+']="'+colo+'";');
eval('window.opener.W['+Number(b)+']['+Number(c)+']="'+colo+'";');
}
}
function schliessen () {
window.close ();
}
</script>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<table height="120" width="120">
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzten("S","0","9")' bgcolor="gray"> </td>
<td width="10" onclick='setzten("S","1","9")' bgcolor="gray"> </td>
<td width="10" onclick='setzten("S","2","9")' bgcolor="gray"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzten("S","0","10")' bgcolor="gray"> </td>
<td width="10" onclick='setzten("S","1","10")' bgcolor="gray"> </td>
<td width="10" onclick='setzten("S","2","10")' bgcolor="gray"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzten("S","0","11")' bgcolor="gray"> </td>
<td width="10" onclick='setzten("S","1","11")' bgcolor="gray"> </td>
<td width="10" onclick='setzten("S","2","11")' bgcolor="gray"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick='setzten("W","0","9")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("W","0","10")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("W","0","11")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("B","0","0")' bgcolor="red"> </td>
<td width="10" onclick='setzten("B","0","1")' bgcolor="red"> </td>
<td width="10" onclick='setzten("B","0","2")' bgcolor="red"> </td>
<td width="10" onclick='setzten("W","0","3")' bgcolor="green"> </td>
<td width="10" onclick='setzten("W","0","4")' bgcolor="green"> </td>
<td width="10" onclick='setzten("W","0","5")' bgcolor="green"> </td>
<td width="10" onclick='setzten("B","0","6")' bgcolor="blue"> </td>
<td width="10" onclick='setzten("B","0","7")' bgcolor="blue"> </td>
<td width="10" onclick='setzten("B","0","8")' bgcolor="blue"> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick='setzten("W","1","9")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("W","1","10")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("W","1","11")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("B","1","0")' bgcolor="red"> </td>
<td width="10" onclick='setzten("B","1","1")' bgcolor="red"> </td>
<td width="10" onclick='setzten("B","1","2")' bgcolor="red"> </td>
<td width="10" onclick='setzten("W","1","3")' bgcolor="green"> </td>
<td width="10" onclick='setzten("W","1","4")' bgcolor="green"> </td>
<td width="10" onclick='setzten("W","1","5")' bgcolor="green"> </td>
<td width="10" onclick='setzten("B","1","6")' bgcolor="blue"> </td>
<td width="10" onclick='setzten("B","1","7")' bgcolor="blue"> </td>
<td width="10" onclick='setzten("B","1","8")' bgcolor="blue"> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick='setzten("W","2","9")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("W","2","10")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("W","2","11")' bgcolor="yellow"> </td>
<td width="10" onclick='setzten("B","2","0")' bgcolor="red"> </td>
<td width="10" onclick='setzten("B","2","1")' bgcolor="red"> </td>
<td width="10" onclick='setzten("B","2","2")' bgcolor="red"> </td>
<td width="10" onclick='setzten("W","2","3")' bgcolor="green"> </td>
<td width="10" onclick='setzten("W","2","4")' bgcolor="green"> </td>
<td width="10" onclick='setzten("W","2","5")' bgcolor="green"> </td>
<td width="10" onclick='setzten("B","2","6")' bgcolor="blue"> </td>
<td width="10" onclick='setzten("B","2","7")' bgcolor="blue"> </td>
<td width="10" onclick='setzten("B","2","8")' bgcolor="blue"> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzen("S","0","3")' bgcolor="orange"> </td>
<td width="10" onclick='setzen("S","1","3")' bgcolor="orange"> </td>
<td width="10" onclick='setzen("S","2","3")' bgcolor="orange"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzen("S","0","4")' bgcolor="orange"> </td>
<td width="10" onclick='setzen("S","1","4")' bgcolor="orange"> </td>
<td width="10" onclick='setzen("S","2","4")' bgcolor="orange"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzen("S","0","5")' bgcolor="orange"> </td>
<td width="10" onclick='setzen("S","1","5")' bgcolor="orange"> </td>
<td width="10" onclick='setzen("S","2","5")' bgcolor="orange"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzen("B","0","6")' bgcolor="blue"> </td>
<td width="10" onclick='setzen("B","1","6")' bgcolor="blue"> </td>
<td width="10" onclick='setzen("B","2","6")' bgcolor="blue"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzen("B","0","7")' bgcolor="blue"> </td>
<td width="10" onclick='setzen("B","1","7")' bgcolor="blue"> </td>
<td width="10" onclick='setzen("B","2","7")' bgcolor="blue"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
<tr height="10" width="120">
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick='setzen("B","0","8")' bgcolor="blue"> </td>
<td width="10" onclick='setzen("B","1","8")' bgcolor="blue"> </td>
<td width="10" onclick='setzen("B","2","8")' bgcolor="blue"> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
<td width="10" onclick=''> </td>
</tr>
</table> <br>
<table height="10"><tr><td colspan="7"><b>Farben:</b></td></tr>
<tr><td width="10" bgcolor="yellow" onclick="farbe('yellow')"> </td>
<td width="10" bgcolor="gray" onclick="farbe('gray')"> </td>
<td width="10" bgcolor="green" onclick="farbe('green')"> </td>
<td width="10" bgcolor="red" onclick="farbe('red')"> </td>
<td width="10" bgcolor="blue" onclick="farbe('blue')"> </td>
<td width="10" bgcolor="orange" onclick="farbe('orange')"> </td>
<td></td>
</tr>
<tr><td colspan="7"><b>Aktuelle Farbe</b></td></tr>
<tr><td colspan="7"><p id="ausgabe">gray</p></td></tr>
</table>
<br>
<a href="javascript:info ()">INFO</a>
</body>
</html>
Ahrggl,
vergiss mal die Sache mit den pipes.
Ich hatte mir einfach vorhin Dein zeugs einfach hier rauskopiert und hatte nicht
beachtet, daß Du ja nicht in einem code-block formatiert hast.
Das hat zur Folge, daß
[i]
im Text verschwindet, was im Falle von indizierten arrays zu argen Verständnisschwierigkeiten führt.....
So ein Blödsinn.
Ich verstehe allerdings das Problem nach wie vor nicht.
Die functions sind doch in CLICK fein säuberlich aufgelistet.
Die function, die dreht, heißt sinnigerweise DR.
Sie kennt vier Möglichkeiten:
0, 1, 2, und 3
was nach oben oder unten, bzw. links oder rechts ist, steht
dick und fett auf den jeweiligen buttons drauf.
Was Du daran nicht verstehst, ist mir schleierhaft.
gruß
matho
also bei DR passiert bei mir (wenn ichs folgendermaßen aufrufe) nichts:
<script>
DR(0);
//oder
DR("w09");
//..
</script>
es passiert rein gar nichts..
die funktion HM oder so, aktuallisiert nicht den Würfel, sondern schreibt ihn neu.. (Löscht damit das Array wieder)
Auf den Pfeilen steht übrigens auch nichts.. (Nur kommt wenn ich drüber fahre links im Textfeld ein Buchstabe und eine Zahl (z.b.: w09).. Da ich aber die funktion nicht kenne, womit ichs aufrufen muss, bringt mir das auch nichts..)
Dochdoch,
da passiern sogar recht lustige Sachen:
<body onload="INIT(); Iv1=setInterval('DR(1)',300); Iv2=setInterval('DR(0)',400)"
onclick='clearInterval(Iv1);clearInterval(Iv2)' style='background-Color:#000000'>
</body>
Die lightshow für daheimgebliebne, sozumsaachen.
3 gegen 4 ist auf'm schlaachzeuch übringens gar nicht
sooo einfach....
gruß
matho
aha.. gut..
das dreht jetzt den ganzen würfel.. aber wie kann ich eine spalte drehen?
Moin,
ich weiß nicht, was Du vorhast.
Dieses erste script von mir ist auf events abgestimmt -
gedacht als Darstellung des Würfels in einem browser.
Dazu dienen hier mit ids versehen tags.
Um diesen Sachverhalt deutlich und einsichtig werden zu lassen,
waren eigentlich ehemals diese Zeilen gedacht:
function OVER()
{e=event.srcElement;
D('in0').value=e.id.match(/[s,w,b]/)&&!e.id.match(/b[0,5]/)&&e.innerHTML!=''?e.id:'';
};
Diese ids werden dazu benutzt, beim Aufruf von BX()
darüber zu entscheiden, in welche Richtung gedreht werden soll,
und ob eine Deckplatte mitgedreht werden muß oder nicht.
Im einfachsten Fall - also: ohne viel zu ändern - machst Du's so:
function SD(sd1)
{for(i=0;i<n;i++)
{o0=i==0?2:1; o1=i==0||i==n-1; n0=n*3; n1=n*3-1;
sd1==w+i+n0?(ex=w+i, (BX(0,w,s),o1?WD(0,S,s,o0):u), TX(ex+n1)):
sd1==w+i+n1?(ex=w+i, (BX(1,w,s),o1?WD(1,S,s,o0):u), TX(ex+n0)):
sd1==s+i+n0?(ex=s+i, (BX(0,s,w),o1?WD(0,W,w,o0):u), TX(ex+n1)):
sd1==s+i+n1?(ex=s+i, (BX(1,s,w),o1?WD(1,W,w,o0):u), TX(ex+n0)):u;
};
};
und beim Aufruf zB:
onclick="SD('w29')"
wobei im Falle des Dreier-Würfels das eben bedeutet, daß
die untere Reihe nach links gedreht wird, und die untere
Deckplatte gleich mit.
Ich ahne allerdings, daß Du etwas anderes planst, und
wenn ich nicht ganz falsch liege, möchtest Du Dich dran
machen, tatsächlich ein Lösungsprogramm zu schreiben.
Das würde ich an Deiner Stelle aber nicht auf Grundlage
dieses scripts machen - wie bereits gesagt -, dazu ist es
einfach nicht gemacht, und es wäre auch ziemlich umständlich,
das Pferd von hinten aufgezäumt, quasi.
Es enthält zwar paar Gedanken-Ansätze, hauptsächlich dient
es jedoch der Darstellung.
gruß
matho
Sie anmelden oder registrieren um eine Antwort zu verfassen
Powered by PunBB, unterstützt von Informer Technologies, Inc.
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.