Bläddra i källkod

D16.1 slight opti

bastien.monsarrat 7 år sedan
förälder
incheckning
b6c54bc108
1 ändrade filer med 5 tillägg och 8 borttagningar
  1. 5 8
      D16.1/Program.cs

+ 5 - 8
D16.1/Program.cs

@@ -82,10 +82,9 @@ namespace D16._1
 
             var pc = new Computer();
 
-            var result = new Dictionary<int, int>();
+            var result = 0;
 
             bool prevIsBlank = false;
-            int sample = 0;
             do
             {
                 var line = file.ReadLine();
@@ -99,8 +98,6 @@ namespace D16._1
                 }
                 else prevIsBlank = false;
 
-                result.Add(sample, 0);
-
                 string before = line;
                 string op = file.ReadLine();
                 string after = file.ReadLine();
@@ -109,6 +106,7 @@ namespace D16._1
                 var regAfter = after.Substring(9, after.Length - 10).Split(", ").Select(s => ushort.Parse(s)).ToArray();
                 var opParams = op.Split(" ").Select(s => ushort.Parse(s)).ToArray();
 
+                var count = 0;
                 foreach (var opc in pc.CPU.OpCodes)
                 {
                     pc.CPU.SetRegisters(regBefore);
@@ -118,14 +116,13 @@ namespace D16._1
                     var regresult = pc.CPU.Registers;
 
                     bool isSame = regresult[opParams[3]] == regAfter[opParams[3]];
-                    if (isSame) result[sample]++;
+                    if (isSame) count++;
                 }
 
-                sample++;
+                if (count >= 3) result++;
             } while (true);
             
-            var resultCount = result.Count(r => r.Value >= 3);
-            Console.WriteLine($"The result is : {resultCount}");
+            Console.WriteLine($"The result is : {result}");
         }
     }
 }