using System.Collections.Generic;
public List<Neuron> inputs = new List<Neuron>();
static Dictionary<int, Neuron> neuronDict = new Dictionary<int, Neuron>();
static HashSet<Neuron> passedNeurons = new HashSet<Neuron>();
public static void Main() {
for (int i = 0; i < 6; i++) {
neuronDict.Add(i, new Neuron(i));
foreach(KeyValuePair<int, Neuron> neuron in neuronDict) {
Console.WriteLine("Neuron "+ neuron.Key);
static void Process(Neuron neuron) {
passedNeurons.Add(neuron);
foreach (Neuron input in neuron.inputs) {
Console.WriteLine(" Querying "+ input.id);
if (!passedNeurons.Contains(input)) {
passedNeurons.Add(input);
Console.WriteLine(" Processing "+ input.id);
Console.WriteLine(" Adding " + input.id +"'s value");
static void PrintInputs(int id, Neuron neuron) {
Console.WriteLine("Neuron "+ id);
for(int i = 0; i < neuron.inputs.Count; i++)
Console.WriteLine(" "+neuron.inputs[i].id + " -> " + id);
static void AddConnection(int outputNeuron, int inputNeuron) {
neuronDict[inputNeuron].inputs.Add(neuronDict[outputNeuron]);