Я делаю простую игру в С# winforms. То, что я пытаюсь сделать, — это игра типа тап-тайл, в которой используются черные и серые тайлы. Цель состоит в том, чтобы попасть в черную плитку, но есть одна загвоздка: каждую секунду черная плитка меняет свое положение.
Я заставил его работать так, как я хочу, но теперь пришло время настроить! При этом я столкнулся с проблемой, которую не могу понять. Вот что я пытаюсь сделать:
У меня есть сетка 3 * 4, сделанная из коробок с картинками. первый ряд генерируется случайным образом из 1 черной и 3 серых плиток. Это должно оставаться таким в течение секунды, затем первый ряд плиток должен быть перемещен во второй ряд, а первый ряд должен быть снова сгенерирован случайным образом. Затем тайлы второго ряда нужно переместить в третий ряд, тайлы первого ряда — во второй, а первый ряд нужно сгенерировать заново.
Я сделал эту работу, но не так, как я хочу.
Поскольку все мои коробки с картинками имеют одинаковую цветовую комбинацию. Может ли кто-нибудь помочь мне понять это? или подтолкнуть меня в правильном направлении? Я предоставлю свой код, если его запросят, так как я понятия не имею, что добавить к моему сообщению прямо сейчас.
Извините за ссылки, но я не смог загрузить изображения!
Это мой метод для плитки:
public void RandomPanel()
{
if (i == 1)
{
i++;
Random rnd = new Random();
int temp = rnd.Next(1, 5);
switch (temp)
{
case 1:
TilelLoc = 1;
PbRow3_1.BackgroundImage = _2048Tiles.Properties.Resources.BlackTile;
PbRow3_2.BackgroundImage = _2048Tiles.Properties.Resources.GrayTile;
PbRow3_3.BackgroundImage = _2048Tiles.Properties.Resources.GrayTile;
PbRow3_4.BackgroundImage = _2048Tiles.Properties.Resources.GrayTile;
break;
case 2:
TilelLoc = 2;
PbRow3_2.BackgroundImage = _2048Tiles.Properties.Resources.BlackTile;
PbRow3_1.BackgroundImage = _2048Tiles.Properties.Resources.GrayTile;
PbRow3_3.BackgroundImage = _2048Tiles.Properties.Resources.GrayTile;
PbRow3_4.BackgroundImage = _2048Tiles.Properties.Resources.GrayTile;
break;
case 3:
TilelLoc = 3;
PbRow3_3.BackgroundImage = _2048Tiles.Properties.Resources.BlackTile;
PbRow3_1.BackgroundImage = _2048Tiles.Properties.Resources.GrayTile;
PbRow3_2.BackgroundImage = _2048Tiles.Properties.Resources.GrayTile;
PbRow3_4.BackgroundImage = _2048Tiles.Properties.Resources.GrayTile;
break;
case 4:
TilelLoc = 4;
PbRow3_4.BackgroundImage = _2048Tiles.Properties.Resources.BlackTile;
PbRow3_1.BackgroundImage = _2048Tiles.Properties.Resources.GrayTile;
PbRow3_2.BackgroundImage = _2048Tiles.Properties.Resources.GrayTile;
PbRow3_3.BackgroundImage = _2048Tiles.Properties.Resources.GrayTile;
break;
default:
break;
}
}
else if (i == 2)
{
PbRow2_1.BackgroundImage = PbRow3_1.BackgroundImage;
PbRow2_2.BackgroundImage = PbRow3_2.BackgroundImage;
PbRow2_3.BackgroundImage = PbRow3_3.BackgroundImage;
PbRow2_4.BackgroundImage = PbRow3_4.BackgroundImage;
i++;
}
else if (i == 3)
{
i = 1;
PbRow1_1.BackgroundImage = PbRow2_1.BackgroundImage;
PbRow1_2.BackgroundImage = PbRow2_2.BackgroundImage;
PbRow1_3.BackgroundImage = PbRow2_3.BackgroundImage;
PbRow1_4.BackgroundImage = PbRow2_4.BackgroundImage;
}
}
I will provide my code if its requested
. Да, пожалуйста. - person LarsTech   schedule 22.05.2014i = 1
и вызываю RandomPanel по таймеру, кажется, все работает нормально.TilelLoc
не используется в вашем сообщении. - person LarsTech   schedule 23.05.2014TileLoc1
для сравнения с панелью, которую контролирует пользователь. На пользовательской панели есть int с именемPlayerLoc
, который я сравниваю, чтобы проверить, равна ли позиция пользователей позиции черных плиток. - person Tim van Gool   schedule 23.05.2014