Hi nochmal Tobi
sorry wenn ich nochmal störe mit dem Problem. Aber ich komm grad bei meinen Schleifen nimmer ganz zurecht.
Ich will wie oben schon beschrieben eine Zahlenfolge feststellen.. aber dieses Mal mit einem Joker. Und die Folge darf von 1-13 sein und nochmal ne 1 am Ende.. egal ob rückwärts oder vorwärts.
Das heißt ich hab ein Array das lautet zum Beispiel:
var newmeinarray:Array= ["8","9","j","11","12","13","1"]
Dafür muss jetzt true angezeigt werden. Ich habs mal so probiert... aber wie du selbst siehst ist das ein wirkliches Kudelmudel geworden...Einmal klappt einmal nicht in meinem Spiel ( sowas wie Romee bloß mit Steinen)
Hier der Code:
PHP:
for (k=1; k<i; k++) {
var meineersteSteingruppe:Array =this["tassammlung"+k];
var matching:Boolean = true;
matching2 = true;
var matchingZiffer:Boolean = true;
var matchColor:String;
var matchZiffer:String;
var ziffervergleich:Number;
var zifferrichtig:Number;
if (meineersteSteingruppe[0].split("_")[0]=="j") {
matchColor = meineersteSteingruppe[1].split("_")[0];
}
if (meineersteSteingruppe[0].split("_")[0]=="j" && meineersteSteingruppe[1].split("_")[0]=="j") {
matchColor = meineersteSteingruppe[2].split("_")[0];
}
if (meineersteSteingruppe[0].split("_")[0]!="j") {
matchColor = meineersteSteingruppe[0].split("_")[0];
}
for (var p=0; p<meineersteSteingruppe.length; p++) {
var einStein:String = meineersteSteingruppe[p].split("_")[0];
if (einStein != matchColor && einStein != "j") {
matching = false;
}
}
if (matching == true) {
var richtung:String="positiv";
var firstZiffer;
var secondZiffer;
for (var c=0; c<meineersteSteingruppe.length-1; c++) {
if (meineersteSteingruppe[ c].split("_")[1]==1 && meineersteSteingruppe[c+1].split("_")[1]==13 || meineersteSteingruppe[ c].split("_")[1]==1 && meineersteSteingruppe[c+2].split("_")[1]==12 && meineersteSteingruppe[c+1].split("_")[1]=="j") {
firstZiffer = 14;
secondZiffer = 13;
}
if (meineersteSteingruppe[ c].split("_")[1]==13 && meineersteSteingruppe[c+1].split("_")[1]==1 || meineersteSteingruppe[ c].split("_")[1]=="j" && meineersteSteingruppe[c-1].split("_")[1]==12 && meineersteSteingruppe[c+1].split("_")[1]==1) {
firstZiffer = 13;
secondZiffer = 14;
} else {
firstZiffer = meineersteSteingruppe[ c].split("_")[1];
secondZiffer = meineersteSteingruppe[c+1].split("_")[1];
}
if (c<1) {
var thirdZiffer = meineersteSteingruppe[c+2].split("_")[1];
if (meineersteSteingruppe.length>3) {
var forthZiffer = meineersteSteingruppe[c+3].split("_")[1];
}
if (firstZiffer!="j") {
if (secondZiffer!=j) {
if (firstZiffer<secondZiffer) {
richtung="positiv";
} else {
richtung="negativ";
}
} else {
if (thirdZiffer!="j") {
if (firstZiffer<thirdZiffer) {
richtung="positiv";
} else {
richtung="negativ";
}
} else {
if (meineersteSteingruppe.length>3 && firstZiffer<forthZiffer) {
richtung="positiv";
} else {
richtung="negativ";
}
}
}
} else {
if (secondZiffer!=j) {
if (secondZiffer<thirdZiffer) {
richtung="positiv";
} else {
richtung="negativ";
}
} else {
if (meineersteSteingruppe.length>3 && thirdZiffer<forthZiffer) {
richtung="positiv";
} else {
richtung="negativ";
}
}
}
}
if (richtung=="positiv") {
if (c<1) {
if (firstZiffer =="j") {
if (secondZiffer=="j") {
firstZiffer = meineersteSteingruppe[c+2].split("_")[1]-2;
secondZiffer = meineersteSteingruppe[c+2].split("_")[1]-1;
} else {
firstZiffer = meineersteSteingruppe[c+1].split("_")[1]-1;
}
}
if (firstZiffer !="j" && secondZiffer =="j") {
secondZiffer = Number(meineersteSteingruppe[ c].split("_")[1])+1;
}
}
if (c>=1) {
if (firstZiffer =="j") {
if (meineersteSteingruppe[c+1].split("_")[1] !="j") {
firstZiffer = meineersteSteingruppe[c+1].split("_")[1]-1;
}
if (meineersteSteingruppe[c-1].split("_")[1] !="j") {
firstZiffer = Number(meineersteSteingruppe[c-1].split("_")[1])+1;
}
}
if (secondZiffer =="j") {
secondZiffer = Number(firstZiffer)+1;
}
}
ziffervergleich = firstZiffer;
zifferrichtig= secondZiffer-1;
}
if (richtung=="negativ") {
if (c<1) {
if (firstZiffer =="j") {
if (secondZiffer=="j") {
firstZiffer = Number(meineersteSteingruppe[c+2].split("_")[1])+2;
secondZiffer = Number(meineersteSteingruppe[c+2].split("_")[1])+1;
} else {
firstZiffer = Number(meineersteSteingruppe[c+1].split("_")[1])+1;
}
}
if (firstZiffer !="j" && secondZiffer =="j") {
secondZiffer = Number(meineersteSteingruppe[ c].split("_")[1])-1;
}
}
if (c>=1) {
if (firstZiffer =="j") {
if (meineersteSteingruppe[c+1].split("_")[1] !="j") {
firstZiffer = Number(meineersteSteingruppe[c+1].split("_")[1])+1;
}
if (meineersteSteingruppe[c-1].split("_")[1] !="j") {
firstZiffer = Number(meineersteSteingruppe[c-1].split("_")[1])-1;
}
}
if (secondZiffer =="j") {
secondZiffer = Number(firstZiffer)-1;
}
}
ziffervergleich = firstZiffer;
zifferrichtig = Number(secondZiffer)+1;
}
if (ziffervergleich != zifferrichtig) {
matching2 = false;
fehler2.text="Farben ok aber Zahlenfolge in der "+k+". Gruppe ist falsch!";
}
}
}
}
}
P.s. Ist rauskopiert weiß leider nicht ob des mit den Klammer ganz stimmt. Uuund meineersteSteingruppe war ein Array wie z.B. s_7 für die schwarze sieben. wurde also getrennt.. Farben wurden bestätigt... fehlt eben nur noch diese Folge mit "j" auch inbegriffen (Joker).
Mein Versuchsaufbau ist so aufgebaut das ich zuerst feststelle ob die erste und zweite Ziffer eine 1 und 13 ist... falls ya dann soll eine Runde weiterspringen.. und dann wird festgestellt ob die Folge in negativer oder positiver Richtung geht... und dannnnn kommen die eigentlichen Tests :S
Ich hoffe du kommst da noch mit.
mfg Umut