gpt4 book ai didi

c# - 如何将第二个值存储到最后一个值以与新值进行比较

转载 作者:搜寻专家 更新时间:2023-11-01 09:26:16 25 4
gpt4 key购买 nike

我有这个代码

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);

我的问题是这个

enter image description here

正如您在最后一列中看到的那样

RED,GREEN,BLUE,BLUE

它的值是

//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 值更像是被忽视我所说的被忽视的意思是这样的

enter image description here

现在最后一列的值为

BLUE, BLUE, GREEN, RED, RED

它的值是什么

//P = BLUE, B = RED, T = GREEN
string[] strData = {"P ,B ,P ,P B,B ,P ,P ,T ,B ,B "};

正如您在图像中看到的那样,RED, RED 必须在下一行,因为它不等于 newPrevious 变量,这意味着我在谈论BLUE 高于 GREEN 值。

现在我想要但我无法实现的:

我在这里无法实现的是将 newPrevious 的值放入一个变量中,它将存储 GREEN 之前的值,以便我可以比较它使用新的 newPrevious 值。

例如上图有值

RED, GREEN, BLUE, BLUE

我想保存 RED 值,以便我可以将它与 BLUE 值进行比较,以便我可以使用 xIndex 递增它而不是 yIndex

编辑

预期输出的第一个图像必须是这个

enter image description here

而第二张图片预期的输出必须是这样的

enter image description here

最佳答案

取另一个变量“previous”。像现在一样将它设置为 newPrevious 的值,并在下一次迭代中检查它是否已更改。

替换这个

newPrevious = result ;

有了这个

if(!result.Equals("T")) 
newPrevious = result ;

关于c# - 如何将第二个值存储到最后一个值以与新值进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50383116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com