Changeset 10011 for branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/Multiplication.cs
- Timestamp:
- 10/01/13 12:08:25 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/Multiplication.cs
r9790 r10011 20 20 #endregion 21 21 22 using System; 23 using System.Collections.Generic; 24 using System.Linq; 22 25 using HeuristicLab.Common; 23 26 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; … … 26 29 namespace HeuristicLab.Problems.Robocode { 27 30 [StorableClass] 28 public class Multiplication : CodeNode {29 public override int MinimumArity { get { return 0; } }30 public override int MaximumArity { get { return 0; } }31 public class Multiplication : CodeNode, INumericalOperator { 32 public override int MinimumArity { get { return 2; } } 33 public override int MaximumArity { get { return byte.MaxValue; } } 31 34 32 35 [Storable] … … 37 40 38 41 [StorableConstructor] 39 private Multiplication(bool deserializing) : base(deserializing) { } 40 private Multiplication(Multiplication original, Cloner cloner) 41 : base(original, cloner) { 42 43 } 42 protected Multiplication(bool deserializing) : base(deserializing) { } 43 protected Multiplication(Multiplication original, Cloner cloner) : base(original, cloner) { } 44 44 45 45 public Multiplication() 46 46 : base("Multiplication", "Multiplication operator.") { 47 this.Prefix = "*";48 this.Suffix = "";47 Prefix = "("; 48 Suffix = ")"; 49 49 } 50 50 … … 53 53 } 54 54 55 public override string Interpret(ISymbolicExpressionTreeNode node, System.Collections.Generic.IEnumerable<ISymbolicExpressionTreeNode> children) { 56 return this.Prefix + this.Suffix; 55 public override string Interpret(ISymbolicExpressionTreeNode node, IEnumerable<ISymbolicExpressionTreeNode> children) { 56 if (children.Count() < 2) 57 throw new ArgumentException("Expected at leaset 2 children.", "children"); 58 59 string result = string.Join(" * ", children.Select(c => ((CodeNode)c.Symbol).Interpret(c, c.Subtrees))); 60 return Prefix + result + Suffix; 57 61 } 58 62 }
Note: See TracChangeset
for help on using the changeset viewer.