Есть рандом который видает цифры 0 или 1.
Нужно между 0 и 1 добавлять блок Angle_Left, а между 1 и 0 Angle_Top как сделать?
var Random = new Random();
for(int i=0;i<20;i++){
float rand = Random.Next(0,2);
if(rand == 0){
Console.WriteLine(rand + " — " + "Left");
}
if(rand == 1){
Console.WriteLine(rand + " — " + "Top");
}
Пример:
0 - Left
- Angle_Left
1 - Top
1 - Top
1 - Top
- Angle_Top
0 - Left
- Angle_Left
1 - Top
- Angle_Top
0 - Left
0 - Left
0 - Left
- Angle_Left
1 - Top
1 - Top
Ну например:
Random r = new Random();
IEnumerable<int> GetRandomSequence()
{
while (true)
yield return r.Next(2);
}
IEnumerable<string> InsertCorners(IEnumerable<int> seq)
{
int prev = -1;
foreach (var curr in seq)
{
if (prev == 0 && curr == 1)
yield return " - Angle_Left";
else if (prev == 1 && curr == 0)
yield return " - Angle_Top";
if (curr == 0)
yield return "0 - Left";
else if (curr == 1)
yield return "1 - Top";
prev = curr;
}
}
Тестируем:
foreach (var s in InsertCorners(GetRandomSequence().Take(20)))
Console.WriteLine(s);
выдаёт
0 - Left
0 - Left
0 - Left
0 - Left
- Angle_Left
1 - Top
1 - Top
1 - Top
- Angle_Top
0 - Left
0 - Left
- Angle_Left
1 - Top
1 - Top
- Angle_Top
0 - Left
0 - Left
- Angle_Left
1 - Top
1 - Top
1 - Top
- Angle_Top
0 - Left
0 - Left
0 - Left
- Angle_Left
1 - Top
Сборка персонального компьютера от Artline: умный выбор для современных пользователей