Возможно ли повторять вложенные операторы if с новым значением с каждой отдельной итерацией? Я пытаюсь построить 1-мерные клеточные автоматы (для домашней работы, я не могу это отрицать), и я совершенно не знаком с C#, поскольку следующий код, без сомнения, заверит. Я попытался создать эту программу, используя самые простые, базовые, доступные методы DIY и запустил себя в колею.C# Итерирование оператора If с новым значением каждый раз
У меня есть строка 1 и 0 длина 8, скажет
string y;
y = "11110000";
Я хочу, чтобы разбить этот набор в 8 подстроке наборов 3 с каждым набором, состоящим из значения в годе вместе с одно значение по обе стороны от него. Таким образом, подсчет от 0, 3-й набор будет равен 110, 7-й будет 001. Однако подстроки будут обеспечивать только 1-й-6-й набор, так как я не могу их закодировать вокруг y по своему усмотрению, поэтому я определил следующее:
Использование y1 Я смог получить все необходимые подстроки. Они были определены довольно основном следующим образом-
string a0, a1, a2, a3, a4, a5, a6, a7;
a0 = y1.Substring(0, 3);
a1 = y1.Substring(1, 3);
a2 = y1.Substring(2, 3);
a3 = y1.Substring(3, 3);
a4 = y1.Substring(4, 3);
a5 = y1.Substring(5, 3);
a6 = y1.Substring(6, 3);
a7 = y1.Substring(7, 3);
Правила для следующего поколения сотовых автоматов до пользователя в этом програмно, который должен сказать, что пользователь может выбрать или нет подстроки, скажем, 111- > 0 или 1 для всех итераций. Я использовал (очень много), если таблицы в следующем образе для каждой подстроки
{
if (a0=="000")
{
Console.Write(a);
}
else if (a0=="001")
{
Console.Write(b);
}
else if (a0 =="010")
{
Console.Write(c);
}
else if (a0 == "011")
{
Console.Write(d);
}
else if (a0 == "100")
{
Console.Write(e);
}
else if (a0 == "101")
{
Console.Write(f);
}
else if (a0 == "110")
{
Console.Write(g);
}
else if (a0 == "111")
{
Console.Write(h);
}
}
, где а, б, в, г, д, е, ж, з является Интсом и правила, выбранных пользователем. Так скажем, например, пользователь решает, что каждый набор 000 должен привести к 1 значению, затем a = 1. b соответствует {0,0,1}, c до {0,1,0} и т. д. Однако довольно очевидная проблема с этим методом заключается в том, что я получаю только 1 поколение в ints, к которому я не могу добраться. Я бы хотел заменить y1 этим новым поколением (преобразованным в строку). Если это невозможно, дайте мне знать!
This link might also clear things up a bit
попробовать использовать int.Parse и чем позже .ToString и чем вы можете использовать какой-то запущен индекс – LordTitiKaka
Это не ответ на ваш вопрос, но вы принимаете неправильный подход. Попытайтесь перечитать ссылку, которую вы опубликовали, и понять математику за клеточными автоматами. Честно говоря, гораздо проще, чем вы это делаете! –
Я не сомневаюсь ни на секунду, что там нет более легкого подхода, но для меня это самый интуитивный. Я действительно, ДЕЙСТВИТЕЛЬНО не знаком с C# и программированием в целом, и если таблицы - это мой modus operandi (латинский?) Для момента (мексиканский). – HipPriest