我正在尝试创建一个.txt
文件,我可以使用我的程序打开它,并通过拆分它们将所有数字保存在两个不同的数组中。
但由于某种原因,顶部部分从不更改BackColor
。
以下是代码:
PictureBox[,] Field = new PictureBox[4, 4];
int[,] Block_Property = new int[4, 4];
for (int x = 0; x < 4; x++)
{
for (int y = 0; y < 4; y++)
{
Field[x, y] = new PictureBox();
Field[x, y].Size = new Size(64, 64);
Field[x, y].Location = new Point(x * 64, y * 64);
this.Controls.Add(Field[x, y]);
}
}
string Text;
int Zahler=0;
using (StreamReader sr = new StreamReader("Level/1-1.txt"))
{
Text = sr.ReadToEnd();
}
string[] Feld = Text.Split(';');
for(int x = 0; x < 4; x++)
{
for(int y = 0; y < 4; y++)
{
if(Feld[Zahler] == "1")
{
Field[x, y].BackColor = Color.Black;
}
Zahler++;
if (Feld[Zahler] == "1")
{
Block_Property[x, y] = 1;
}
Zahler++;
}
}
这是.txt
文件的外观:
1;1;1;1;1;1;1;1;
1;1;1;1;1;1;1;1;
1;1;1;1;1;1;1;1;
1;1;1;1;1;1;1;1;
以下是我启动程序后的注意事项:
答案 0 :(得分:0)
X应为Y
for (int y = 0; y < 4; y++)
{
for (int x = 0; x < 4; x++)
{
if (Feld[Zahler] == "1")
{
Field[y, x].BackColor = Color.Black;
}
Zahler++;
if (Feld[Zahler] == "1")
{
Block_Property[y, x] = 1;
}
Zahler++;
}
}
答案 1 :(得分:0)
你可以试试这个,而不是硬编码数组的x和y,y和x需要切换
for (int y = 0; y < Field.GetLength(0); y++)
{
for (int x = 0; x < Field.GetLength(1); x++)
{
if(Feld[Zahler] == "1")
{
Field[x, y].BackColor = Color.Black;
}
Zahler++;
if (Feld[Zahler] == "1")
{
Block_Property[x, y] = 1;
}
Zahler++;
}
}