public void SetParam(string name, string evaluationString, List <Param> evaluationParameters = null, bool check = true) { float value = 0; value = ExpressionSolver.CalculateFloat(evaluationString, evaluationParameters); SetParam(name, value, check); }
public void UpdateValue() { counter.text = parameter.PValue.ToString(); GetComponent <Button>().interactable = parameter.activating; if ((parameter.manualActivationWithState || parameter.withChange) && parameter.activating) { if (ExpressionSolver.CalculateBool(parameter.manualUsingCondition.conditionString, parameter.manualUsingCondition.Parameters)) { GetComponent <Button>().interactable = true; } else { GetComponent <Button>().interactable = false; } } if (parameter.PValue <= 0) { Destroy(gameObject); } if (parameter.PValue == 1) { counter.enabled = false; } else { counter.enabled = true; } }
public void ExpressionSolverTest(decimal expectedRes, string expression) { var parser = new ExpressionParser(); var solver = new ExpressionSolver(); var parsedData = parser.Parse(expression); Assert.AreEqual(expectedRes, solver.Solve(parsedData)); }
private void Start() { if (InteractingSocket != null) { PlugIn(); } solver = GameObject.FindGameObjectWithTag("ExpressionSolver").GetComponent <ExpressionSolver>(); }
private void Start() { queue = new Queue <EquationSet>(); solver = new ExpressionSolver(); positions = new List <Vector3>(); normals = new List <Vector3>(); uvs = new List <Vector2>(); faces = new List <int>(); gameObject.SetActive(false); }
public bool CheckCondition(Condition condition) { List <float> playerParameters = new List <float>(); foreach (Param p in condition.Parameters) { InitParam(p); playerParameters.Add(saveInfo.paramsDictionary[p.paramGUID]); Debug.Log(saveInfo.paramsDictionary[p.paramGUID]); } return(ExpressionSolver.CalculateBool(condition.conditionString, playerParameters)); }
public float CalcParamAfterChange(ParamChanges changer) { List <float> values = new List <float>(); InitParam(changer.aimParam); foreach (Param p in changer.Parameters) { InitParam(p); values.Add(saveInfo.paramsDictionary[p.paramGUID]); } return(ExpressionSolver.CalculateFloat(changer.changeString, values)); }
private void Start() { solver = new ExpressionSolver(); InitializeParticleSystem(); varX = solver.SetGlobalVariable("x", 0); varY = solver.SetGlobalVariable("y", 0); xMin = (float)solver.EvaluateExpression(expressionXMin); xMax = (float)solver.EvaluateExpression(expressionXMax); expYMin = solver.SymbolicateExpression(expressionYMin); expYMax = solver.SymbolicateExpression(expressionYMax); expZMin = solver.SymbolicateExpression(expressionZMin); expZMax = solver.SymbolicateExpression(expressionZMax); Generate3DRegion(); }
private void Awake() { // queue = new Queue<EquationSet>(); solver = new ExpressionSolver(); positions = new List <Vector3>(); normals = new List <Vector3>(); uvs = new List <Vector2>(); faces = new List <int>(); gameObject.SetActive(false); ExportMenu em = this.transform.Find("ExportMenu").gameObject.GetComponent <ExportMenu>(); if (em != null) { em.Initialize(this); } }
void Start() { // Force set the resolution Screen.SetResolution(800, 600, false); // Read in all of the cards from the text file, and randomly select one to display first LoadCards(txtFile); NewCard(); // Prepare the expression solver, which can dynamically evaluate math expressions solver = new ExpressionSolver(); //print(solver.SymbolicateExpression("3+1").Evaluate()); // Prepare remaining UI elements score = 0; UpdateScoreText(); timer = timeLimit; }
public void SetParam(string name, float value, bool check = true) { if (check) { parameters.First(x => x.name == name).PValue = value; } else { parameters.First(x => x.name == name).pValue = value; } foreach (ConditionChange pch in parameters.First(x => x.name == name).autoActivatedChangesGUIDS) { if (ExpressionSolver.CalculateBool(pch.condition.conditionString, pch.condition.Parameters)) { foreach (ParamChanges pcha in pch.changes) { SetParam(pcha.aimParam.name, pcha.changeString, pcha.parameters, false); } } } OnParamChanging.Invoke(parameters.First(x => x.name == name)); }
// Use this for initialization void Start() { solver = new ExpressionSolver(); expZ = new AK.Expression(); //Variable varU = new Variable(), varV = new Variable(); positions = new List <Vector3>(); normals = new List <Vector3>(); uvs = new List <Vector2>(); faces = new List <int>(); /* TEST */ solver.SetGlobalVariable("x", -5); solver.SetGlobalVariable("y", -5); expZ = solver.SymbolicateExpression(expressionZ); varU = solver.GetGlobalVariable("x"); varV = solver.GetGlobalVariable("y"); uMin = (float)solver.EvaluateExpression(u_min); uMax = (float)solver.EvaluateExpression(u_max); vMin = (float)solver.EvaluateExpression(v_min); vMax = (float)solver.EvaluateExpression(v_max); TessellateSurface(); left.mesh = TessellateCurve(0, 1, 0, null); right.mesh = TessellateCurve(0, 1, 1, null); back.mesh = TessellateCurve(0, null, 0, 1); front.mesh = TessellateCurve(1, null, 0, 1); }
int Calculate(int attr) { ExpressionSolver solver = new ExpressionSolver(); return((int)solver.EvaluateExpression(calc[attr - minAttr])); }
public MelonInterpreter(MelonEngine engine) { _engine = engine; _expressionSolver = new ExpressionSolver(engine); }
public ExpressionSolverTests() { sut = new ExpressionSolver(); }
private void DrawCondition(Path path) { EditorGUILayout.LabelField("condition:"); EditorGUILayout.BeginHorizontal(); GUI.backgroundColor = Color.white; try { List <float> pv = new List <float>(); foreach (Param p in path.condition.Parameters) { pv.Add(0); } ExpressionSolver.CalculateBool(path.condition.conditionString, pv); } catch { GUI.color = Color.red; } EditorGUI.BeginChangeCheck(); string conditionString = EditorGUILayout.TextField(path.condition.conditionString); GUI.color = Color.white; EditorGUILayout.EndHorizontal(); Param removingParam = null; if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(p, "path condition string"); path.condition.conditionString = conditionString; } for (int i = 0; i < path.condition.Parameters.Count; i++) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("[p" + i + "]", GUILayout.Width(35)); if (!p.Game.parameters.Contains(path.condition.Parameters[i])) { if (p.Game.parameters.Count > 0) { path.condition.Parameters[i] = p.Game.parameters[0]; } else { removingParam = path.condition.Parameters[i]; continue; } } EditorGUI.BeginChangeCheck(); int paramIndex = EditorGUILayout.Popup(p.Game.parameters.IndexOf(path.condition.Parameters[i]), p.Game.parameters.Select(x => x.paramName).ToArray()); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(p, "set condition param"); path.condition.setParam(i, p.Game.parameters[paramIndex]); } GUI.color = Color.red; if (GUILayout.Button("", GUILayout.Height(15), GUILayout.Width(15))) { removingParam = path.condition.Parameters[i]; } GUI.color = Color.white; EditorGUILayout.EndHorizontal(); } if (removingParam != null) { Undo.RecordObject(p, "removing condition param"); path.condition.RemoveParam(removingParam); } }
private void DrawChanges(Path path) { ParamChanges removingChanger = null; for (int i = 0; i < path.changes.Count; i++) { GUILayout.Box("", new GUILayoutOption[] { GUILayout.ExpandWidth(true), GUILayout.Height(1) }); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("delete")) { removingChanger = path.changes[i]; } if (GUILayout.Button("add param")) { Undo.RecordObject(p, "add path changer param"); path.changes[i].AddParam(p.Game.parameters[0]); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if (!p.Game.parameters.Contains(path.changes[i].aimParam)) { if (p.Game.parameters.Count > 0) { path.changes[i].aimParam = p.Game.parameters[0]; } else { removingChanger = path.changes[i]; continue; } } EditorGUI.BeginChangeCheck(); int paramIndex = EditorGUILayout.Popup(p.Game.parameters.IndexOf(path.changes[i].aimParam), p.Game.parameters.Select(x => x.paramName).ToArray(), GUILayout.Width(100)); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(p, "chose path changer param"); path.changes[i].aimParam = p.Game.parameters[paramIndex]; } GUILayout.Label("=", GUILayout.Width(15)); GUI.backgroundColor = Color.white; try { List <float> paramsV = new List <float>(); foreach (Param p in path.changes[i].Parameters) { paramsV.Add(1); } ExpressionSolver.CalculateFloat(path.changes[i].changeString, paramsV); } catch { GUI.color = Color.red; } EditorGUI.BeginChangeCheck(); string changeString = EditorGUILayout.TextField(path.changes[i].changeString); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(p, "change path changer string"); path.changes[i].changeString = changeString; } GUI.color = Color.white; Param removingParam = null; EditorGUILayout.EndHorizontal(); for (int j = 0; j < path.changes[i].Parameters.Count; j++) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("[p" + j + "]", GUILayout.Width(35)); if (!p.Game.parameters.Contains(path.changes[i].Parameters[j])) { if (p.Game.parameters.Count > 0) { path.changes[i].setParam(p.Game.parameters[0], j); } else { removingParam = path.changes[i].Parameters[j]; continue; } } EditorGUI.BeginChangeCheck(); int v = EditorGUILayout.Popup(p.Game.parameters.IndexOf(path.changes[i].Parameters[j]), p.Game.parameters.Select(x => x.paramName).ToArray()); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(p, "change path changer sub param"); path.changes[i].setParam(p.Game.parameters[v], j); } GUI.color = Color.red; if (GUILayout.Button("", GUILayout.Height(15), GUILayout.Width(15))) { removingParam = path.changes[i].Parameters[j]; } GUI.color = Color.white; EditorGUILayout.EndHorizontal(); } if (removingParam != null) { Undo.RecordObject(p, "remove path changer sub param"); path.changes[i].RemoveParam(removingParam); } GUI.color = Color.white; } if (removingChanger != null) { Undo.RecordObject(p, "remove path changer param"); path.changes.Remove(removingChanger); } }
public MelonVisitor(MelonEngine engine) { _engine = engine; _expressionSolver = new ExpressionSolver(engine); }