public long GetOreRequirementFor(ReactionItem ri) { var pool = ReactionPool.InitWith(ri); var reactionItem = ReduceToOre(pool); return(reactionItem.Quantity); }
public static ReactionPool InitWith(ReactionItem ri) { var pool = new ReactionPool(); pool[ri.Chemical] = ri; return(pool); }
static List <ReactionItem> ParseInput(ReadOnlySpan <char> str) { var result = new List <ReactionItem>(); while (true) { var idx = str.IndexOf(','); if (idx == -1) { result.Add(ReactionItem.Parse(str)); return(result); } else { result.Add(ReactionItem.Parse(str.Slice(0, idx))); str = str.Slice(idx + 2); // +1 for space after ',' } } }
static ReactionItem ParseOutput(ReadOnlySpan <char> str) { return(ReactionItem.Parse(str)); }
public Reaction(ReactionItem output, IEnumerable <ReactionItem> input) { Output = output; Input = input; }