anchor.diff:          Seq.iter (fun x -> fontColor x
                              System.Console.WriteLine("computer number " + x.ID.ToString () + " is " + (health x))) computers
       
  +
       /// simulates the unit of time and performs changes in the system
       member this.Step () =
  -        let tryInfect = Seq.concat <| 
  +        let infected =
  +            Array.fold
  +                (fun acc (comp:Computer) -> if comp.IsInfected () then comp.ID :: acc else acc)
  +                []
  +                computers
  +        let tryInfect =
  +            Seq.fold (fun acc i -> Seq.append acc <| Seq.item i adjacencyList) [] infected
  +        let genRandomNumbers =
  +            let rnd = System.Random()
  +            List.init computers.Length (fun _ -> rnd.Next ())
  +        Seq.iter2 (fun i dmg -> computers.[i].Infect(dmg)) tryInfect genRandomNumbers
   
       /// checks the health of the system
       member this.IsUnhealthy () =
  
positive.code:                   ignore <| stream.ReadLine()
                    while not stream.EndOfStream do
                      let line = stream.ReadLine()
                      let neighbors = String.filter (fun x -> x <> '0')
                                      <| String.mapi (fun i x -> if (x = '1') then (char i) else x) line
                      yield neighbors }
      
      /// shows the adjacency matrix in the console
      member this.ShowAdjList () =
          Seq.iter (fun ls -> Seq.iter (fun c -> printf "%A" c) ls
                              printfn "") adjacencyList
  
      /// shows the health of each computer
      member this.ShowSystem () =
  
negative.code: 
      /// returns a list of healthy computers
      member this.GetHealthyComputers () =
          Array.fold (fun acc (comp:Computer) -> if comp.IsInfected () then (comp.ID :: acc) else acc) [] computers