///This was left blank intentionally /// Callbacks: all the public functions and methods /// Logic: all Combat logic is there, Equip, Unequip, Aim Mode... /// Variables: All Variables and Properties #region RESET COMBAT VALUES WHEN THE SCRIPT IS CREATED ON THE EDITOR #if UNITY_EDITOR private void Reset() { var m_Aim = GetComponent <Aim>(); if (m_Aim == null) { m_Aim = gameObject.AddComponent <Aim>(); } BoolVar RiderCombatMode = MTools.GetInstance <BoolVar>("RC Combat Mode"); //MEvent RCCombatMode = MTools.GetInstance<MEvent>("RC Combat Mode"); MEvent RCEquipedWeapon = MTools.GetInstance <MEvent>("RC Equiped Weapon"); MEvent SetCameraSettings = MTools.GetInstance <MEvent>("Set Camera Settings"); if (RiderCombatMode != null) { UnityEditor.Events.UnityEventTools.AddPersistentListener(OnCombatMode, RiderCombatMode.SetValue); } // if (RCCombatMode != null) UnityEditor.Events.UnityEventTools.AddPersistentListener(OnCombatMode, RCCombatMode.Invoke); if (RCEquipedWeapon != null) { UnityEditor.Events.UnityEventTools.AddPersistentListener(OnEquipWeapon, RCEquipedWeapon.Invoke); } if (SetCameraSettings != null) { UnityEditor.Events.UnityEventTools.AddPersistentListener(m_Aim.OnAimSide, SetCameraSettings.Invoke); } }
public void NegativeSquareVar() { CpModel model = new CpModel(); BoolVar boolvar = model.NewBoolVar("boolvar"); IntVar x = model.NewIntVar(0, 10, "x"); IntVar delta = model.NewIntVar(-5, 5, "delta"); IntVar squaredDelta = model.NewIntVar(0, 25, "squaredDelta"); model.Add(x == 4).OnlyEnforceIf(boolvar); model.Add(x == 0).OnlyEnforceIf(boolvar.Not()); model.Add(delta == x - 5); long[,] tuples = { { -5, 25 }, { -4, 16 }, { -3, 9 }, { -2, 4 }, { -1, 1 }, { 0, 0 }, { 1, 1 }, { 2, 4 }, { 3, 9 }, { 4, 16 }, { 5, 25 } }; model.AddAllowedAssignments(new IntVar[] { delta, squaredDelta }).AddTuples(tuples); model.Minimize(squaredDelta); CpSolver solver = new CpSolver(); CpSolverStatus status = solver.Solve(model); CpSolverResponse response = solver.Response; Assert.Equal(1, solver.Value(boolvar)); Assert.Equal(4, solver.Value(x)); Assert.Equal(-1, solver.Value(delta)); Assert.Equal(1, solver.Value(squaredDelta)); Assert.Equal(new long[] { 1, 4, -1, 1 }, response.Solution); Assert.Equal(1.0, response.ObjectiveValue, 6); }
public override void FinishDecision(MAnimalBrain brain, int Index) { //Reset all variables Bool = null; Int = null; Float = null; }
static void Main() { CpModel model = new CpModel(); int horizon = 100; // C# code supports constant of affine expressions. IntVar start_var = model.NewIntVar(0, horizon, "start"); IntVar end_var = model.NewIntVar(0, horizon, "end"); BoolVar presence_var = model.NewBoolVar("presence"); IntervalVar interval = model.NewOptionalIntervalVar(start_var, 10, end_var + 2, presence_var, "interval"); Console.WriteLine(interval); // If the size is fixed, a simpler version uses the start expression, the size and the // literal. IntervalVar fixedSizeIntervalVar = model.NewOptionalFixedSizeIntervalVar(start_var, 10, presence_var, "fixed_size_interval_var"); Console.WriteLine(fixedSizeIntervalVar); // A fixed interval can be created using the same API. IntervalVar fixedInterval = model.NewOptionalFixedSizeIntervalVar(5, 10, presence_var, "fixed_interval"); Console.WriteLine(fixedInterval); }
public static Term generateTerm(Random rng, BoolVar[] arr) { List <BoolVar> list = new List <BoolVar>(arr); BoolVar var1 = list.ElementAt(rng.Next(0, list.Count)); list.Remove(var1); BoolVar var2 = list.ElementAt(rng.Next(0, list.Count)); int generateOperation = rng.Next(0, 10); // 0-3 = addition, 4-7 = multiplication, 8-9 = exclusive or string newStackString; char operation; if (generateOperation >= 0 && generateOperation <= 3) { operation = '+'; } else if (generateOperation >= 4 && generateOperation <= 7) { operation = '×'; } else { operation = '^'; } newStackString = '(' + var1.var.ToString() + operation + var2.var.ToString() + ')'; Console.WriteLine(newStackString); return(new Term(arr, operation, newStackString)); }
public static Term generateTerm(Random rng, BoolVar[] arr, Term aTerm) { BoolVar var1 = arr[rng.Next(0, arr.Length)]; int generateOperation = rng.Next(0, 10); // 0-3 = addition, 4-7 = multiplication, 8-9 = exclusive or string newStackString; char operation; if (generateOperation >= 0 && generateOperation <= 3) { operation = '+'; } else if (generateOperation >= 4 && generateOperation <= 7) { operation = '×'; } else { operation = '^'; } newStackString = '(' + aTerm.StackString + operation + var1.var.ToString() + ')'; Console.WriteLine(newStackString); return(new Term(arr, operation, newStackString)); }
private void OnEnable() { rb = GetComponent <Rigidbody>(); bb = GetComponent <Blackboard>(); visionRangeObject = bb.GetGameObjectVar("visionRange").Value; healRangeObject = bb.GetGameObjectVar("healRange").Value; iWasJustPanicking = bb.GetBoolVar("wasIPanicking"); inMotion = bb.GetBoolVar("inMotion"); inMotion.Value = false; turnSpeed = bb.GetFloatVar("turnSpeed"); moveSpeed = bb.GetFloatVar("moveSpeed"); healTimeInSeconds = bb.GetFloatVar("healSpeedInSeconds"); targettedFriend = bb.GetGameObjectVar("healTarget"); if (targettedFriend.Value != null) { lowestHPRatio = targettedFriend.Value.GetComponent <HPValueHandler>().myHP / targettedFriend.Value.GetComponent <HPValueHandler>().maxHP; } }
public virtual void Invoke(BoolVar value) { for (int i = eventListeners.Count - 1; i >= 0; i--) { eventListeners[i].OnEventInvoked(value.Value); } DebugEvent(value.Value); }
static void Main() { CpModel model = new CpModel(); BoolVar x = model.NewBoolVar("x"); BoolVar y = model.NewBoolVar("y"); model.AddBoolOr(new ILiteral[] { x, y.Not() }); }
public void LinearExprBuilderCompileTest() { Console.WriteLine("LinearExprBuilderCompileTest"); CpModel model = new CpModel(); IntVar v1 = model.NewIntVar(-10, 10, "v1"); IntVar v2 = model.NewIntVar(-10, 10, "v2"); BoolVar b1 = model.NewBoolVar("b1"); BoolVar b2 = model.NewBoolVar("b2"); long[] c1 = new long[] { 2L, 4L }; int[] c2 = new int[] { 2, 4 }; LinearExpr e1 = LinearExpr.NewBuilder().AddSum(new IntVar[] { v1, v2 }); Console.WriteLine(e1.ToString()); LinearExpr e2 = LinearExpr.NewBuilder().AddSum(new ILiteral[] { b1, b2 }); Console.WriteLine(e2.ToString()); LinearExpr e3 = LinearExpr.NewBuilder().AddSum(new BoolVar[] { b1, b2 }); Console.WriteLine(e3.ToString()); LinearExpr e4 = LinearExpr.NewBuilder().AddWeightedSum(new IntVar[] { v1, v2 }, c1); Console.WriteLine(e4.ToString()); LinearExpr e5 = LinearExpr.NewBuilder().AddWeightedSum(new ILiteral[] { b1, b2 }, c1); Console.WriteLine(e5.ToString()); LinearExpr e6 = LinearExpr.NewBuilder().AddWeightedSum(new BoolVar[] { b1, b2 }, c1); Console.WriteLine(e6.ToString()); LinearExpr e7 = LinearExpr.NewBuilder().AddWeightedSum(new IntVar[] { v1, v2 }, c2); Console.WriteLine(e7.ToString()); LinearExpr e8 = LinearExpr.NewBuilder().AddWeightedSum(new ILiteral[] { b1, b2 }, c2); Console.WriteLine(e8.ToString()); LinearExpr e9 = LinearExpr.NewBuilder().AddWeightedSum(new BoolVar[] { b1, b2 }, c2); Console.WriteLine(e9.ToString()); LinearExpr e10 = LinearExpr.NewBuilder().Add(v1); Console.WriteLine(e10.ToString()); LinearExpr e11 = LinearExpr.NewBuilder().Add(b1); Console.WriteLine(e11.ToString()); LinearExpr e12 = LinearExpr.NewBuilder().Add(b1.Not()); Console.WriteLine(e12.ToString()); LinearExpr e13 = LinearExpr.NewBuilder().AddTerm(v1, -1); Console.WriteLine(e13.ToString()); LinearExpr e14 = LinearExpr.NewBuilder().AddTerm(b1, -1); Console.WriteLine(e14.ToString()); LinearExpr e15 = LinearExpr.NewBuilder().AddTerm(b1.Not(), -2); Console.WriteLine(e15.ToString()); }
static void Main() { InitTaskList(); int taskCount = GetTaskCount(); CpModel model = new CpModel(); IntervalVar[] tasks = new IntervalVar[taskCount]; BoolVar[] taskChoosed = new BoolVar[taskCount]; IntVar[] allEnds = new IntVar[GetEndTaskCount()]; int endJobCounter = 0; foreach (Job j in myJobList) { BoolVar[] tmp = new BoolVar[j.AlternativeTasks.Count]; int i = 0; foreach (Task t in j.AlternativeTasks) { long ti = taskIndexes[t.Name]; taskChoosed[ti] = model.NewBoolVar(t.Name + "_choose"); tmp[i++] = taskChoosed[ti]; IntVar start = model.NewIntVar(0, 10000, t.Name + "_start"); IntVar end = model.NewIntVar(0, 10000, t.Name + "_end"); tasks[ti] = model.NewIntervalVar(start, t.Duration, end, t.Name + "_interval"); if (j.Successor == null) { allEnds[endJobCounter++] = end; } if (!tasksToEquipment.ContainsKey(t.Equipment)) { tasksToEquipment[t.Equipment] = new List <IntervalVar>(); } tasksToEquipment[t.Equipment].Add(tasks[ti]); } model.AddExactlyOne(tmp); } foreach (KeyValuePair <long, List <IntervalVar> > pair in tasksToEquipment) { model.AddNoOverlap(pair.Value); } IntVar makespan = model.NewIntVar(0, 100000, "makespan"); model.AddMaxEquality(makespan, allEnds); model.Minimize(makespan); // Create the solver. CpSolver solver = new CpSolver(); // Solve the problem. solver.Solve(model); Console.WriteLine(solver.ResponseStats()); }
void Reset() { MalbersTools.SetLayer(transform, 20); //Set all the Childrens to Animal Layer . gameObject.tag = "Animal"; //Set the Animal to Tag Animal AnimatorSpeed = 1; Anim = GetComponentInParent <Animator>(); //Cache the Animator RB = GetComponentInParent <Rigidbody>(); //Catche the Rigid Body if (RB == null) { RB = gameObject.AddComponent <Rigidbody>(); RB.useGravity = false; RB.constraints = RigidbodyConstraints.FreezeRotation; RB.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic; } speedSets = new List <MSpeedSet>(1) { new MSpeedSet() { name = "Ground", StartVerticalIndex = new Scriptables.IntReference(1), TopIndex = new Scriptables.IntReference(2), states = new List <StateID>(2) { MalbersTools.GetInstance <StateID>("Idle"), MalbersTools.GetInstance <StateID>("Locomotion") }, Speeds = new List <MSpeed>(3) { new MSpeed("Walk", 1, 4, 4), new MSpeed("Trot", 2, 4, 4), new MSpeed("Run", 3, 4, 4) } } }; BoolVar useCameraInp = MalbersTools.GetInstance <BoolVar>("Global Camera Input"); BoolVar globalSmooth = MalbersTools.GetInstance <BoolVar>("Global Smooth Vertical"); FloatVar globalTurn = MalbersTools.GetInstance <FloatVar>("Global Turn Multiplier"); if (useCameraInp != null) { useCameraInput.Variable = useCameraInp; } if (globalSmooth != null) { SmoothVertical.Variable = globalSmooth; } if (globalTurn != null) { TurnMultiplier.Variable = globalTurn; } CalculateHeight(); }
// Called when the state is enabled void OnEnable() { rb = GetComponent <Rigidbody>(); bb = GetComponent <Blackboard>(); turnSpeed = bb.GetFloatVar("turnSpeed"); attackSpeed = bb.GetFloatVar("attackSpeedInSeconds"); attackRangeObject = bb.GetGameObjectVar("attackRange").Value.GetComponent <ScanSightArea>(); inMotion = bb.GetBoolVar("inMotion"); amIAtObjective = bb.GetBoolVar("atObjective"); }
static public Equation generateBooleanString() // We've limited the number of terms to 4 { Random rng = new Random(); BoolVar[] arr = BoolVar.getRandomArray(rng); int termsLeft = 4; int firstLevelTerms = rng.Next(2, 4); // First Level Terms are the outermost in terms of parenthesis termsLeft -= firstLevelTerms; int chosen; Term[] terms; string final; bool b = Convert.ToBoolean(rng.Next(0, 2)); if (termsLeft == 2) { terms = new Term[2]; terms[0] = Term.generateTerm(rng, arr); terms[1] = Term.generateTerm(rng, arr); terms[0] = Term.generateTerm(rng, arr, terms[0]); terms[1] = Term.generateTerm(rng, arr, terms[1]); b = Convert.ToBoolean(rng.Next(0, 2)); chosen = b == true ? 0 : 1; final = terms[Convert.ToInt16(b)].combineTerms(rng, arr, terms[chosen]).StackString; Console.WriteLine(true); } else // termsLeft == 1 { terms = new Term[3]; terms[0] = Term.generateTerm(rng, arr); terms[1] = Term.generateTerm(rng, arr); terms[2] = Term.generateTerm(rng, arr); chosen = rng.Next(0, 3); terms[chosen] = Term.generateTerm(rng, arr, terms[(chosen + 1) % 2]); chosen = rng.Next(0, 2); terms[chosen] = terms[chosen].combineTerms(rng, arr, terms[2]); terms[(chosen + 1) % 2] = terms[(chosen + 1) % 2].combineTerms(rng, arr, terms[chosen]); final = terms[(chosen + 1) % 2].StackString; Console.WriteLine(false); } Equation eq = new Equation(arr, final); Console.WriteLine(eq.StackString); return(eq); }
private void OnEnable() { rb = GetComponent <Rigidbody>(); bb = GetComponent <Blackboard>(); turnSpeed = bb.GetFloatVar("turnSpeed"); moveSpeed = bb.GetFloatVar("moveSpeed"); visionRangeObject = bb.GetGameObjectVar("visionRange").Value.GetComponent <ScanSightArea>(); inMotion = bb.GetBoolVar("inMotion"); Invoke("GetAPositionToMoveTo", Time.maximumDeltaTime); }
public override void OnInspectorGUI() { base.OnInspectorGUI(); EditorGUILayout.Space(); BoolVar var = EditorGUILayout.ObjectField("Toggle Variable", toggleTarget.ToggleVar, typeof(BoolVar), false) as BoolVar; if (var != toggleTarget.ToggleVar) { toggleTarget.ToggleVar = var; EditorUtility.SetDirty(toggleTarget); } }
public override object DeepCopy() { BoolVar newVar = new BoolVar(_parent, _trueValue, _falseValue); copyAttributes(this, newVar); newVar._tag = _tag; newVar._parent = _parent; if (newVar.Values != null) { for (int i = 0; i < newVar.Values.Count; i++) { newVar.Values[i] = (BoolVar)Values[i].DeepCopy(); } } return(newVar); }
public override void OnEnter() { base.OnEnter(); if (variable == null) { return; } if (!isInit) { variable = Fsm.FindVar <BoolVar>(variable.Name); isInit = true; } variable.Value = value; }
public override void Reset() { whenXIsPst = new ConcreteBoolVar(); newValueXP = new ConcreteBoolVar(); whenXIsNgt = new ConcreteBoolVar(); newValueXN = new ConcreteBoolVar(); whenYIsPst = new ConcreteBoolVar(); newValueYP = new ConcreteBoolVar(); whenYIsNgt = new ConcreteBoolVar(); newValueYN = new ConcreteBoolVar(); whenZIsPst = new ConcreteBoolVar(); newValueZP = new ConcreteBoolVar(); whenZIsNgt = new ConcreteBoolVar(); newValueZN = new ConcreteBoolVar(); }
private void OnEnable() { rb = GetComponent <Rigidbody>(); bb = GetComponent <Blackboard>(); targettedFriend = bb.GetGameObjectVar("healTarget"); visionRangeObject = bb.GetGameObjectVar("visionRange").Value.GetComponent <ScanSightArea>(); healRangeObject = bb.GetGameObjectVar("healRange").Value.GetComponent <ScanSightArea>(); iWasJustPanicking = bb.GetBoolVar("wasIPanicking"); inMotion = bb.GetBoolVar("inMotion"); turnSpeed = bb.GetFloatVar("turnSpeed"); moveSpeed = bb.GetFloatVar("moveSpeed"); lowestHPRatio = 2; }
/// <summary> /// Draw a bool variable. /// <param name="rect">The position to draw the variable.</param> /// <param name="boolVar">The bool variable to be drawn.</param> /// </summary> static void DrawBoolVar(Rect rect, BoolVar boolVar) { rect.yMin += 3f; rect.yMax -= 2f; rect.xMin += 6f; rect.xMax -= 6f; DrawName(new Rect(rect.x, rect.y, c_LargeNameWidth, rect.height), boolVar); rect.xMin += c_LargeNameWidth + c_Space; rect.xMax -= c_MinusButtonWidth + c_RightPadding; EditorGUI.BeginChangeCheck(); var newValue = EditorGUI.Toggle(rect, GUIContent.none, boolVar.Value); if (EditorGUI.EndChangeCheck() && newValue != boolVar.Value) { // Register undo if (boolVar.blackboard != null) { #if UNITY_4_0_0 || UNITY_4_1 || UNITY_4_2 Undo.RegisterUndo(boolVar.blackboard, "Variable Value"); #else Undo.RecordObject(boolVar.blackboard, "Variable Value"); #endif } // Update variable value boolVar.Value = newValue; // Set blackboard dirty flag if (boolVar.blackboard != null) { EditorUtility.SetDirty(boolVar.blackboard); } } rect.x += rect.width + 2f; rect.width = c_MinusButtonWidth; rect.yMin -= 2f; rect.yMax += 2f; if (GUI.Button(rect, s_Styles.iconToolbarMinus, s_Styles.invisbleButton)) { s_VariableToRemove = boolVar; } }
static void Main() { CpModel model = new CpModel(); BoolVar x = model.NewBoolVar("x"); BoolVar y = model.NewBoolVar("y"); BoolVar b = model.NewBoolVar("b"); // First version using a half-reified bool and. model.AddBoolAnd(new ILiteral[] { x, y.Not() }).OnlyEnforceIf(b); // Second version using implications. model.AddImplication(b, x); model.AddImplication(b, y.Not()); // Third version using bool or. model.AddBoolOr(new ILiteral[] { b.Not(), x }); model.AddBoolOr(new ILiteral[] { b.Not(), y.Not() }); }
private void OnEnable() { rb = GetComponent <Rigidbody>(); bb = GetComponent <Blackboard>(); moveSpeed = bb.GetFloatVar("moveSpeed"); turnSpeed = bb.GetFloatVar("turnSpeed"); attackSpeed = bb.GetFloatVar("attackSpeedInSeconds"); visionRangeObject = bb.GetGameObjectVar("visionRange").Value.GetComponent <ScanSightArea>(); attackRangeObject = bb.GetGameObjectVar("attackRange").Value.GetComponent <ScanSightArea>(); inMotion = bb.GetBoolVar("inMotion"); amIAtObjective = bb.GetBoolVar("atObjective"); targettedEnemy = bb.GetGameObjectVar("targetEnemy"); invokedTeleport = false; invokeScan = false; }
public static Term generateTerm(Random rng, BoolVar[] arr, Term aTerm) { BoolVar var1 = arr[rng.Next(0, arr.Length)]; bool operation = Convert.ToBoolean(rng.Next(0, 2)); // 0 means addition, 1 means multiplication string newStackString; if (operation) { newStackString = '(' + aTerm.StackString + '*' + var1.var.ToString() + ')'; } else { newStackString = '(' + aTerm.StackString + '+' + var1.var.ToString() + ')'; } Console.WriteLine(newStackString); return(new Term(arr, operation, newStackString)); }
private void Reset() { BoolVar RiderCombatMode = MalbersTools.GetInstance <BoolVar>("RC Combat Mode"); MEvent RCCombatMode = MalbersTools.GetInstance <MEvent>("RC Combat Mode"); MEvent RCEquipedWeapon = MalbersTools.GetInstance <MEvent>("RC Equiped Weapon"); MEvent SetCameraSettings = MalbersTools.GetInstance <MEvent>("Set Camera Settings"); if (RiderCombatMode != null) { UnityEditor.Events.UnityEventTools.AddPersistentListener(OnCombatMode, RiderCombatMode.SetValue); } if (RCCombatMode != null) { UnityEditor.Events.UnityEventTools.AddPersistentListener(OnCombatMode, RCCombatMode.Invoke); } if (RCEquipedWeapon != null) { UnityEditor.Events.UnityEventTools.AddPersistentListener(OnEquipWeapon, RCEquipedWeapon.Invoke); } if (SetCameraSettings != null) { UnityEditor.Events.UnityEventTools.AddPersistentListener(OnAiming, SetCameraSettings.Invoke); UnityEditor.Events.UnityEventTools.AddPersistentListener(OnAimSide, SetCameraSettings.Invoke); } UnityEditor.Events.UnityEventTools.AddStringPersistentListener(OnEquipWeapon, DisableMountInput, "Attack1"); UnityEditor.Events.UnityEventTools.AddStringPersistentListener(OnEquipWeapon, DisableMountInput, "Attack2"); UnityEditor.Events.UnityEventTools.AddStringPersistentListener(OnUnequipWeapon, EnableMountInput, "Attack1"); UnityEditor.Events.UnityEventTools.AddStringPersistentListener(OnUnequipWeapon, EnableMountInput, "Attack2"); var aimer = GetComponent <Aim>(); if (aimer == null) { aimer = gameObject.AddComponent <Aim>(); } }
public void LinearExprStaticCompileTest() { Console.WriteLine("LinearExprStaticCompileTest"); CpModel model = new CpModel(); IntVar v1 = model.NewIntVar(-10, 10, "v1"); IntVar v2 = model.NewIntVar(-10, 10, "v2"); BoolVar b1 = model.NewBoolVar("b1"); BoolVar b2 = model.NewBoolVar("b2"); long[] c1 = new long[] { 2L, 4L }; int[] c2 = new int[] { 2, 4 }; LinearExpr e1 = LinearExpr.Sum(new IntVar[] { v1, v2 }); Console.WriteLine(e1.ToString()); LinearExpr e2 = LinearExpr.Sum(new ILiteral[] { b1, b2 }); Console.WriteLine(e2.ToString()); LinearExpr e3 = LinearExpr.Sum(new BoolVar[] { b1, b2 }); Console.WriteLine(e3.ToString()); LinearExpr e4 = LinearExpr.WeightedSum(new IntVar[] { v1, v2 }, c1); Console.WriteLine(e4.ToString()); LinearExpr e5 = LinearExpr.WeightedSum(new ILiteral[] { b1, b2 }, c1); Console.WriteLine(e5.ToString()); LinearExpr e6 = LinearExpr.WeightedSum(new BoolVar[] { b1, b2 }, c1); Console.WriteLine(e6.ToString()); LinearExpr e7 = LinearExpr.WeightedSum(new IntVar[] { v1, v2 }, c2); Console.WriteLine(e7.ToString()); LinearExpr e8 = LinearExpr.WeightedSum(new ILiteral[] { b1, b2 }, c2); Console.WriteLine(e8.ToString()); LinearExpr e9 = LinearExpr.WeightedSum(new BoolVar[] { b1, b2 }, c2); Console.WriteLine(e9.ToString()); }
public void LinearExprBoolVarOperatorTest() { Console.WriteLine("LinearExprBoolVarOperatorTest"); CpModel model = new CpModel(); BoolVar v = model.NewBoolVar("v"); LinearExpr e = v * 2; Console.WriteLine(e); e = 2 * v; Console.WriteLine(e); e = v + 2; Console.WriteLine(e); e = 2 + v; Console.WriteLine(e); e = v; Console.WriteLine(e); e = -v; Console.WriteLine(e); e = 1 - v; Console.WriteLine(e); e = v - 1; Console.WriteLine(e); }
public override void OnEnter() { base.OnEnter(); if (variable == null) { return; } if (!isInit) { variable = Fsm.FindVar <BoolVar>(variable.Name); isInit = true; } if (variable.Value) { Fsm.FireEvent("YES"); } else { Fsm.FireEvent("NO"); } }
public static BoolVar[] getRandomArray(Random rng) { int numVars = rng.Next(2, 5); BoolVar[] arr = new BoolVar[numVars]; Console.WriteLine(numVars); char c; bool b; for (int i = 0; i < numVars; i++) { c = (char)(97 + i); b = Convert.ToBoolean(rng.Next(0, 2)); if (b) { c = (char)(Convert.ToInt16(c) - 32); } arr[i] = new BoolVar(c, b); } return(arr); }
static void Main() { // Create the CP-SAT model. CpModel model = new CpModel(); // Declare our two primary variables. IntVar x = model.NewIntVar(0, 10, "x"); IntVar y = model.NewIntVar(0, 10, "y"); // Declare our intermediate boolean variable. BoolVar b = model.NewBoolVar("b"); // Implement b == (x >= 5). model.Add(x >= 5).OnlyEnforceIf(b); model.Add(x < 5).OnlyEnforceIf(b.Not()); // Create our two half-reified constraints. // First, b implies (y == 10 - x). model.Add(y == 10 - x).OnlyEnforceIf(b); // Second, not(b) implies y == 0. model.Add(y == 0).OnlyEnforceIf(b.Not()); // Search for x values in increasing order. model.AddDecisionStrategy(new IntVar[] { x }, DecisionStrategyProto.Types.VariableSelectionStrategy.ChooseFirst, DecisionStrategyProto.Types.DomainReductionStrategy.SelectMinValue); // Create the solver. CpSolver solver = new CpSolver(); // Force solver to follow the decision strategy exactly. // Tell the solver to search for all solutions. solver.StringParameters = "search_branching:FIXED_SEARCH, enumerate_all_solutions:true"; VarArraySolutionPrinter cb = new VarArraySolutionPrinter(new IntVar[] { x, y, b }); solver.Solve(model, cb); }