У меня есть этот код
string[,] table = new string[104, 15];
int xIndex = -1;
int yIndex = 0;
string newPrevious = "placeholder";
//P = BLUE, B = RED, T = GREEN
string[] strData = {"P ,B ,P ,P B,B ,P ,B ,T ,P ,P "};
//conditions
string[] scoreBoard = new string[]
{"P ", "B ", "T ",
"P B","B P" };
string OriginalData = "";
void Start(){
StartCoroutine ("Win_Log");
}
IEnumerator Win_Log(){
yield return new WaitForEndOfFrame ();
for (int i = 0; i < strData.Length; i++) {
OriginalData += strData [i];
OriginalData += ",";
}
string[] newNewData = OriginalData.Split (',');
string result = "";
foreach (string newStrData in newNewData) {
Debug.Log ("This is the data : " + newStrData);
GameObject o = Instantiate (prefab_gameobject) as GameObject;
o.transform.SetParent (pos_big_road);
o.transform.localScale = Vector3.one;
img = (RawImage)o.GetComponent<RawImage> ();
//check the length so that it won't throw an exception
if (newStrData.Length > 1) {
//get only the first letter of the value P,B,T
result = newStrData.Substring (0, 1);
}
else {
result = "";
}
#region BIG ROAD
if(table.GetLength(0) < xIndex){
break;
}
if (result.Equals (newPrevious) || result.Equals("T") && yIndex < table.GetLength (1)) {
yIndex += 1;
table [xIndex, yIndex] = result;
}
else if(newPrevious.Equals("T") && yIndex < table.GetLength (1)){
yIndex += 1;
table [xIndex, yIndex] = result;
}
else
{
xIndex += 1;
yIndex = 0;
table [xIndex, yIndex] = result;
}
newPrevious = result ;
o.transform.localPosition = new Vector3 (xIndex * 93, yIndex * -93, 0f);
В чем моя проблема заключается в следующем
Как вы можете видеть на последнемстолбец
КРАСНЫЙ, ЗЕЛЕНЫЙ, СИНИЙ, СИНИЙ
, значение которого равно
//P = BLUE, B = RED, T = GREEN
string[] strData = {"P ,B ,P ,P B,B ,P ,B ,T ,P ,P "};
BLUE, BLUE
должно быть наследующий ряд, потому что он не равен переменной newPrevious
, что означает, что я говорил о RED
выше значения GREEN
.Таким образом, вы должны быть в замешательстве по этому поводу, но значение GREEN
больше похоже на игнорирование, то, что я имею в виду под игнорированием, выглядит так:
Теперь наВ последнем столбце есть значение
СИНИЙ, СИНИЙ, ЗЕЛЕНЫЙ, КРАСНЫЙ, КРАСНЫЙ
, значение которого равно
//P = BLUE, B = RED, T = GREEN
string[] strData = {"P ,B ,P ,P B,B ,P ,P ,T ,B ,B "};
.на изображении RED, RED
должно быть в следующей строке, потому что оно не равно переменной newPrevious
, что означает, что я говорил о BLUE
выше значения GREEN
.
NOW WHATЯ ХОЧУ, ЧТО Я НЕ МОГУ ДОСТИГАТЬ:
Чего я не могу достичь, так это поместить значение newPrevious
в переменную, в которой оно будет хранить значение до GREEN
, чтобы я могсравните его с новым значением newPrevious
.
Например, на рисунке выше есть значение
КРАСНЫЙ, ЗЕЛЕНЫЙ, СИНИЙ, СИНИЙ
iхочу сохранить значение RED
, чтобы я мог сравнить его со значением BLUE
, чтобы я мог увеличивать его с xIndex
вместо yIndex
EDIT
Первое ожидаемое изображение должно быть таким:
И второе ожидаемое изображение должно быть таким: