Суть такова - есть динамическое кол-во игроков которое определяется юзером. Нам нужно сделать что бы при вызове метода менялся цвет игрока который сейчас будет ходить. Нельзя ли покороче и по-понятнее сделать метод ChangeColor?? Говорю спасибо на перед. P.S Оранжевый цвет ходящего.
void ChangeColor( )//Самый сложный и ужасный метод в моей жизни
{
switch (names.Count)
{
case 2:
switch (counter)
{
case 0:
label1.ForeColor = Color.Black;
label2.ForeColor = Color.Orange;
break;
case 1:
label2.ForeColor = Color.Black;
label1.ForeColor = Color.Orange;
break;
}
break;
case 3:
switch (counter)
{
case 0:
label1.ForeColor = Color.Black;
label2.ForeColor = Color.Orange;
break;
case 1:
label2.ForeColor = Color.Black;
label3.ForeColor = Color.Orange;
break;
case 2:
label3.ForeColor = Color.Black;
label1.ForeColor = Color.Orange;
break;
}
break;
case 4:
switch (counter)
{
case 0:
label1.ForeColor = Color.Black;
label2.ForeColor = Color.Orange;
break;
case 1:
label2.ForeColor = Color.Black;
label3.ForeColor = Color.Orange;
break;
case 2:
label3.ForeColor = Color.Black;
label4.ForeColor = Color.Orange;
break;
case 3:
label4.ForeColor = Color.Black;
label1.ForeColor = Color.Orange;
break;
}
break;
}
}
Метод который использует метод выше.
private void move_button_Click(object sender, EventArgs e)//Событие кнопки /ХОД/
{
if (counter == names.Count)
counter = 0;
scores[counter] += CountScores ( );
ChangeColor ( );
counter++;
}
Лучше бы вообще отказаться от оператора switch
, полностью переделав метод.
Предлагаю закинуть объекты labelXXX в один массив или список, в порядке возрастания номера игрока, и можно будет сделать такой вот компактный код:
List<Label> player_labels = new List<Label>();
static void ChangeColor()
{
int next_player_index = (counter + 1) % player_count;
for (int i = 0; i < player_labels.Count; i++)
player_labels[i].ForeColor = (i == next_player_index) ? Color.Orange : Color.Black;
}
Так и универсальности больше: если возникнет необходимость создавать игру на 5 или 6 игроков, то не потребуется вносить изменения в данный метод.
Хотел бы узнать есть ли какой либо другой элемент работы с DOM на с# кроме WebBrowserПричина следующая: WebBrowser использует движок IE и давально старый,...
мне нужно каким то образом вытянуть нужные данные из jsonЯ искал очень много ответов но не нашел не один подходящий мне вариант